Поиск групп, пользователей и компьютеров в Active Directory по шаблону и маске
Задача поиска объектов в Active Directory (пользователей, групп или компьютеров) по имени с помощью некого шаблона, регулярного выражению или маске не так очевидна, как кажется на самом деле. Дело в том, что по-умолчанию графическая консоль ADUC (AD Users and Computers), не позволяет использовать подстановочные символы в начале или в середине поисковой фразы.
Например, вы хотите найти в Active Directory все группу, в имени которых содержится ключевое слово «
SQL
». Если открыть консоль поиска (Find User, Contacts, and Groups) в ADUC и выполнить обычный поиск по ключевому слову
SQL
, то результаты скорее всего вас не устроят. Консоль ADUC выведет только группы и пользователей у которых указанное ключевое слово содержится в начале имени. Остальные объекты со словом
sql
не будут найдены. Поиск по маске *sql* также не даст результатов (подстановочные символы просто не работают).
Вы можете быстро открыть окно поиска в AD с помощью команды
%SystemRoot%SYSTEM32rundll32.exe dsquery,OpenQueryWindow
.
Поиск пользователей и групп в Active Directory из консоли ADUC
Вы можете найти нужные объекты в графической консоли Active Directory Users and Computers (
dsa.msc
) с помощью простых LDAP запросов.
- Для этого, откройте меню Find и в выпадающем списке типов поиска выберите Custom Search;
- Переключитесь на вкладку Advanced;
- В поле LDAP query, введите:
name=*sql*
Примечание. Данный LDAP запрос говорит, что вы хотите найти все объекты AD, содержащие в имени значение sql. Для этого нужно воспользоваться символом подстановки
*
с обеих сторон.
Если нужно искать только объекты AD типа группа, используйте такой запрос.
(&(objectcategory=group)(name=*sql*))
Как вы видите, по данному шаблону было найдено множество объектов AD (группы, компьютеры, пользователи, сервисные gMSA аккаунты).
Вы можете использовать расширенные фильтры в консоли поиска AD. Для этого включите опцию Filter в меню View и используйте расширенные фильтры для детализации поиска.
С помощью пункта меню View -> Choose Columns вы можете добавить дополнительные атрибуты объектов AD, по которым можно фильтровать найденные объекты.
Если вы используете для поиска консоль Active Directory Administrative Center (
dsac.exe
), в ней также можно использовать шаблоны LDAP для поиска. Выберите Global Search и переключитесь в режим Convert to LDAP. Введите запрос в поле LDAP query.
Поиск компьютеров в Active Directory
Для поиска компьютеров и серверов в Active Directory по точному вхождению нужно в поле Find выбрать Computers и указать имя компьютера для поиска.
Если нужно найти компьютеры в 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
Аналогично можно выполнить поиск по имени компьютера или пользователя:
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).
Можно использовать LDAP фильтр непосредственно в команде Get-ADObject, также добавим область поиска с помощью опции SearchBase:
Get-ADObject -LdapFilter "(&(objectCategory=person)(objectClass=user)(cn=*sql*))" -SearchBase "OU=SPB,DC=winitpro,DC=ru"
Если вам нужно найти все сервисные аккаунты AD — Group Managed Service Account (MSA и gMSA), используйте команду:
Get-ADServiceAccount -Filter {name -like "*sql*"}
Надеюсь, эти простые способы облегчат вам задачу поиска объектов в Active Directory.
PowerShell
Поиск групп, пользователей и компьютеров в Active Directory по шаблону и маске