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

LDAP get primary group name of a user in Active Directory

有一种情况,我需要使用 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" 除外。

一些如何找到主要组 RID 而不是使用以下 LDAP 查询:

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

但是从组 RID 中获取组名再次不起作用,相反,如果我获得主要组 SID,那么获取组名将很容易。但是我得到的是主要组 RID,我无法使用 LDAP 从中获取组名。

任何关于这方面的帮助都会很棒,我可以通过任何方式仅使用一些 LDAP 查询来获取主要组名称。

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

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