LDAP查询按Active Directory

时间:2017-11-15 21:21:52

标签: active-directory ldap ldap-query

Active Directory的超级新用户并创建LDAP查询。

我想尝试仅使用1个成员来提取通讯组。我试图编辑一个查询,我用来查找没有成员的组,但没有运气。我一直在寻找解决方案,但一直无法找到任何信息。如果这是可能的话,我只是很好奇。

(&(&(&(objectCategory=group)(member=1)(objectClass=group)(proxyAddresses=*@domain.com))))

1 个答案:

答案 0 :(得分:2)

不,您不能只使用一个LDAP查询。

(member=1)过滤器不起作用,因为它只是尝试匹配无效的dn(' 1')。顺便说一下,整个过滤器都是错误的,你不需要嵌套条件,也不需要为每个过滤器添加&运算符。不过,您仍然可以添加(!(member=*))以排除没有任何成员的群组。因此,在您的情况下,正确的过滤器应如下所示:

(&(objectCategory=group)(objectClass=group)(proxyAddresses=*@domain.com)(!(member=*)))

要过滤只有一个成员的组,您可以在第一步中使用上面的过滤器搜索组,然后遍历每个组条目,读取成员属性以手动获取计数并排除超过组的组一个成员。

您还可以向组对象添加自定义属性,以便您可以在其中存储成员计数,并最终能够按照您的预期应用过滤器(例如memberCount = 1),即在单个查询中。但这当然也需要保持属性。