在某些情况下,我需要使用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查询来获取主要组名。
答案 0 :(得分:1)
您要使用 dsget 而不是 dsquery 。这是如何查找特定成员的所有组,包括嵌套组和主要组:
dsget user "cn=user1,cn=Users,dc=example,dc=com" -memberof -expand