Поиск групп, пользователей и компьютеров в Active Directory по шаблону и маске

Задача поиска объектов в Active Directory (пользователей, групп или компьютеров) по имени с помощью некого шаблона, регулярного выражению или маске не так очевидна, как кажется на самом деле. Дело в том, что по-умолчанию графическая консоль ADUC (AD Users and Computers), не позволяет использовать подстановочные символы в начале или в середине поисковой фразы.

Например, вы хотите найти в Active Directory все группу, в имени которых содержится ключевое слово « SQL ». Если открыть консоль поиска ( Find User, Contacts, and Groups ) в ADUC и выполнить обычный поиск по ключевому слову SQL , то результаты скорее всего вас не устроят. Консоль ADUC выведет только группы и пользователей у которых указанное ключевое слово содержится в начале имени. Остальные объекты со словом sql не будут найдены. Поиск по маске *sql* также не даст результатов (подстановочные символы просто не работают).

поиск объектов в AD по ключевым словам

Вы можете быстро открыть окно поиска в AD с помощью команды %SystemRoot%SYSTEM32rundll32.exe dsquery,OpenQueryWindow .

Поиск пользователей и групп в Active Directory из консоли ADUC

Вы можете найти нужные объекты в графической консоли Active Directory Users and Computers ( dsa.msc ) с помощью простых LDAP запросов.

  1. Для этого, откройте меню Find и в выпадающем списке типов поиска выберите Custom Search ;
  2. Переключитесь на вкладку Advanced;
  3. В поле LDAP query , введите: name=*sql*
Примечание . Данный LDAP запрос говорит, что вы хотите найти все объекты AD, содержащие в имени значение sql . Для этого нужно воспользоваться символом подстановки * с обеих сторон.

Если нужно искать только объекты AD типа группа, используйте такой запрос.

(&(objectcategory=group)(name=*sql*))

ldap запросы для поиска в Active Directory из консоли dsa.msc

Как вы видите, по данному шаблону было найдено множество объектов AD (группы, компьютеры, пользователи, сервисные gMSA аккаунты).

Вы можете использовать расширенные фильтры в консоли поиска AD. Для этого включите опцию Filter в меню View и используйте расширенные фильтры для детализации поиска.

фильтры поиск в Active Directory

С помощью пункта меню View -> Choose Columns вы можете добавить дополнительные атрибуты объектов AD, по которым можно фильтровать найденные объекты.

Если вы используете для поиска консоль Active Directory Administrative Center ( dsac.exe ), в ней также можно использовать шаблоны LDAP для поиска. Выберите Global Search и переключитесь в режим Convert to LDAP . Введите запрос в поле LDAP query.

LDAP запросы в консоли Active Directory Administrative Center

Совет . В некоторых случаях для поиска объектов удобно использовать сохраненные LDAP запросы в консоли Active Directory .

Поиск компьютеров в Active Directory

Для поиска компьютеров и серверов в Active Directory по точному вхождению нужно в поле Find выбрать Computers и указать имя компьютера для поиска.

поиск по ключам в именах компьютеров AD

Если нужно найти компьютеры в AD по маске, нужно использовать такой LDAP запрос в разделе Custom Search -> Advanced.

(&(objectcategory=computer)(name=*sql*))

Поиск групп, пользователей и компьютеров в Active Directory с помощью PowerShell

Также для поиска объектов в AD, можно воспользоваться модулем PowerShell для ActiveDirectory .

Для поиска в Active Directory определенного типа объекта можно использовать соответствующий командлет:

Итак, сначала нужно импортировать модуль PowerShell:
Import-Module ActiveDirectory

Для поиска групп в AD по шаблону, можно воспользоваться такой командой PowerShell:

Get-ADGroup -Filter {name -like "*sql*"} -Properties Description,info | Select Name,samaccountname,Description,info | Sort Name

поиск группы в AD с помощью PowerShell

Аналогично можно выполнить поиск по имени компьютера или пользователя:

Get-ADUser -Filter {name -like "*sql*"}
Get-ADComputer -Filter {name -like "*sql*"}

Если вы хотите выполнить универсальный поиск по всем типам объектам AD, используйте командлет Get-ADObject :

Get-ADObject -Filter {name -like "*sql*"} –Properties * | select sAMAccountName, ObjectClass, userPrincipalName, DisplayName, Description | FT

Как вы видите, команда вывели все типа объектов в AD (ObjectClass: computer, user,group, msDS-GroupManagedServiceAccount).

Get-ADObject поиск любых объектов в Active Directory из консоли powershell

Можно использовать LDAP фильтр непосредственно в команде Get-ADObject, также добавим область поиска с помощью опции SearchBase:

Get-ADObject -LdapFilter "(&(objectCategory=person)(objectClass=user)(cn=*sql*))" -SearchBase "OU=SPB,DC=remontka,DC=ru"

Специальный командлет Search-ADAccount можно использовать для поиска отключенных, неактивных пользователей или компьютеров .

Если вам нужно найти все сервисные аккаунты AD — Group Managed Service Account (MSA и gMSA ), используйте команду:

Get-ADServiceAccount -Filter {name -like "*sql*"}

Надеюсь, эти простые способы облегчат вам задачу поиска объектов в Active Directory.

EnglishRussianUkrainian