PowerShell: Blokada nie aktywnych kont użytkowników

Mamy znaleźć nieaktywnych użytkowników, następnie ich zablokować. Użyjemy do tego celu polecenia Search-AdAccount z modułu Active Directory. Przed ich zablokowaniem potrzebujemy dość szczegółowych informacji tak aby nasze porządkowanie nie pozbawiło dostępu do AD konta systemowego, czy kogoś kto rzadko zagląda do naszego środowiska. Sprawdzone rozwiązanie z użyciem PowerShell znajdziecie poniżej.

Skrypt opiera się o moduł Active Directory i polecenie Search-ADAccount. Używamy w nim parametru -AccountInactive, wyświetlając listę użytkowników, którzy są nie aktywni od 31 sierpnia 2019.

Import-Module ActiveDirectory
Search-ADAccount –AccountInactive -DateTime "31/8/2019" -UsersOnly |
 Select-Object -Property SAMaccountname,Name,DistinguishedName,LastLogonDate | Out-GridView

Opcjonalnie zamiast wskazywać konkretną datę możemy użyć parametru -TimeSpan i wylistować userów nieaktywnych np od 90 dni:

Import-Module ActiveDirectory
Search-ADAccount –AccountInactive –TimeSpan 90:00:00:00 -UsersOnly |
 Select-Object -Property SAMaccountname,Name,DistinguishedName,LastLogonDate | Out-GridView

Kiedy przejrzymy listę i okaże się że nasze filtrowanie spełnia wszystkie wymagania (jeżeli nie musimy filtrować dalej, używając innych parametrów polecenia), pozostaje nam już tylko powyższą komendę delikatnie zmodyfikować. Zamiast wyświetlać wyniki wyszukiwania w oknie, przekażemy je dalej tak aby znalezionym rekodąrekordom parametr odpowiadający za blokadę konta używając komendy Disable-ADAccount

Import-Module ActiveDirectory
Search-ADAccount –AccountInactive -DateTime "31/8/2019" -UsersOnly |
 Select-Object -Property SAMaccountname,Name,DistinguishedName,LastLogonDate | Disable-ADAccount

Oczywiście całe zadanie możemy zautomatyzować tak aby taki proces wykonywał się cyklicznie raz w miesiącu, używając do tego Harmonogramu Zadań – nasz wpis jak to zrobić znajdziecie tutaj