Задоволеною частою завданням, яку доводиться виконувати адміністратору 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).
Даний компонент також може бути включений командою:
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 -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"
Список заблокованих облікових записів користувачів:
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
Для вивантаження даних в CSV скористайтеся такою командою:
Search-ADAccount -AccountDisabled -UsersOnly | Export-Csv "c: \ ps \ disabled_users.csv"