Ldap запросы к ad примеры

Сохраненные запросы (Saved Queries) в консоли Active Directory Users and Computers (ADUC) позволяют создавать простые и сложные LDAP запросы по выборке объектов Active Directory. Эти запросы можно сохранять, редактировать и переносить между компьютерами. С помощью сохраненных запросов можно быстро и эффективно решать задачи поиска и выборки объектов в AD по различным критериям. Saved Queries, например, помогут быстро: вывести список всех отключенных учетных записей в домене, выбрать всех пользователей определенной организации с ящиками на заданном сервере Exchange и т.п.

Важное преимущество сохраненных LDAP запросов — предоставление возможности выполнять групповые операции с объектами из разных OU (контейнеров) Active Directory, например массовая блокировка/разблокировка, перемещение, удаление учетных записей и т.п. Т.е. позволяют «избавиться» от недостатков иерархической структуры OU в Active Directory, собрав все нужные объекты в плоском табличном виде.

Большинство указанных операций можно выполнить с помощью PowerShell, dsquery, скриптов vbs и т.д., но, как правило, представление результатов в привычном графическом виде консоли намного удобнее и не требует особых навыков.

Active Directory Saved Queries впервые появились в Windows Server 2003 и продолжают поддерживаться во всех последующих версиях Windows Server

Покажем типовой пример использования сохраненных запросов в консоли Active Directory Users and Computers. Предположим, нам нужно вывести список активных учетных записей пользователей, наименование их отделов и адресов email.

Открываем консоль ADUC (dsa.msc), выбираем раздел Saved Queries, щелкнув по нему ПКМ выбираем New – > Query.

В поле Name указываем имя сохраненного запроса, которое будет отображаться в консоли ADUC.

В поле Query root можно указать контейнер (OU), в котором выполняется запрос. По умолчанию поиск по критериям запроса выполняется по всему домену AD. В нашем примере, мы сузим область поиска, выбрав контейнер Ekaterinburg.

Далее нажимаем кнопку Define Query, и в выпадающем списке Find выбираем пункт Custom Search.

