Att hitta inaktiverade och inaktiva konton i AD

PowerShell är alltmer det valfria verktyget för Windows-administratörer. Active Directory PowerShell-modulen innehåller mer än 450 cmdlets som du kan använda för att samla in information om varje objekt i Active Directory, kontrollera domänkontrollanternas hälsa, samla in GPO-information och mer.

den här artikeln beskriver hur du kan använda PowerShell för att hitta inaktiverade och inaktiva användar-och datorkonton i dina Active Directory-domäner.

förutsättningar

för att använda skripten som tillhandahålls här måste du:

  • installera Active Directory PowerShell-modulen på maskinen där du ska köra skriptet. Den datorn måste köra Windows Server 2012 eller senare.
  • öppna PowerShell-fönstret i ett förhöjt läge.
  • kör skriptet med referenser som har behörighet att komma åt alla Active Directory-domäner där du samlar in data.

kontrollera en enda domän

om du behöver kontrollera om ett visst användar-eller datorkonto är inaktiverat eller inaktivt kan du göra det manuellt med snapin-modulen Active Directory-användare och datorer (eller ADUC). Om du behöver identifiera inaktiverade och inaktiva konton över en domän är det dock bäst att automatisera uppgiften med PowerShell.

för att till exempel samla in inaktiverade datorkonton kan du använda cmdlet Get-ADComputer för att leta efter datorkonton som har egenskapen Enabled inställd på $ False, vilket indikerar att kontot är inaktiverat:

Get-ADComputer -Filter {(Enabled -eq $False)} -ResultPageSize 2000 -ResultSetSize $null -Server <AnyDomainController> -Properties Name, OperatingSystem

här är skript för relaterade uppgifter:

  • kontrollera om ett enda användarkonto är inaktiverat
  • hämta en lista över funktionshindrade användare
  • hitta inaktiva datorkonton
  • hitta inaktiva användarkonton

kontrollera över flera domäner

om du vill samla in information från flera Active Directory-domäner behöver du ett PowerShell-skript som kan slinga genom varje domän i Active Directory-skogen och lagra de data som samlas in för varje domän i en separat CSV-fil för IT-teamet som ansvarar för den domänen.

innan du kör skriptet nedan, se till att:

  • skapa en katalog med namnet ”C:\Temp” på den lokala datorn för att lagra CSV-filer.
  • ersätt ”enterprise.com” i variabeln $ CurForestName med namnet på din skog.

exempelskript

$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"

dela rapporterna

när CSV-rapporterna har genererats kan du skicka rätt fil till varje IT-team via e-post. Alternativt kan du bädda in Send-MailMessage cmdlet i skriptet så att skriptet skickar dessa e-postmeddelanden automatiskt. Vi kommer att diskutera denna cmdlet i en kommande artikel i denna serie.

hur Netwrix kan hjälpa

även om du använder PowerShell är det mycket snabbare än att söka efter inaktiverade och inaktiva konton manuellt, det tar fortfarande mycket arbete att skapa, underhålla och köra skript. Om du är en upptagen person, överväga att titta på verktyg som automatiserar arbetet och sparar tid. Till exempel, beväpnad med den gratis inaktiva Användarspåraren, kommer du snabbt att kunna rensa ut eller låsa ner alla dina inaktuella användarkonton. Och en robust lösning som Netwrix Auditor för Active Directory kommer att ge dig möjlighet att rapportera om kontostatus på bara några klick, samt att automatisera revision, upptäcka säkerhet svaga punkter och effektivisera incidentundersökningar.

Nirmal är en MCSEx3, MCITP, och han tilldelades Microsoft MVP award i katalogtjänster och Windows-nätverk. Han är specialiserad på PowerShell-skript, Microsoft Azure, Office 365, katalogtjänster, failover-kluster, Hyper-V och System Center-produkter.

Write a Comment

Din e-postadress kommer inte publiceras.