Voici un script permettant d’extraire dans un fichier .txt les logs d’evénements à partir d’un event ID:
$EventLogDir=‘C:\Temp’;
$ResultFile=‘result.txt’;
$UserName=‘edurand’; #
user logon
$UserDomain=‘smu.local’; #
domaine
$Timestamp=[System.DateTime]::Now – [System.TimeSpan]::FromDays(3); # Evenements de moins de 3
jours
$EventId=4624; #ID de l’evenement
Get-ChildItem -Path:$EventLogDir |
% {Get-WinEvent -Path:$_.FullName} |
? {$_.Id -eq $EventId} | # Filtrer par ID de l’evenement
? {$_.TimeCreated -gt $Timestamp} | # filter par heure et
date de login
? {$_.Properties[5].Value -ieq $UserName} | # filtrer par nom
utilisateur
? {$_.Properties[6].Value -ieq $UserDomain} | # Filter par le
domaine
Select-Object -Property TimeCreated, `
@{Name=‘SecurityId’;Expression={$_.Properties[4].Value}}, `
@{Name=‘AccountName’;Expression={$_.Properties[5].Value}}, `
@{Name=‘AccountDomain’;Expression={$_.Properties[6].Value}}, `
@{Name=‘LogonId’;Expression={$_.Properties[7].Value}}, `
@{Name=‘LogonType’;Expression={$_.Properties[8].Value}}, `
@{Name=‘Workstation’;Expression={$_.Properties[11].Value}}, `
@{Name=‘LogonGuid’;Expression={$_.Properties[12].Value}} |
Format-Table |
Out-File -FilePath $ResultFile;