LDAP获取Active Directory中用户的主要组名

时间:2018-06-22 11:05:01

标签: active-directory ldap ldap-query dsquery

在某些情况下,我需要使用LDAP查询来获取特定用户所属的所有组名。 输入将是:用户专有名称 并且输出应为:该用户所属的组的列表。

到目前为止,我可以使用以下LDAP查询来获取用户所属的所有组名称(主组除外):

查询:

dsquery * "member:LDAP_MATCHING_RULE_IN_CHAIN:=cn=user1,cn=Users,dc=example,dc=com"

输出:

"CN=group1,CN=Users,DC=example,DC=com"
"CN=mygroup,CN=Users,DC=example,DC=com"

上面的查询列出了所有组“ user1”是其成员,但主要组名是“ Domain Admins”。

有些方法想出了使用下面的LDAP查询来获取主要组RID的方法:

dsquery * "cn=user1,cn=Users,dc=example,dc=com" -scope base -attr primaryGroupID

但是再次无法从组RID获取组名,而是如果我将获得主要组SID,则很容易获得组名。但是我得到的是主要组RID,无法使用LDAP从中获取组名。

任何有关此的帮助都将是非常有用的,无论哪种方式,我都可以仅使用某些LDAP查询来获取主要组名。

1 个答案:

答案 0 :(得分:1)

您要使用 dsget 而不是 dsquery 。这是如何查找特定成员的所有组,包括嵌套组和主要组:

dsget user "cn=user1,cn=Users,dc=example,dc=com" -memberof -expand