尝试在Active Directory中的特定OU上使用DirSync

时间:2013-01-08 21:58:44

标签: c# active-directory

我正在尝试使用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))"

我觉得我可能错过了一些非常明显的东西,但却无法得到它。

有人可以提供任何解决方案吗?作为最后的手段,我正在考虑获取所有用户,然后以编程方式过滤掉我不需要的用户。看起来很笨,但如果这是我要做的,我会的。

1 个答案:

答案 0 :(得分:2)

不可能......请参考MSDN here(http://msdn.microsoft.com/en-us/library/windows/desktop/ms677626(v=vs.85).aspx)

  

“DirSync搜索的基础必须是目录的根目录   分区,可以是域分区,配置   分区或架构分区“