PowerShell jest coraz częściej wybieranym narzędziem dla administratorów systemu Windows. Moduł Active Directory PowerShell zawiera ponad 450 cmdletów, których można użyć do zbierania informacji o każdym obiekcie w Active Directory, sprawdzania stanu kontrolerów domeny, zbierania informacji o GPO i innych.
w tym artykule opisano, jak za pomocą PowerShell można znaleźć wyłączone i nieaktywne konta użytkowników i komputerów w domenach usługi Active Directory.
aby korzystać ze skryptów podanych tutaj, musisz:
- zainstaluj moduł Active Directory PowerShell na komputerze, na którym wykonasz skrypt. Na tym komputerze musi być zainstalowany System Windows Server 2012 lub nowszy.
- Otwórz okno PowerShell w trybie podwyższonym.
- Uruchom skrypt przy użyciu poświadczeń, które mają uprawnienia dostępu do wszystkich domen Active Directory, w których zbierasz dane.
sprawdzanie pojedynczej domeny
jeśli chcesz sprawdzić, czy konkretne konto użytkownika lub komputera jest wyłączone lub nieaktywne, możesz to zrobić ręcznie za pomocą przystawki Użytkownicy i komputery usługi Active Directory (lub aduc). Jeśli jednak chcesz zidentyfikować wyłączone i nieaktywne konta w domenie, najlepiej zautomatyzować zadanie za pomocą PowerShell.
na przykład, aby zbierać wyłączone konta komputerowe, możesz użyć polecenia polecenia Get-ADComputer, aby wyszukać konta komputerowe z właściwością Enabled ustawioną na $False, która wskazuje, że konto jest wyłączone:
Get-ADComputer -Filter {(Enabled -eq $False)} -ResultPageSize 2000 -ResultSetSize $null -Server <AnyDomainController> -Properties Name, OperatingSystem
oto skrypty do powiązanych zadań:
- sprawdź, czy pojedyncze konto użytkownika jest wyłączone
- uzyskaj listę wyłączonych użytkowników
- Znajdź nieaktywne konta komputerów
- Znajdź nieaktywne konta użytkowników
sprawdzanie w wielu domenach
jeśli chcesz zbierać informacje z wielu domen Active Directory, potrzebujesz skryptu PowerShell, który może zapętlić każdą domenę w Twoim lesie Active Directory i przechowywać zebrane dane dla każdej domeny w osobnym pliku CSV dla zespołu IT odpowiedzialnego za tę domenę.
zanim uruchomisz skrypt podany poniżej, upewnij się, że:
- Utwórz katalog o nazwie „C:\Temp” na komputerze lokalnym do przechowywania plików CSV.
- Wymień „enterprise.com” w zmiennej $CurForestName z nazwą Twojego lasu.
przykładowy skrypt
$DomList = "C:\Temp\DomList.TXT"remove-item $DomList -ErrorAction SilentlyContinue$CurForestName="enterprise.com"$GetForest=Get-ADForest $CurForestName$Items = $R.DomainsForEach ($Domains in $Items){ Add-Content $DomList $Domain.Name}Write-Host "Starting Script..."ForEach ($DomInFile in $DomList){ $DisabledCompsCSV = "C:\Temp\DisabledAccounts_Computers_"+$DomInFile+".CSV" Remove-item $DisabledCompsCSV -ErrorAction SilentlyContinue $DisabledUsersCSV = "C:\Temp\DisabledAccounts_Users_"+$DomInFile+".CSV" Remove-item $DisabledUsersCSV -ErrorAction SilentlyContinue $InActiveUsersReport = "C:\Temp\InactiveUsers_"+$DomInFile+".CSV" Remove-item $InActiveUsersReport -ErrorAction SilentlyContinue Get-ADComputer -Server $DomInFile –Filter {(Enabled –eq $False)} –ResultPageSize 2000 –ResultSetSize $null -Properties Name, OperatingSystem | Export-CSV $DisabledCompsCSV -NoTypeInformation Search-ADAccount -Server $DomInFile –AccountDisabled –UsersOnly –ResultPageSize 2000 –ResultSetSize $null | Select-Object SamAccountName, DistinguishedName | Export-CSV $DisabledUsersCSV –NoTypeInformation Search-ADAccount -Server $DomInFile –AccountInActive –TimeSpan 90:00:00:00 –ResultPageSize 2000 –ResultSetSize $null | ?{$_.Enabled –eq $True} | Select-Object Name, SamAccountName, DistinguishedName | Export-CSV $InActiveUsersReport –NoTypeInformation}Write-Host "Script Finished collecting required information. Please check report files under C:\Temp folder"
udostępnianie raportów
po wygenerowaniu raportów CSV możesz wysłać odpowiedni plik do każdego zespołu IT za pośrednictwem poczty elektronicznej. Alternatywnie, można osadzić w skrypcie cmdlet Send-MailMessage, aby skrypt automatycznie wysyłał te wiadomości e-mail. Omówimy ten cmdlet w nadchodzącym artykule z tej serii.
jak Netwrix może pomóc
chociaż korzystanie z PowerShell jest o wiele szybsze niż ręczne sprawdzanie kont wyłączonych i nieaktywnych, tworzenie, utrzymywanie i uruchamianie skryptów wymaga dużo pracy. Jeśli jesteś zapracowaną osobą, zastanów się nad narzędziami, które automatyzują pracę i oszczędzają czas. Na przykład, uzbrojony w bezpłatny nieaktywny Tracker użytkownika, będziesz mógł szybko wyczyścić lub zablokować wszystkie stare konta użytkowników. Niezawodne rozwiązanie, takie jak Netwrix Auditor dla Active Directory, umożliwia raportowanie stanu konta za pomocą zaledwie kilku kliknięć, a także automatyzację audytu, wykrywanie słabych punktów zabezpieczeń i usprawnienie dochodzeń dotyczących incydentów.