我有很多广告组都是以 ad-grp-<something>-something
.
我想运行ldapsearch命令来拉出该组的成员,我需要的只是成员ID,而不是全名。
ldapsearch -xLLL -b "DC=myteam,DC=com" -D user@myteam -h my-host.myteam.com
-w Abcd123 "(&(objectClass=group) "(&(memberOf=CN=ad-grp-*,OU=PermissionGroups,OU=Groups,DC=myteam,DC=com))"
这样我得到了成员的全名,但我想得到该用户的成员ID。
你能帮助我吗?
或者分享一下是否有其他简单的方法?
你不能在任何有以下属性的地方使用通配符 distinguishedName
值中,如 memberOf
. 所以你要先搜索群组。(&(objectClass=group)(cn=ad-grp-*))
如果你确定每个组的成员名单少于1500个,那么你可以用 "搜索 "来搜索。member
属性的搜索。但是如果其中一些群组的成员超过1500人,那么要找到所有的群组就会变得比较复杂(一次只能给你1500人)。
如果其中一些组可能是大组,那么你可以把全部的 distinguishedName
为每一个组(从搜索结果中)构建一个新的查询来查找每个组的成员。类似这样。
(&(objectCategory=person)(objectClass=user)(|(memberOf=CN=ad-grp-1,OU=PermissionGroups,OU=Groups,DC=myteam,DC=com)(memberOf=CN=ad-grp-2,OU=PermissionGroups,OU=Groups,DC=myteam,DC=com)))
这只显示了两个组(ad-grp-1
和 ad-grp-2
). 将它们全部添加到查询中。