2010-02-19 2 views
3

Я пытаюсь запросить почти всех пользователей в Active Directory. Мои обычные пользователи находятся в разных подразделениях, и я хочу их восстановить. Но мои пользователи системы хранятся в User CN, и я не хочу их извлекать.LDAP: используя фильтр, чтобы избежать подкаталога CN в Active Directory

Это очень похоже на another question, но их ответ мне не помог. Я использую подсказку, предоставленную here, но ее не помогает.

Я запрашиваю в Active Directory с помощью JNDI. Мой запрос:

(&(objectClass=user)(!(cn:dn:=Users))) 

Это означает, что все объекты класса user, которые не находятся в Users поддерева. Тем не менее, этот запрос, тем не менее, возвращает что-то вроде этого:

CN=__vmware__,CN=Users,DC=SIREDRM,DC=com 

Так почему же этот фильтр не работает? Как еще я могу заставить его работать?

ответ

7

С (! (DistinctName = *, CN = Users = DC = mydomain, DC = com)), вы пытаетесь использовать атрибут с синтаксисом DN [Object (DS-DN)] для этих атрибутов LDAP, вы не можете использовать подстановочные знаки в фильтрах LDAP.

Атрибут "DistinguishedName": http://msdn.microsoft.com/en-us/library/ms675516%28VS.85%29.aspx

LDAP Синтаксис "Object (DS-DN)" http://msdn.microsoft.com/en-us/library/ms684431%28VS.85%29.aspx

Во второй ссылке вы найдете заявление о запретной шаблона.

В общем, можно использовать расширяемое правило соответствия LDAP для исключения некоторых контейнеров из поиска поддерева, в вашем случае синтаксис будет похож на этот

(!(cn:dn:=Users)) 

или что-то в этом роде. Плохая вещь: AD не поддерживает такой вид растяжимого соответствия: http://msdn.microsoft.com/en-us/library/cc223241%28PROT.10%29.aspx Прочитайте первый абзац.

Итак, вывод: ВЫ НЕ МОЖЕТЕ СДЕЛАТЬ ЭТО С ОДИН ОДИН ФИЛЬТР В АКТИВНОЙ СПРАВОЧНОЙ СРЕДЕ. Сожалею.

Единственное решение, похоже, заключается в использовании клиентского инструмента. Скрипт из Microsoft покажет вам, как именно вы нуждаетесь (за исключением того, что вы хотите «Пользователи», а не «Компьютеры»).

http://blogs.technet.com/heyscriptingguy/archive/2004/12/07/how-can-i-return-a-list-of-all-my-computers-except-those-in-a-specified-ou.aspx

Другая вещь, которую вы могли бы смотреть на это виртуальный каталог, чтобы действовать в качестве прокси-сервера в AD, который позволит вам настроить фильтры и разрешения, не прикасаясь к AD.

(в основном скопировано из hyphen site)