1

DirSync を使用して、特定の OU 内のユーザーへのすべての変更を取得しようとしています (C# を使用)。私が読んだことから、検索のルートはディレクトリ パーティションのルートでなければならないので、次のパスを使用して DirectoryEntry を初期化しています。

string strUserDirPath = "LDAP://xxx.yyy.zzz/DC=xxx,DC=yyy,DC=zzz";

その後、特定の OU 内のユーザーのみを表示するフィルターを設定しようとしています。

問題は、OU をフィルターに追加しようとすると、すべてが除外されることです。私が言うなら:

srch.Filter = "(&(objectClass=user)(objectcategory=person))";

それは私にすべてのユーザーを与えます。

必要なOUへのフルパスは次のとおりです。

"OU=aaa,OU=bbb,OU=ccc,OU=ddd,OU=eee,DC=xxx,DC=yyy,DC=zzz"

この完全なパスに一致するユーザーのみを同期したいと思います。

これを行うためにフィルターにいくつかのことを追加しようとしましたが、常にすべてのレコードを除外することになります。次のフィルターを試してみましたが、役に立ちませんでした。

"(&(objectClass=user)(objectcategory=person)(OU=aaa))"
"(&(objectClass=user)(objectcategory=person)(OU=aaa,OU=bbb,OU=ccc,OU=ddd,OU=eee))"
"(&(objectClass=user)(objectcategory=person)(OU=aaa,OU=bbb,OU=ccc,OU=ddd,OU=eee,DC=xxx,DC=yyy,DC=zzz))"
"(&(objectClass=user)(objectcategory=person)(memberof=OU=aaa,OU=bbb,OU=ccc,OU=ddd,OU=eee,DC=xxx,DC=yyy,DC=zzz))"
"(&(objectClass=user)(objectcategory=person)(memberOf:1.2.840.113556.1.4.1941:=OU=aaa,OU=bbb,OU=ccc,OU=ddd,OU=eee,DC=xxx,DC=yyy,DC=zzz))"

おそらく非常に明白な何かが欠けているように感じますが、完全には理解できません。

誰でも解決策を提供できますか? 最後の手段として、すべてのユーザーを取得してから、必要のないユーザーをプログラムで除外することを考えています。不器用に見えますが、それが私がしなければならないことなら、私はそうします.

4

1 に答える 1

2

不可能です...ここで MSDN を参照してください(http://msdn.microsoft.com/en-us/library/windows/desktop/ms677626(v=vs.85).aspx)

「DirSync 検索のベースは、ドメイン パーティション、構成パーティション、またはスキーマ パーティションであるディレクトリ パーティションのルートである必要があります」

于 2013-01-23T06:43:56.483 に答える