查询以列出特定组的所有用户

Mad*_* Zu 62 ldap active-directory ldap-query

如何使用搜索过滤器显示特定组的用户?

我尝试过以下方法:

(&
    (objectCategory=user)
    (memberOf=MyCustomGroup)
)
Run Code Online (Sandbox Code Playgroud)

还有这个:

(&
    (objectCategory=user)
    (memberOf=cn=SingleSignOn,ou=Groups,dc=tis,dc=eg,dc=ddd,D??C=com)
)   
Run Code Online (Sandbox Code Playgroud)

但不显示特定组的用户.

Kod*_*dra 85

memberOf(在AD中)存储为distinguishedNames列表.您的过滤器需要类似于:

(&(objectCategory=user)(memberOf=cn=MyCustomGroup,ou=ouOfGroup,dc=subdomain,dc=domain,dc=com))
Run Code Online (Sandbox Code Playgroud)

如果您还没有专有名称,可以使用以下命令进行搜索:

(&(objectCategory=group)(cn=myCustomGroup))
Run Code Online (Sandbox Code Playgroud)

并返回该属性distinguishedName.案件可能很重要.

  • 通常在Active Directory中,您有许多包含该结构的组织单位.组的默认根OU是Groups.cn = MyCustomGroup,ou = Groups,dc = subdomain,dc = domain,dc = com可能适合你.如果不是,我建议对您的组进行LDAP搜索(&(objectCategory = group)(cn = MyCustomGroup))并在结果集中包含distinguishedName属性.这将告诉您在其他查询中使用的字符串 (6认同)
  • 什么是ou = ouOfGroup? (2认同)

sig*_*int 11

对于Active Directory用户,另一种方法是 - 假设存储了所有组OU=Groups,DC=CorpDir,DC=QA,DC=CorpName- 使用查询(&(objectCategory=group)(CN=GroupCN)).这适用于所有成员少于1500人的团体.如果要列出大型AD组的所有成员,则同一查询将起作用,但您必须使用范围检索来一次获取所有成员,1500条记录.

执行范围检索的关键是使用以下语法指定属性中的范围:attribute; range = low-high.因此,要获取具有3000个成员的AD组的所有成员,首先运行上述查询,要求member;range=0-1499返回属性,然后再返回该member;range=1500-2999属性.


Rob*_*los 5

如果 DC 是 Win2k3 SP2 或更高版本,您可以使用类似以下内容:

(&(objectCategory=user)(memberOf:1.2.840.113556.1.4.1941:=CN=GroupOne,OU=Security Groups,OU=Groups,DC=example,DC=com))

获取嵌套组成员资格。

来源:https ://ldapwiki.com/wiki/Active%20Directory%20Group%20Related%20Searches