LDAP查询以返回指定OU中的所有组

时间:2010-10-06 04:07:35

标签: active-directory sharepoint-2007 directoryservices ldap-query

我正在尝试更新当前应用于SharePoint(WSS)中的人员选取器的过滤器。

我正在使用stsadm来设置过滤器。

像...一样的东西。

stsadm -o setproperty -url http://webserver:39770 -pn peoplepicker-searchadcustomfilter -pv "(&(userAccountControl=512)(objectCategory=person)(objectClass=user)(memberOf=cn=All Users Group,ou=E-Mail Distribution Lists,dc=domain,dc=com,dc=au))"

我知道如何执行此操作但希望更改LDAP查询。这是我需要你帮助的地方。

我想在AD中查询OU并返回其中的所有组。

作为后退,我可以将OU中的所有组放入他们自己的组中,然后使用以下查询查询该组...

(&(memberOf=CN=WSSPeoplePickerGroup,OU=Groups,DC=domain,DC=com,DC=au)(objectCategory=group))

...但我想直接查询OU,如果可以的话。它已成为我不想放弃的骨头,所以希望有一个比我聪明的人。

我认为我需要去的地方就像我发现的以下查询。据我所知,这被称为可扩展搜索匹配,他们正在对OU的“名称”进行过滤,但我无法看到如何将其应用于我想要的内容(尽管尝试了很多次)我已经做过了,如果这确实是我应该采取的方法。

(&(objectClass=group)(&(ou:dn:=Chicago)(!(ou:dn:=Wrigleyville))))

TIA

1 个答案:

答案 0 :(得分:1)

如果您只想搜索特定的OU。为什么不通过distinguishedName搜索?

在你的情况下,也许是这样的。

(distinguishedName=*ou=E-Mail Distribution Lists,dc=domain,dc=com,dc=au)

这相当于搜索OU电子邮件分发。

而且userAccountControl = 512并不意味着所有已启用的用户。它只搜索普通帐户。更好的方法是搜索是否设置了Disabled标志。

使用此代替userAccountControl = 512来查找未禁用的所有用户。

(!(userAccountControl:1.2.840.113556.1.4.803:=2))

FYI。