LDAP: использование фильтра, чтобы избежать подписки CN в Active Directory

Я пытаюсь запросить почти всех пользователей в Active Directory. Мои обычные пользователи находятся в разных OU, и я хочу получить их. Но пользователи моей системы хранятся в CN Users, и я не хочу их получать.

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

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

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

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

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

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


person malaverdiere    schedule 19.02.2010    source источник


Ответы (1)


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

Атрибут «отличительное имя»: http://msdn.microsoft.com/en-us/library/ms675516%28VS.85%29.aspx

Синтаксис LDAP «Объект (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.

(в основном скопировано с дефисного сайта)

person Andrew Strong    schedule 22.02.2010