Effectuer des recherches

Rechercher et filtrer des éléments dans l’observateur d’événement 

 

Il est possible de filtrer sur les différents champs présents dans la console. Faites un clic droit sur le journal correspondant puis sélectionner « Filtrer le journal actuel ». Vous pouvez filtrer sur la source, sur le niveau, sur l’identifiant et bien d’autres paramètres :

 

Utiliser PowerShell pour rechercher dans les journaux

 

Rechercher quand le poste a démarré

Dans ce premier exemple nous recherchons “EventID” correspondant à 4608 ce qui représente le démarrage de Windows.

Get-EventLog -Logname security | Where-Object {$_.EventID -eq 4608 }

 

 

Retrouver quand un utilisateur a été créer

Avec  cette commande PowerShell nous pouvons voir que le compte a été créé par l’utilisateur administrateur.

 

Get-EventLog -Logname security | Where-Object {$_.EventID -eq 4720 -and $_.message.contains('phil@lab.lan') } |fl

Il est possible d’interroger plusieurs serveurs dans la même ligne de commande avec « -computername serveur1,serveur2 »:

Get-EventLog -Logname security -computername labdc1,labclient | Where-Object {$_.EventID -eq 4720 ) } | Format-Table TimeWritten,MachineName, Source, EventID,message –auto

Note : le service de registre à distance doit être démarré ce qui n’est pas forcément le cas sur un poste client). Le pare-feu doit autorise les connexions à distance pour la gestion des événements.

Recherché si des comptes ont été activés ces derniers 24h

Dans cet exemple nous allons voir comment délimiter les recherches dans une période de temps. Dans le premier exemple nous limitons la recherche aux24 dernières heures.

Get-EventLog -Logname security -After $(Get-Date).AddHours(-24) | Where-Object {$_.EventID -eq 4722 } |Format-Table TimeWritten,MachineName, Source, EventID,message –auto

Voir les mises à l’heure de la machine

La commande suivante permet de retrouver les événements liés à la synchronisation des horloges (événement système) :

Get-EventLog -Logname security | Where-Object {$_.EventID -eq 4616 } | ft –autosize

Exemple : surveiller les échecs de connexion avec le compte administrateur

Pour cet exemple nous modifions la GPO de configuration des audits sur les contrôleurs de domaines et nous rajoutons les échecs pour «   Service d'authentification Kerberos ».

Nous allons sur le poste client et à 3 reprises nous essayons d’ouvrir la session « lab\administrateur » avec un mauvais mot de passe.

Nous retrouvons donc sur le contrôleur de domaine l’événement « 4771 » indique un échec d’authentification Kerberos :

La commande suivante nous permet de rechercher les événements « 4771 » contenants le mot « administrateur » dans le corps du message. Le résultat est stocké dans la variable « $a »

$a=Get-EventLog -Logname security -computername labdc1 | Where-Object {$_.EventID -eq 4771 -and $_.message.contains('Administrateur')  

La valeur « $a » permet de retrouver les événements correspondants, « $a.count » permet de voir le nombre d’échec.

Pour connaître le nombre d’échecs dans les 24 dernières heures il est possible d’utiliser la commande

$a=Get-EventLog -Logname security -computername labdc1 -After $(Get-Date).AddHours(-24) | Where-Object {$_.EventID -eq 4771 -and $_.message.contains('Administrateur')  }

 

Autre commande

 

La commande « Get-WinEvent » permet aussi d’interroger les journaux Windows, mais elle permet également d’accéder à un fichier export des événements ou à une archive contrairement à « get-eventlog » qui ne peut lire ni les archives ni les abonnements.

Exemple sur un fichier archive :

 

Get-WinEvent -Path "C:\Windows\System32\winevt\Logs\Archive-Security-2015-03-22-10-37-45-408.evtx" | Where-Object { $_.ID -eq 4624 } | Format-Table –AutoSize

 

Annee: