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))"
おそらく非常に明白な何かが欠けているように感じますが、完全には理解できません。
誰でも解決策を提供できますか? 最後の手段として、すべてのユーザーを取得してから、必要のないユーザーをプログラムで除外することを考えています。不器用に見えますが、それが私がしなければならないことなら、私はそうします.