LDAP查询组成员

11

我正在尝试进行LDAP查询,以获取所有组/成员的列表。但我无法弄清楚如何做到这一点。我的所有尝试都失败了。

我的 "AD树":mydomain.local/Mybusiness/分发组/ 这里是我的组

我尝试过类似于以下内容:

(objectCategory=user)
(memberOf=CN=Distribution Groups,OU=Mybusiness,DC=mydomain.local,DC=com)

希望有人能帮我编写LDAP查询,以便返回我的组及其成员列表。

3个回答

15
查询应该是:
(&(objectCategory=user)(memberOf=CN=Distribution Groups,OU=Mybusiness,DC=mydomain.local,DC=com))

你错过了 &()


如果我理解正确,此查询将显示与群组相同 的所有成员。 如果我想查看所有群组成员,而不考虑呢? - Kevin Meredith
@juan mellado,恐怕我没听清楚您的意思。组应该在域下创建。这里有一个例子:(&(objectCategory=user)(memberOf=CN=admins,DC=root,DC=com)) - 这个查询将显示admins组中的所有成员,“CN=admins,DC=root,DC=com”是该组的DN。 - 53iScott

11

Active Directory不在用户对象上存储组成员身份,只在组上存储成员列表。工具通过查询来显示用户对象的组成员身份。

那么,如下所示:

(&(objectClass=group)(member=cn=my,ou=full,dc=domain))

(你在问题中的示例中忘记了(&)部分。)


我不熟悉AD和LDAP。我尝试按照您提到的方式进行查询,但结果为空。ou=full是什么意思? - Holian
将笑话般的 cn=my,ou=full,dc=domain 值替换为您系统中感兴趣的用户的真实 DN。使用点表示法 My.Full.Domain。 - geoffc

4

获取组中所有成员的好方法是将组的DN作为searchDN传递给搜索函数,并将“member”作为属性传递。可以通过遍历搜索返回的属性值来找到组的所有成员。

过滤器可以通用化,例如(objectclass=*)。


进一步解释jwilleke的评论,通常情况下,AD不会列出多值属性(例如“成员”)中超过1500(旧版本为1000)个组件,然而许多AD组具有比这更多的成员。AD支持分段检索,以获取具有> 1500(或1000)成员的AD组中的所有属性。 - sigint

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接