Ayant eu un cas récalcitrant de compte qui se verrouillait a priori tout seul, j’ai créé un petit script PowerShell à lancer en tant qu’administrateur sur un contrôleur de domaine. Ce script parcourt le journal d’événements de sécurité afin d’y trouver une entrée avec un identifiant 4740 correspondant à l’identifiant passé en paramètre.
Le script est disponible dans une version commentée sur mon miroir de téléchargement.
param
([string]$User)$EventLog = Get-EventLog -LogName « Security » -InstanceID « 4740 » -Message « *$User* » -Newest 1
if ($EventLog -eq $null) {
Write-Host « User doesn’t exist or there is no log entry related to it. »
Break
}
Write-Host $EventLog[0].TimeGenerated
Write-Host $EventLog[0].Message
On appellera donc ensuite le script comme ceci :
PS > win_event4740.ps1 usertest
Par exemple, on peut utiliser LockoutStatus pour déterminer le DC qui procède au verrouillage du compte :
Sur cette capture, le compte n’est pas verrouillé, mais si il l’est, la colonne encadrée donnera le nom du DC ayant procédé au blocage du compte. |
Ensuite, en se connectant au domain controller en question, l’exécution du script en passant en paramètre le login du compte verrouillé évitera d’ouvrir le journal d’évenements et d’avoir à filtrer parmi plusieurs évenements de verrouillages de compte.