Сохраненные запросы в консоли Active Directory User and Computers

Сохраненные запросы в консоли Active Directory User and Computers

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

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

Большинство операций по выборке объектов в AD можно выполнить с помощью командлетов из модуля PowerShell для Active Directory (например, Get-ADUser, Get-ADComputer, Get-ADObject, Get-ADGroup, Search-ADAccount и т.д.), утилиты dsquery, скриптов vbs и т.д. Но для не-администраторов гораздо проще использовать графическую консоль ADUC для получения информации из AD.
Active Directory Saved Queries впервые появились в Windows Server 2003 и продолжают поддерживаться во всех последующих версиях Windows Server. Для использования сохранных запросов на вашем компьютере должна быть установлена консоль ADUC (входит в состав средств администрирования RSAT).

Как создать сохраненный запрос в консоли Active Directory?

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

 

  1. Запустите консоль ADUC (dsa.msc), выберите раздел Saved Queries, щелкните по нему правой кнопкой и выберите New – > Query;новый сохраненный запрос к Active Directory
  2. В поле Name укажите имя сохраненного запроса, которое будет отображаться в консоли ADUC;
  3. В поле Query root можно выбрать контейнер (OU), в котором выполняется запрос. По умолчанию поиск выполняется по всему домену AD. В нашем примере, мы сузим область поиска, выбрав контейнер Ekaterinburg;Имя AD Saved Query
  4. Далее нажмите на кнопку Define Query, и в выпадающем списке Find выберите пункт Custom Search;Custom Search
  5. Перейдите на вкладку Advanced и в поле Enter LDAP query скопируйте следующий LDAP-запрос (этот запрос выбирает незаблокированных пользователей, другие примеры LDAP запросов смотрите чуть ниже):
    (&(objectcategory=person)(objectclass=user)(!userAccountControl:1.2.840.113556.1.4.803:=2))
    Поле для LDAP запроса
  6. Сохраните изменения, нажав OK;
  7. Теперь в консоли Active Directory выберите созданный запрос, нажмите F5 для перестроения списка. В результате в правом окне появится список пользователей, который соответствует данному LDAP запросу;Результат выполнения сохраненного LDAP запроса
  8. Чтобы показать в консоли Active Directory дополнительные атрибуты пользователей (email-адрес, отдел), откройте меню View -> Add/Remove Columns;Консоль aduc Add/Remove Columns
  9. Добавьте нужные столбцы;Добавляем новые столбцы в консли ADUC
  10. Мы добавили 3 дополнительных поля: User Logon Name, E-Mail Address, Department.Результат выполнения расширенного запроса AD
  11. Полученный список пользователей можно выгрузить в CSV или TXT файл для дальнейшего анализа и импорта в Excel. Для этого щелкните правой кнопкой по сохраненному запросу и выберите пункт меню Export List;Экспорт списка объектов Active Directory в текстовый файл

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

Древовидная структура AD запросов

В оснастке поддерживается несколько режимов формирования сохраненных запросов AD. Не обязательно указывать текст LDAP фильтра вручную. Выможете сформировать сфой запрос с помощью простого графического мастера. Просто выбираете различные атрибуты объектов AD и используйте для поиска по нужным критериям. Например, чтобы вывести список компьютеров с Windows Server в домене, выберите:

  1. Find -> Computers;
  2. Вкладка Advanced;
  3. Fields -> Operating System
  4. Stars with -> указываете
    Windows Server *
    мастер составления запроса в консоли aduc

    В качестве символа подстановки используется
    *
    (можно указать так
    *Server*
    ). Можно добавить несколько критериев поиска.

    .

Сохраните запрос и обновите его в консоли ADUC. В списке будут показаны все Windows Server в вашем домене.

Сохраненные запросы хранятся локально на компьютере, на котором они были созданы. Xml-файл с настройками находится здесь C:Users%USERNAME%AppDataRoamingMicrosoftMMCDSA). Для переноса сохранённых запросов между компьютерами, в консоли dsa.msc есть функция экспорта (Export Query Definition) и импорта (Import Query Definition) запросов через XML файлы.

aduc экспорт сохраненного запроса ad в xml файл

Полезные сохраненные LDAP запросы для MMC консоли Active Directory

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

Сохраненный запрос ADUC LDAP фильтр
Поиск групп с ключевым словом admin в имени (objectcategory=group)(samaccountname=*admin*)
Поиск учетных записей с ключевым словом service в поле description (objectcategory=person)(description=*service*)
Пустые группы Active Directory (в которых нет пользователей) (objectCategory=group)(!member=*)
Пользователи, у которых в настройках указано “Пароль никогда не истекает” (objectCategory=person)(objectClass=user)(userAccountControl:1.2.840.113556.1.4.803:=65536)
Пользователи, которые не меняли пароль более 3 месяцев (&(sAMAccountType=805306368)(pwdLastSet

 

Найти пользователей, у которых в поле отдел указано “Отдел продаж”

 

(&(objectCategory=person)(objectClass=user)(department=*Отдел продаж*))
Пользователи с незаполненным полем Profile Path (objectcategory=person)(!profilepath=*)
Активные учетные записи пользователи, у которых истек срок действия пароля (objectCategory=person)(objectClass=user)(pwdLastSet=0)(!useraccountcontrol:1.2.840.113556.1.4.803:=2)
Все пользователи AD, кроме отключенных (objectCategory=person)(objectClass=user)(!useraccountcontrol:1.2.840.113556.1.4.803:=2)
Заблокированные пользователи AD (objectCategory=person)(objectClass=user)(useraccountcontrol:1.2.840.113556.1.4.803:=16)
Пользователи с email адресами (objectcategory=person)(mail=*)
Пользователи без email адресов (objectcategory=person)(!mail=*)
Пользователи, скрытые из адресной книги Exchange (GAL): (&(sAMAccountType=805306368)(msExchHideFromAddressLists=TRUE))
Список учетных записей, никогда не регистрировавшихся в домене (информацию о времени входе в домен в более удобном виде можно просматривать с помощью вкладки Additional Account Info) (&(objectCategory=person)(objectClass=user)(|(lastLogonTimestamp=0)(!(lastLogonTimestamp=*)))
Учетные записи пользователи, созданных в определенный период времени (за 2019год) (&(&(objectCategory=user)(whenCreated>=20190101000000.0Z&
Пользователи AD, созданные в этом году (&(&(&(objectClass=User)(whenCreated>=20200101000000.0Z))))
Все компьютеры с Windows 10 (&(objectCategory=computer)(operatingSystem=Windows 10*))
Вывести все компьютеры с определенным билдом Windows 10 (например, 1909 – это билд 18363) (&(&(objectCategory=computer)(operatingSystem=Windows 10*)(operatingSystemVersion=*18363*)))
Найти все Windows Server 2016 кроме контролеров домена (&(&(objectCategory=computer)(!(primaryGroupId=516)))(operatingSystem=Windows Server 2016*))
Все SQL серверы: (&(objectCategory=computer)(servicePrincipalName=MSSQLSvc*))

 

Все группы рассылки Exchange (&(objectCategory=group)(!groupType:1.2.840.113556.1.4.803:=2147483648))

 

Поиск Query Based Distribution Groups в домене
Найти объект AD с определенным SID (objectSID=S-1-5-21-71234583-152049171
-8654222215-1231)

Использование LDAP фильтров в PowerShell

Вы можете использовать рассмотренные LDAP фильтры для поиска объектов в консоли PowerShell. В большинстве командлетов из модуля PowerShell для Active Directory есть специальный параметре LdapFilter. В этом параметре нужно указывать код LDAP запроса.

Например,

Get-ADUser -LdapFilter "(&(objectCategory=person)(objectClass=user)(department=*Отдел продаж*))"| ft -a DisplayName,department

Командлеты
Get-ADUser
,
Get-ADComputer
,
Get-ADGroup
являются специализированными и используются для поиска объектов определенного типа – пользователей, компьютеров или групп. Если вы не знаете тип объекта AD, который вам нужен, или вам нужна информация о всех типах объектов, используйте более универсальный командлет
Get-ADObject
. Например, для поиска объекта по SID:

Get-ADObject -LdapFilter "(objectSID=S-1-5-21-71234583-15204917-8654222215-1231)" -Properties * -SearchBase “OU=MSK,DC=winitpro,DC=ru| ft -a DisplayName,Title

PowerShell
Сохраненные запросы в консоли Active Directory User and Computers