ldapsearch для поиска в Active Directory - PullRequest
0 голосов
/ 26 апреля 2020

У меня есть много групп объявлений, которые начинаются с ad-grp-<something>-something.

Я хочу запустить команду ldapsearch, чтобы вывести членов группы, все, что мне нужно, это идентификатор участника, а не полное имя.

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))"  

С этим я получаю полное имя участника, но я хочу получить идентификатор участника этого пользователя.

Можете ли вы мне помочь?

Или поделиться есть ли другой простой способ?

1 Ответ

0 голосов
/ 27 апреля 2020

Нельзя использовать подстановочные знаки для любых атрибутов, которые имеют 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). Добавьте их все в запрос.

...