Переходим на вкладку Advanced и в поле Enter LDAP query копируем следующий LDAP-запрос:
(&(objectcategory=person)(object >

Читайте также:  Ссылка скопирована в буфер обмена где находится

Сохраняем изменения, нажав OK.

Выбираем в консоли ADUC созданный запрос, нажимаем F5 для перестроения списка. Результат работы запроса виден на скриншоте.

Чтобы отобразить дополнительные поля (email-адрес, отдел), в консоли ADUC открываем меню View и выбираем пункт Add/Remove Columns.

Добавляем нужные поля.

Мы добавили 3 дополнительных поля: User Logon Name, E-Mail Address, Department.

Полученный результат можно выгрузить в CSV или TXT формате для дальнейшего анализа и использования в табличном реакторе Excel. Для этого щелкаем ПКМ по сохраненному запросу и выбираем пункт меню Export List.

В консоли ADUC можно создать множество различных сохраненных запросов, которые можно организовать в древовидную структуру.

Сохраненные запросы хранятся локально в консоли на компьютере, на котором они были созданы (xml-файл с настройками находится здесь C:Users\%USERNAME%AppDataRoamingMicrosoftMMCDSA) . Для переноса сохраненного запроса между компьютерами, в консоли dsa.msc есть функция Импорта / Экспорта запросов через XML файлы.

В следующей табличке мы приведем примеры часто используемых LDAP запросов для выборки в Active Directory.

Администратору домена Active Directory часто приходиться иметь дело с различными запросами, например, необходимо найти все отключенные учетные записи компьютеров или всех сотрудников какого-то департамента, или все глобальные группы. Некоторые администраторы сразу думают о каких-то скриптах на Powershell или VBS, забывая при этом, что все это можно сделать прямо в оснастке Active Directory Users and Computers (ADUC) с помощью запросов LDAP, которые к тому же можно удобно там же в консоли и сохранить, а при необходимости еще и выгрузить в файл XML и перенести на другой компьютер. Напомню, что такое LDAP — это сокращение от Lightweight Directory Access Protocol , то есть это облегченный протокол доступа к каталогу. Подробней узнать о нем можно, например, в википедии . Советую обратить особое внимание на синтаксис и логические операторы.

Сохраненные запросы LDAP (Saved Queries) впервые появились еще в Windows 2003 и продолжают оставаться и в текущих версиях Windows. Основное их преимущество в том, что для их использования не требуется программирования, все работа происходит во всем хорошо знакомой консоли Active Directory Users and Computers. С результатом запроса можно производить массовые операции типичные для ADUC, например, перенос, удаление, отключение, добавление в группы и так далее. Возможно формировать как простые запросы, используя типовые настройки, так и сложные с помощью редактора на вкладке «Advanced», тем самым достигается гибкость без использования сложных скриптов.

Читайте также:  Сервер входящей почты яндекса

Использование сохраненных запросов LDAP (Saved Queries) в оснастке Active Directory Users and Computers

Чтобы воспользоваться запросами, запустите оснастку (snap-in) Active Directory Users and Computers.

Работа с LDAP запросами по группам Active Directory

Допустим, что вам нужно найти все пустые группы в домене или каком-то OU (organizational unit). Создайте новую папку, например, «Запросы по группам». В ней вы будете хранить все ваши новые запросы по группам.

Функционал сохранённых запросов (Saved Queries) в оснастке MMC Active Directory Users and Computers (ADUC) до сих пор остаётся полезным и актуальным, даже несмотря на появление PowerShell и соответствующего модуля для Active Direcotory. LDAP запросы позволяют вывести объекты в едином представлении невзирая на иерархию OU в домене. Полученный результат можно экспортировать в текстовые файлы с разделителями, либо выполнить групповые операции над найденными объектами. Также функционал сохранённых запросов полезен в тех случаях, когда необходимо обеспечить неквалифицированный персонал средством поиска в Active Directory по заранее настроенным запросам. В этой статье я создам небольшой список-обзор запросов, которыми пользуюсь сам и, которые, я думаю, будут полезны всем.

Создание сохранённого запроса

Напомню, если кто забыл/не знал, как создать свой поисковый запрос. В оснастке ADUC открываем раздел Saved Queries (сохранённые запросы):

Далее можно воспользоваться мастером и сконструировать запрос, либо создать запрос, используя язык запросов LDAP. Я буду использовать язык запросов. Каждый пример из этой статьи можно создать таким образом:

Примеры запросов

  1. Поиск административных учётных записей по атрибуту adminCount. Если пользователь является членом защищенной группы (например, Domain Admins, Enterprise Admins и т.п.), ему назначаются ACL, установленные в объекте AdminSDHolder в AD, а атрибуту adminCount пользователя присваивается значение 1.
Читайте также:  Tns 12541 tns нет прослушивателя

При удалении пользователя из привилегированной группы процесс AdminSDHolder не возвращает атрибут adminCount к прежнему значению, т.е. в результаты запроса попадут и те учётные записи, которые, когда-либо входили в одну из защищённых групп.

  • Все объекты, защищённые AdminSDHolder:
  • Поиск всех отключенных учётных записей компьютеров:
  • Все пользователи:
  • Или более эффективный вариант:

  • Все пользователи, кроме отключенных:
  • Пользователи, которые должны сменить пароль:
  • Пользователи, которые будут заблокированы после ещё одной неудачной попытки ввода пароля. В запросе используется атрибут badPwdCount. Значение нужно указать в соответствии с вашими парольными политиками в домене и учётом гранулированных парольных политик, если используются.
  • Пользователи с бессрочным паролем (Password never expires):
  • Все пользователи, которые не меняли свой пароль с указанной даты
  • PwdLastSet для определённой даты можно получить с помощью PowerShell:

    Подробнее о атрибуте Pwd-Last-Set см. здесь.

  • Заблокированные пользователи:
  • Пользователи, у которых не заполнено поле должность. По аналогии можно найти пользователей по другим полям, либо по маске *название должности:
  • Пользователи, созданные за определённый период. Формат дат используется следующий:
  • objectCategory можно использовать любой, например group, computer, contact и др.

  • Пользователи без фотографии (атрибут thumbnailPhoto):
  • Все пользователи с Email адресом:
  • Все пользователи без Email адреса:
  • Все пользователи у которых переопределена квота на почтовый ящик Exchange:
  • Все пользователи, скрытые из адресной книги Exchange:
  • Все компьютеры:
  • Все компьютеры Windows 10:
  • Все компьютеры Windows Server 2016:
  • Windows Server 2016 Standard:
  • Windows Server 2016 Datacenter:
  • Все SQL серверы, с любой ОС, у которых зарегистрирован servicePrincipalName:
  • Все Exchange серверы:
  • Все контакты:
  • Поиск SMTP адреса по атрибуту proxyAddress. Позволяет найти любые объекты с почтовым адресом, включая общие папки Exchange:
  • Все группы:
  • Пустые группы, не содержащие ни одного члена:
  • Все организационные подразделения:
  • Все контейнеры:
  • Все цветные принтеры на сервере печати:
  • Servername — имя сервера печати, на котором установлен и опубликован в Active Directory принтер.

  • Все доверительные отношения: