2016-02-05 9 views
1

Я пытаюсь получить всех членов группы в двух разных доменах Active Directory (AD) той же компании.

Для этого я получаю сначала полное различающееся имя (DN) каждой группы из Редактора атрибутов пользователей и компьютеров Active Directory (ADUC), как указано here.

Первая группа DN является:

*CN=first-group,OU=organization-unit-name,DC=first,DC=company,DC=com* 

Вторая группа DN является:

*CN=second-group,OU=$Customer,OU=one,OU=two,OU=three,OU=four,DC=second,DC=company,DC=com* 

Затем я использую два следующих фильтров запросов LDAP в C# (я также попробовал их в ADUC).

Для домена first.company.com и первой группы я применяю следующий фильтр:

*(&(objectCategory=*)(memberOf=CN=first-group,OU=organization-unit-name,DC=first,DC=company,DC=com))* 

И я получаю 123 Результаты, как и ожидалось/

Для домена second.company.com и второй группы я применяю следующий фильтр:

*(&(objectCategory=*)(memberof=second-group,OU=$Customer,OU=one,OU=two,OU=three,OU=four,DC=second,DC=company,DC=com))* 

Однако теперь я получаю только один результат. более подробно сам. Это не то, что ожидалось.

Я знаю альтернативные способы найти ожидаемый результат в ADUC, нажав на вкладке Члены раз выбрав в второй группы но мне нужен фильтр LDAP, чтобы сделать это, потому что я хочу сделать, получить результаты в C# ,

Знает ли кто-нибудь, что делает Клиент? Что означает доллар в общем случае в LDAP-фильтре?

Я попробовал фильтр без Ou = $ Customer, но он не дал никаких результатов.

Спасибо за помощь!

ответ

0

Есть два LDAP Queries that will work for Microsoft Active Directory: Решает всех членов (включая вложенные) группы безопасности (требуется, по крайней мере для Windows 2003 SP2)

(memberOf:1.2.840.113556.1.4.1941:=CN=GroupOne,OU=Security Groups,OU=Groups,DC=YOURDOMAIN,DC=NET) 

Или получать только пользователи:

(&(objectClass=user)(memberof:1.2.840.113556.1.4.1941:=CN=GroupOne,OU=Security Groups,OU=Groups,DC=YOURDOMAIN,DC=NET) 

Если вы только хотите прямых членов, отбросить «: 1.2.840.113556.1.4.1941:» из каждого запроса.

В этом LDAP-фильтре $ означает «$». (т.е. это всего лишь символ)

+0

Спасибо за ответ о знаке доллара. Понятно теперь. Однако я до сих пор не понимаю, почему группа, у которой больше членов, чем у меня, показывает такую ​​запись DN, которая возвращается только тогда, когда я применяю фильтр, который я назвал выше. – aragorn

+0

Вы проверили разрешения? – jwilleke

+0

На стороне менеджера AD вы имеете в виду? Если так, то я не сделал, так как у меня нет доступа на этом уровне информации. Но я должен иметь правильное разрешение, так как я могу получить эту информацию в графическом интерфейсе ADUC с учетными данными моей учетной записи. – aragorn