Найти тему
WinITPro.ru - Блог админа

Поиск неиспользуемых аккаутов пользователей и компьютеров в Active Directory

Довольной частой задачей, которую приходится выполнять администратору Active Directory, является формирование списков отключенных или неактивных учетных записей и компьютеров, либо списков учеток с просроченными паролями. Для этого можно использовать как сохраненные LDAP запросы в консоли ADUC, так и уже знакомые нам командлеты PowerShell Get-ADUser, Get-ADObject или Get-ADComputer, однако создание правильного фильтра для данных команд может вызывать определенные затруднения. К счастью в модуле PowerShell  для ActiveDirectory есть более удобный командлет для выполнения таких задач — Search-ADAccount. Рассмотрим примеры использования командлета Search-ADAccount для типовых задач.

Итак, для работы команд лета Search-ADAccount необходимо, чтобы на компьютере был установлен как минимум PowerShell 3.0, набор  Remote Server Administration Toolkit (RSAT), в котором должен быть включить компонент Active Directory Module for Windows PowerShell (Control  Panel -> Programs-> Turn Windows Features on and off-> Remote  Server Administration Tools -> Role Administration Tools -> AD DS  and AD LDS Tools).
Итак, для работы команд лета Search-ADAccount необходимо, чтобы на компьютере был установлен как минимум PowerShell 3.0, набор  Remote Server Administration Toolkit (RSAT), в котором должен быть включить компонент Active Directory Module for Windows PowerShell (Control Panel -> Programs-> Turn Windows Features on and off-> Remote Server Administration Tools -> Role Administration Tools -> AD DS and AD LDS Tools).

Данный компонент также может быть включен командой:

Add-WindowsFeature RSAT-AD-PowerShell

Запустите консоль PowerShell и импортируйте модуль Active Directory для PowerShell:

Import-Module ActiveDirectory

Перечислим список наиболее интересных для нас ключей командлета Search-ADAccount

Ключ Search-ADAccountОписание-AccountDisabled

Поиск отключенных учетных записей-AccountExpired

Учетные записи с просроченным сроком действия-AccountExpiring [-DateTime DateTime] [-TimeSpan TimeSpan]

Учетные записи которые просрочатся в течении определенного периода (-TimeSpan) или в определенную дату(-DateTime)-AccountInactive [-DateTime DateTime] [-TimeSpan TimeSpan]

Учетные записи, не регистровавшиеся в домене начиная с определенной даты(-DateTime) или в течении определенного периода времени (-TimeSpan)

-LockedOutУчетные записи, заблокированные парольной политикой-PasswordExpiredУчетные записи, пароль которых просрочен-PasswordNeverExpires

Учетные записи, у которых установлен атрибут PasswordNeverExpiresПримечание. Отметим, что по умолчанию командлет Search-ADAccount выполняет поиск по пользователем и компьютеров одновременно. Чтобы искать только по пользователям или компьютерам, нужно использовать ключ ComputersOnly  или UsersOnly соответственно.

К примеру, выведем список отключенных учетных записей во всем домене:

Search-ADAccount -UsersOnly –AccountDisabled

Ограничить область поиска определенным контейнером (OU) Active Directory можно так:

Search-ADAccount -UsersOnly –AccountDisabled –searchbase "OU=Admins,OU=Accounts,DC=winitpro,DC=loc"

Эти же данные можно представить в более удобном табличном виде с помощью команды:
Эти же данные можно представить в более удобном табличном виде с помощью команды:

Search-ADAccount -UsersOnly -AccountDisabled -searchbase "OU=Admins,OU=Accounts,DC=winitpro,DC=loc"|ft -AutoSize

Либо, если нужно получить список заблокированных пользователей, содержащий только определённые атрибуты пользователей и представить в виде графической таблицы с возможностью сортировки, выполните:

Search-ADAccount -UsersOnly AccountDisabled |sort LastLogonDate | Select Name,LastLogonDate,DistinguishedName |out-gridview -title "Disabled Users"

-3

Список заблокированных учетных записей пользователей:

Search-ADAccount -UsersOnly –LockedOut

Список учетных записей пользователей, неактивных в течении 60 дней:

$timespan = New-Timespan –Days 60
Search-ADAccount –UsersOnly –AccountInactive –TimeSpan $timespan

Чтобы посчитать количество таких учеток:

Search-ADAccount –UsersOnly –AccountInactive –TimeSpan $timespan | Measure

Список компьютеров, которые не регистрировавшихся в сети  в течении последних  90 дней.

Search-ADAccount -AccountInactive –ComputersOnly -TimeSpan 90

Либо с определенной даты:

Search-ADAccount -AccountInactive -ComputersOnly -DateTime ‘1/1/2017’|Select Name,LastLogonDate| ft

-4

Для выгрузки данных в CSV воспользуйтесь такой командой:

Search-ADAccount -AccountDisabled -UsersOnly| Export-Csv "c:\ps\disabled_users.csv"

Источник