Wie man mit PowerShell gesperrte Benutzer in Active Directory findet

Tun die Benutzer in Ihrer Organisation jemals ihre Passwörter vergessen? Sicher nicht! Hat sich ein Benutzer im Active Directory ausgesperrt? Auf keinen Fall! Schauen wir mal, was wir tun können, um gesperrte Benutzer im Active Directory mit PowerShell zu finden!

Hören Sie auf, sich mit Passwortrücksetzanrufen und Kontosperrungen im Active Directory herumzuschlagen. Holen Sie sich eine KOSTENLOSE Testversion von Specops uReset.

Ist Ihr Netzwerk jemals von Malware infiziert worden, die versucht, sich mit so vielen Domänenbenutzerkonten wie möglich anzumelden? Ich hoffe nicht, aber ich habe es schon ein paar Mal erlebt. Benutzer und Würmer sind nur zwei der Gründe, warum ein oder mehrere AD-Konten gesperrt werden können. Je nach Ihrer Kennwortrichtlinie können Sperrungen täglich oder nur gelegentlich auftreten.

Unabhängig vom Grund oder der Situation beeinträchtigen Kontosperrungen Ihre Benutzer. Da sie sich fast auf ihr Active Directory-Domänenkonto für alles verlassen, werden sie sofort bemerken, wenn es gesperrt ist. Das Konto kann von Ihrem Helpdesk wieder aktiviert werden, aber was ist, wenn es wieder passiert? …und wieder. …und wieder. Die Ermittlung der Ursache dieses Problems ist wichtig.

Ein Weg, dies zu tun, besteht darin, PowerShell und das ActiveDirectory-Modul zu verwenden. Durch Verwendung des Search-AdAccount-Cmdlets innerhalb des Active Directory-Moduls können Sie einfach alle Konten verfolgen, die derzeit in Ihrer Domäne gesperrt sind.

Verwandt: So installieren Sie das Active Directory PowerShell-Modul

Gesperrte Benutzer in Active Directory mit PowerShell finden

Um nach gesperrten Konten zu suchen, können Sie das Search-AdAccount-Kommando mit dem LockedOut-Parameter ausführen. Dies gibt alle Benutzer zurück, die derzeit gesperrt sind, sofern Sie das Recht haben, dies zu sehen.

Search-AdAccount -LockedOut

Dieses Kommando ist großartig, aber was ist, wenn Sie ein Konto haben, das kontinuierlich gesperrt wird und Sie herausfinden müssen, von welchem System es stammt? Dies ist eine häufige Aufgabe, wenn Sie irgendwo in Ihrem Netzwerk eine Malware-Infektion haben oder vielleicht, wenn Sie einen vergesslichen Administrator haben, der vergessen hat, sich von einer Remotedesktopsitzung abzumelden. Das ist doch noch nie passiert, oder?

Um die Quelle einer Active Directory-Sperrung zu finden, müssen Sie zunächst sicherstellen, dass Sie den richtigen Domänencontroller abfragen. In diesem Fall wird dies der Domänencontroller mit der PDC-Emulatorrolle sein.

Finde den PDCe-Rolleninhaber

Alle Passwortauthentifizierungen werden zu diesem Domänencontroller mit der PDCe-Rolle kommen, daher ist dies immer der beste Ort, um zu überprüfen. Um den Domänencontroller mit der PDCe-Rolle zu finden, können Sie die PDCEmulator-Eigenschaft überprüfen, die von dem Get-ADDomain-Cmdlet zurückgegeben wird.

$pdce = (Get-ADDomain).PDCEmulator

Durchsuchen der Ereignisprotokolle nach Sperrungen

Sobald Sie den DC mit der PDCe-Rolle haben, müssen Sie dann das Sicherheitsereignisprotokoll (Sicherheitsprotokolle) dieses DC nach Ereignis-ID 4740 durchsuchen. Ereignis-ID 4740 ist das Ereignis, das jedes Mal registriert wird, wenn ein Konto gesperrt wird. Dies können Sie mit dem Get-WinEvent-Cmdlet tun.

Get-WinEvent -ComputerName $pdce -FilterHashTable @{'LogName' ='Security';'Id' = 4740}

Sie sind so viel näher dran, diese gesperrten Benutzer in Active Directory mit PowerShell zu finden!

Auslesen des Benutzernamens und des Orts

Dies gibt alle Sperrereignisse zurück, zeigt jedoch nicht sofort die Benutzernamen und Computer, auf denen die Sperrung durchgeführt wurde. Um den Benutzernamen zu finden, müssen Sie etwas tiefer in eine Eigenschaft eintauchen, die Get-WinEvent zurückgibt, die Properties-Eigenschaft.

$filter = @{'LogName' = 'Security';'Id' = 4740}
$events = Get-WinEvent -ComputerName $pdce -FilterHashTable $filter
$events | Select-Object @{'Name' ='UserName'; Expression={$_.Properties[0]}}, @{'Name' ='ComputerName';Expression={$_.Properties[1]}}

Sie sehen, dass ich den Hashtabellenfilter verschoben habe, um ein Umbruch des Codes zu verhindern und vor allem die berechneten Eigenschaften von Select-Object verwendet habe, um den Benutzernamen und den Computernamen aus der Properties-Eigenschaft zu extrahieren. In jedem dieser Ereignisse ist der Benutzername, der gesperrt wurde, immer das erste Element im Properties-Array, während das zweite Element immer der Computernamen ist, auf dem die Sperrung durchgeführt wurde.

PowerShell nutzen, um AD-Konten zu entsperren

Nun, da Sie Ihre gesperrten AD-Benutzer gefunden haben, wie entsperren Sie die Konten? Das ActiveDirectory Modul in PowerShell bietet den Unlock-ADAccount Befehl, der die Arbeit schnell erledigt, um einen Kunden wieder arbeitsfähig zu machen. Wie unten gezeigt, verwenden Sie PowerShell, um AD-Konten zu entsperren. Dieser Befehl funktioniert sowohl in Windows PowerShell als auch in PowerShell 7, sobald er über das ActiveDirectory Modul geladen ist.

Unlock-ADAccount -Identity 'lockeduser'

Vielleicht möchten Sie alle gesperrten Benutzerkonten auf einmal entsperren. Verwenden Sie dazu den Search-ADAccount mit dem -LockedOut Parameter und leiten Sie die Ergebnisse an den Unlock-ADAccount Befehl weiter, wie unten gezeigt.

Search-ADAccount -LockedOut | Unlock-ADAccount

Reduzieren Sie Anrufe beim Service Desk und aktualisieren Sie die Cache-Anmeldeinformationen für Remote-Benutzer auch außerhalb des VPN mit einer Self-Service-Passwortzurücksetzungslösung. Erhalten Sie eine Demo von Specops uReset!

Zusammenfassung

Find Locked Out Users in Active Directory

Bis jetzt sollten Sie in der Lage sein, schnell alle Konten zu lokalisieren, die derzeit in Ihrer Domäne gesperrt sind, sowie eine Historie aller Kontosperrungen anzeigen können. Jetzt ist es an der Zeit, mit Joe ernsthaft darüber zu sprechen, diese RDP-Sitzungen offenzulassen…

Source:
https://adamtheautomator.com/find-locked-out-users-in-active-directory-powershell/