banner
Heim / Nachricht / So beheben Sie Sperrungen von Active Directory-Konten mit PowerShell
Nachricht

So beheben Sie Sperrungen von Active Directory-Konten mit PowerShell

Dec 16, 2023Dec 16, 2023

kras99 – stock.adobe.com

Unfälle können passieren, aber wenn es um fehlgeschlagene Anmeldeversuche geht, kann es passieren, dass Sie nicht mehr an Ihrem Arbeitslaptop arbeiten, bis jemand aus der IT-Abteilung zur Rettung kommt.

Viele Organisationen sperren ein Benutzerkonto nach einer festgelegten Anzahl fehlgeschlagener Anmeldeversuche. Ziel ist es, Angriffe von Hackern zu verhindern, die mit roher Gewalt an das Passwort eines Benutzers gelangen. Allerdings gehen nicht alle Sperrungen auf böswillige Quellen oder sogar auf Benutzer zurück, die ihre Passwörter vergessen haben.

Bewerbungen können manchmal zu Kontosperrungen führen. Anwendungen sind häufig auf ein Dienstkonto angewiesen, damit sie über die erforderlichen Berechtigungen verfügen. Wenn sich jedoch das Passwort des Dienstkontos ändert und die Anwendung das aktualisierte Passwort nicht erhält, kann dies zu einer Sperre des Dienstkontos führen.

Redundante Anmeldeinformationen sind eine weitere häufige Ursache für Kontosperrungen. Ein Unternehmensbenutzer verfügt möglicherweise über ein Dutzend oder mehr Sätze von Anmeldeinformationen, die an einen gemeinsamen Benutzernamen gebunden sind. Es erfordert einige Mühe, den Überblick über all diese Konten zu behalten. Es ist nicht schwer vorherzusehen, dass jemand versehentlich mehrmals die falschen Anmeldeinformationen verwendet und eine Kontosperrung verursacht.

Kontosperrungen können auch auftreten, wenn Benutzer den Arbeitsort wechseln. Ein häufiges Szenario ist, dass ein Benutzer von der Arbeit auf einem in die Domäne eingebundenen Windows-Desktop im Büro zu einem anderen Windows-Computer zu Hause wechselt, der derzeit nicht mit einem Netzwerk verbunden ist. Da der Laptop offline ist, hat er die Passwortänderung nicht aufgezeichnet. Der Benutzer muss sich mit dem alten Passwort anmelden. Wenn der Benutzer den Laptop mit ins Büro bringt und versucht, auf das Netzwerk zuzugreifen, kann die Nichtübereinstimmung des Passworts in Kombination mit der Verwirrung des Endbenutzers zu einer Kontosperrung führen.

Einer der Hauptgründe, warum Kontosperrungen so problematisch sind, liegt darin, dass sie in der Regel stillschweigend erfolgen. Als Administrator erfahren Sie möglicherweise nie, dass eine Kontosperrung stattgefunden hat, es sei denn, ein Benutzer ruft an oder Sie sehen in den Windows-Ereignisprotokollen ein Kontosperrungsereignis aufgeführt. Sie können jedoch die PowerShell-Automatisierung verwenden, um Kontosperrungsereignisse besser in den Griff zu bekommen.

Um diesen Sperrsituationen immer einen Schritt voraus zu sein, besteht eine Möglichkeit darin, mit PowerShell in Ereignisprotokollen mit dem folgenden Befehl nach Sperren zu suchen:

DerGet-WinEvent Cmdlet fragt Ereignisprotokolle ab. DerFilterHashTable Teil gibt die Elemente an, nach denen in den Protokollen gesucht werden soll. In diesem Fall ist dieProtokollnameParameter zeigt dieGet-WinEvent Cmdlet zum Durchsuchen des Windows-Sicherheitsprotokolls. Darüber hinaus sucht der ID-Parameter nach Instanzen der Ereignis-ID 4740, die sich auf Kontosperrungsereignisse bezieht.

Die Ergebnisse werden dann in die weitergeleitetObjekt auswählen Cmdlet, das die Erstellungszeit des Ereignisses und die Ereignismeldung anzeigt. Normalerweise schneidet PowerShell die Meldung zur Kontosperrung ab, aber dieFormat-TabelleCmdlet, zusammen mit demWickelnDer Parameter zwingt PowerShell dazu, alle relevanten Informationen anzuzeigen.

In einer Produktionsumgebung könnte diese Active Directory-Kontosperrungsabfrage zu viele Ergebnisse zurückgeben, da sie das Sicherheitsereignisprotokoll auf alle Instanzen der Ereignis-ID 4740 überprüft, unabhängig davon, wann das Ereignis aufgetreten ist. Der beste Weg, dieses Problem zu lösen, ist die Verwendung vonStartzeit Filter. Der folgende Befehl untersucht beispielsweise Ereignisse, die in den letzten 24 Stunden aufgetreten sind:

Der erste Befehl erstellt eine Variable mit dem Namen$Startund setzt es über auf die letzten 24 StundenAddDays(-1) . Um die Protokolle der vergangenen Wochen zu überprüfen, verwenden SieAddDays(-7).

Der zweite Befehl ist mit dem vorherigen Code identisch, außerStartTime=$Start wird zur Filter-Hash-Tabelle hinzugefügt. Dadurch wird PowerShell angewiesen, Ergebnisse zu ignorieren, die älter als das Datum und der Zeitstempel im sind$StartVariable.

Eine weitere Möglichkeit, wie PowerShell bei der Sperrung von Active Directory-Konten hilft, ist die Verwendung vonGet-ADUser Cmdlet zum Überprüfen des Sperrstatus des Kontos. Verwenden Sie den folgenden Befehl, um Attribute abzurufen, die sich auf Active Directory-Benutzerkonten beziehen.

DerIdentität Der Parameter gibt den Kontonamen an, den der Benutzer untersuchen soll. Rufen Sie in diesem Fall alle Eigenschaften des Kontos ab und verwenden Sie es dannObjekt auswählen -Cmdlet, um den Sperrstatus, den Zeitpunkt der Sperrung und die Anzahl der fehlgeschlagenen Anmeldeversuche anzuzeigen. Übrigens, dieAusgeschlossenDie Eigenschaft enthält den Wert „true“ oder „false“: Ein gesperrtes Konto zeigt „true“ an, während ein entsperrtes Konto „false“ anzeigt.

Um ein Konto zu entsperren, verwenden Sie den folgenden PowerShell-Befehl: Ersetzenmit dem Namen des Benutzers, dessen Konto Sie entsperren möchten.

PowerShellsGet-ADUser Das Cmdlet ruft den Kontosperrungsstatus eines Benutzers ab. In diesem Fall gibt der Wert „true“ an, dass das Konto des Benutzers gesperrt ist. DerAD-Konto entsperren Das Cmdlet entsperrt das Konto. Du kannst den ... benutzenGet-ADUserCmdlet, um zu überprüfen, ob die Entsperrung erfolgreich war.

PowerShell bietet Ihnen die grundlegenden Tools zum Erkennen und Beheben von Kontosperrungsereignissen. Sie können die Befehle und Techniken in diesem Artikel verwenden, um auf automatisierten Skripts aufzubauen und diese zu erstellen, um Kontosperrungsereignisse in großem Umfang zu beheben.

Get-WinEvent FilterHashTable LogName Get-WinEvent Select-Object Format-Table Wrap StartTime $Start AddDays(-1) AddDays(-7) StartTime=$Start $Start Get-ADUser Identity Select-Object LockedOut Get-ADUser Unlock- ADAccount Get-ADUser