Zadaniem często wykonywanym przez administratora usługi Active Directory jest tworzenie list wyłączonych lub nieaktywnych kont i komputerów lub list kont z wygasłymi hasłami. Aby to zrobić, możesz użyć zarówno zapisanych zapytań LDAP w konsoli ADUC, jak i już znanych poleceń cmdlet PowerShell Get-ADUser, Get-ADObject lub Get-ADComputer, jednak utworzenie odpowiedniego filtra dla tych poleceń może powodować pewne trudności. Na szczęście moduł PowerShell dla ActiveDirectory ma wygodniejsze polecenie cmdlet do wykonywania takich zadań. - Search-ADAccount. Spójrzmy na przykłady używania polecenia cmdlet Search-ADAccount do typowych zadań..
Tak więc, aby letnie polecenia Search-ADAccount działały, musisz mieć przynajmniej zainstalowany na swoim komputerze PowerShell 3.0, Zestaw narzędzi administracji zdalnej serwera (RSAT), do którego należy włączyć składnik Moduł Active Directory dla Windows PowerShell (Panel sterowania -> Programy-> Włączanie i wyłączanie funkcji systemu Windows-> Narzędzia administracji zdalnej serwera -> Narzędzia administracji roli -> Narzędzia AD DS i AD LDS).
Ten komponent można również włączyć za pomocą polecenia:
Dodaj-WindowsFeature RSAT-AD-PowerShell
Uruchom konsolę PowerShell i zaimportuj moduł Active Directory dla PowerShell:
Moduł importu ActiveDirectory
Wymieńmy najciekawsze klucze cmdletu Search-ADAccount.
Search-ADAccount Key | Opis |
-AccountDisabled
| Wyszukaj wyłączone konta |
-Konto wygasło
| Wygasłe konta |
-AccountExpiring [-DateTime DateTime] [-TimeSpan TimeSpan]
| Konta, które wygasają w określonym czasie (-TimeSpan) lub w określonym dniu (-DateTime) |
-AccountInactive [-DateTime DateTime] [-TimeSpan TimeSpan]
| Konta, które nie są zarejestrowane w domenie począwszy od określonej daty (-DateTime) lub w określonym przedziale czasu (-TimeSpan)
|
-Zablokowany | Konta zablokowane przez zasady haseł |
-Hasło wygasło | Konta, których hasło wygasło |
-PasswordNeverExpires
| Konta z ustawionym atrybutem PasswordNeverExpires |
Na przykład wymienimy wyłączone konta w całej domenie:
Search-ADAccount -UsersOnly -AccountDisabled
Możesz ograniczyć zakres wyszukiwania do określonego kontenera Active Directory (OU) w następujący sposób:
Search-ADAccount -UsersOnly -AccountDisabled -searchbase "OU = Administratorzy, OU = Konta, DC = winitpro, DC = loc"
Te same dane można przedstawić w wygodniejszej formie tabelarycznej za pomocą polecenia:
Search-ADAccount -UsersOnly -AccountDisabled -searchbase "OU = Administratorzy, OU = Konta, DC = winitpro, DC = loc" | ft -AutoSize
Lub jeśli potrzebujesz uzyskać listę zablokowanych użytkowników, która zawiera tylko niektóre atrybuty użytkownika i przedstawić ich w tabeli graficznej z możliwością sortowania, wykonaj:
Search-ADAccount -UsersOnly AccountDisabled | sort LastLogonDate | Wybierz Nazwa, LastLogonDate, DistinguishedName | out-gridview -title „Użytkownicy niepełnosprawni”
Lista zablokowanych kont użytkowników:
Search-ADAccount -UsersOnly -LockedOut
Lista kont użytkowników nieaktywnych przez 60 dni:
$ timespan = New-Timespan -Days 60
Search-ADAccount -UsersOnly -AccountInactive -TimeSpan $ przedział czasu
Aby obliczyć liczbę takich kont:
Search-ADAccount -UsersOnly -AccountInactive -TimeSpan $ timespan | Zmierz
Lista komputerów, które nie zarejestrowały się w sieci w ciągu ostatnich 90 dni.
Search-ADAccount -AccountInactive -ComputersOnly -TimeSpan 90
Lub od określonej daty:
Search-ADAccount -AccountInactive -ComputersOnly -DateTime '1/1/2017' | Wybierz nazwę, LastLogonDate | ft
Aby przesłać dane do CSV, użyj następującego polecenia:
Search-ADAccount -AccountDisabled -UsersOnly | Export-Csv „c: \ ps \ disabled_users.csv”