banner
Maison / Nouvelles / Comment réparer les verrouillages de compte Active Directory avec PowerShell
Nouvelles

Comment réparer les verrouillages de compte Active Directory avec PowerShell

Dec 16, 2023Dec 16, 2023

kras99 - stock.adobe.com

Des accidents peuvent survenir, mais lorsqu'il s'agit d'échecs de tentatives de connexion, un nombre suffisant d'entre eux peuvent vous bloquer hors de votre ordinateur portable de travail jusqu'à ce que quelqu'un du service informatique vienne à la rescousse.

De nombreuses organisations verrouillent un compte d'utilisateur après un certain nombre de tentatives de connexion infructueuses. L'objectif est d'empêcher les attaques de pirates qui tentent de trouver le mot de passe d'un utilisateur par la force brute. Cependant, tous les verrouillages ne proviennent pas de sources malveillantes ou même d'utilisateurs qui oublient leur mot de passe.

Les applications peuvent parfois entraîner des blocages de compte. Les applications s'appuient souvent sur un compte de service pour obtenir les autorisations nécessaires au fonctionnement. Toutefois, si le mot de passe du compte de service change et que l'application n'obtient pas le mot de passe mis à jour, cela peut entraîner un verrouillage du compte de service.

Les informations de connexion redondantes sont également une autre cause fréquente de verrouillage de compte. Un utilisateur d'entreprise peut avoir une douzaine ou plus d'ensembles d'informations d'identification liés à un nom d'utilisateur commun. Il faut un certain effort pour garder une trace de tous ces comptes. Il n'est pas difficile de prévoir que quelqu'un utilise accidentellement le mauvais ensemble d'informations d'identification plusieurs fois et provoque un verrouillage de compte.

Des verrouillages de compte peuvent également se produire lorsque les utilisateurs changent de lieu de travail. Un scénario courant est lorsqu'un utilisateur passe du travail sur un bureau Windows joint à un domaine au bureau à une autre machine Windows à la maison qui n'est pas actuellement connectée à un réseau. Étant donné que l'ordinateur portable est hors ligne, il n'a pas enregistré le changement de mot de passe. L'utilisateur doit se connecter avec l'ancien mot de passe. Si l'utilisateur apporte l'ordinateur portable au bureau et tente d'accéder au réseau, l'incompatibilité du mot de passe, combinée à la confusion de l'utilisateur final, peut entraîner le verrouillage du compte.

L'une des principales raisons pour lesquelles les verrouillages de compte ont tendance à être si problématiques est qu'ils ont tendance à se produire en silence. En tant qu'administrateur, vous ne saurez peut-être même jamais qu'un verrouillage de compte s'est produit à moins qu'un utilisateur appelle ou que vous voyiez un événement de verrouillage de compte répertorié dans les journaux d'événements Windows. Cependant, vous pouvez utiliser l'automatisation PowerShell pour mieux gérer les événements de verrouillage de compte.

Pour garder une longueur d'avance sur ces situations de verrouillage, une option consiste à utiliser PowerShell pour vérifier les verrouillages dans les journaux d'événements avec la commande suivante :

LeGet-WinEvent cmdlet interroge les journaux d'événements. LeFilterHashTable portion spécifie les éléments à rechercher dans les journaux. Dans ce cas, leNomJournalparamètre pointe leGet-WinEvent applet de commande pour rechercher le journal de sécurité Windows. En outre, le paramètre ID recherche les instances de l'ID d'événement 4740, qui fait référence aux événements de verrouillage de compte.

Les résultats sont ensuite acheminés vers leSelect-Objet applet de commande, qui affiche l'heure de création de l'événement et le message de l'événement. Normalement, PowerShell tronque le message de verrouillage de compte, mais leFormat-Tableapplet de commande, ainsi que l'applet de commandeEnvelopperparamètre, force PowerShell à afficher toutes les informations pertinentes.

Dans un environnement de production, cette requête de verrouillage de compte Active Directory peut renvoyer un nombre excessif de résultats, car elle vérifie le journal des événements de sécurité pour toutes les instances de l'ID d'événement 4740, quel que soit le moment où l'événement s'est produit. La meilleure façon de résoudre ce problème est d'utiliser leHeure de début filtre. Par exemple, la commande suivante examine les événements qui se sont produits au cours des dernières 24 heures :

La première commande crée une variable nommée$Débutet le règle sur les 24 heures précédentes viaAjouterJours(-1) . Pour vérifier la valeur des journaux des semaines précédentes, utilisezAjouterJours(-7).

La deuxième commande est identique au code précédent saufHeureDébut=$Début est ajouté à la table de hachage du filtre. Cela indique à PowerShell d'ignorer les résultats antérieurs à la date et à l'horodatage dans le$Débutvariable.

Une autre façon pour PowerShell d'aider au verrouillage des comptes Active Directory consiste à utiliser leGet-ADUser applet de commande pour vérifier l'état de verrouillage du compte. Utilisez la commande suivante pour récupérer les attributs liés aux comptes d'utilisateurs Active Directory.

LeIdentité Le paramètre spécifie le nom du compte que l'utilisateur doit examiner. Dans ce cas, récupérez toutes les propriétés du compte, puis utilisezSelect-Objet applet de commande pour afficher l'état de verrouillage, le moment où le verrouillage s'est produit et le nombre de tentatives de connexion infructueuses. Incidemment, leEnfermé dehorspropriété contient une valeur true ou false : un compte verrouillé affiche true, tandis qu'un compte déverrouillé affiche false.

Pour déverrouiller un compte, utilisez la commande PowerShell suivante, en remplaçantavec le nom de l'utilisateur dont vous souhaitez déverrouiller le compte.

PowerShellGet-ADUser cmdlet récupère l'état de verrouillage du compte d'un utilisateur. Dans ce cas, une valeur true indique que le compte de l'utilisateur est verrouillé. LeDéverrouiller-ADAccount cmdlet déverrouille le compte. Vous pouvez utiliser leGet-ADUserapplet de commande pour vérifier que le déverrouillage a réussi.

PowerShell vous donne les outils de base pour détecter et résoudre les événements de verrouillage de compte. Vous pouvez utiliser les commandes et les techniques de cet article pour développer et créer des scripts automatisés afin de résoudre les événements de verrouillage de compte à grande échelle.

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