我正在尝试使用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))"
我觉得我可能错过了一些非常明显的东西,但却无法得到它。
有人可以提供任何解决方案吗?作为最后的手段,我正在考虑获取所有用户,然后以编程方式过滤掉我不需要的用户。看起来很笨,但如果这是我要做的,我会的。
答案 0 :(得分:2)
不可能......请参考MSDN here(http://msdn.microsoft.com/en-us/library/windows/desktop/ms677626(v=vs.85).aspx)
“DirSync搜索的基础必须是目录的根目录 分区,可以是域分区,配置 分区或架构分区“