TUTOS.EU

Trouver quel ordinateur est à l'origine du verrouillage d'un compte

Identifier la machine sur laquelle le verrouillage d'un compte AD d'un utilisateur a eu lieu

Technique à suivre

Il faut regarder dans les journaux de sécurité des différents AD.

Il faut chercher l'eventid 644

A partir d'un AD en 2008 il faut chercher l'eventid 4740

Exemple :

Dans les détails on trouve le nom du compte locké et l'ordinateur depuis lequel il a été locké

On peut aller plus loin au niveau du filtre en utilisant du xml, ce qui permettra de filtrer sur le login qui est dans le corp du message

Voici le xml qui sera à adapter

<QueryList>
  <Query Id="0" Path="Security">
    <Select Path="Security">*[System[(EventID=4740)] and EventData[Data[@Name='TargetUserName']='loginrecherché']
]</Select>
  </Query>
</QueryList>
Lien vers le fichier : cliquez ici Copier le code

Il est possible de lire des journaux de sécurité avec Powershell.
Par exemple voici un script qui affiche les 5 derniers messages ayant l'id 4740 sur la dernière heure sur l'ordinateur local :

$Date = (Get-Date).AddHours(-1)
$objEvents = Get-WinEvent Security | Where-Object {$_.TimeCreated -ge $Date  -and $_.id -eq 4740} | Select-Object -first 5 | Format-Table TimeCreated, LogName, Level, Id, ProviderName, Message

if ($objEvents -ne $null){
	add-content $MonFichier "Erreur détectée"
	foreach ($OneVent in $objEvents){
		$OneVent
		#write-host $OneVent.LogName
	}
}
Lien vers le fichier : cliquez ici Copier le code

Voici un autre exemple qui fait une recherche sur plusieurs AD

$Date = (Get-Date).AddDays(-1)
$MesMachines = "machine01,machine02" -split ","
foreach ($UneLigne in $MesMachines){
	Write-host "Traitement de $UneLigne"
	Invoke-command -ScriptBlock { Get-WinEvent Security | Where-Object {$_.TimeCreated -ge $Date -and $_.id -eq 4740 -and $_.Message -like "*loginrecherche*"} | Select-Object -first 20 | Format-List TimeCreated, LogName, Level, LevelDisplayName, Id, ProviderName, Message } -ComputerName $UneLigne
}
Lien vers le fichier : cliquez ici Copier le code

Vous pouvez aussi utiliser lockoutstatus que l'on trouve dans le ressourcekit

Pages Web

Site WebDescription
jijitechnologies.comExplain about account lockout event ids ?
Woshub.comTroubleshooting: Identify Source of Active Directory Account Lockouts
Hey scripting guyUse PowerShell to Find the Location of a Locked-Out User

Téléchargement(s)

NomSite Web d origineDescription
Windows_Resource_Kits_Loc... Lockoutstatus


2