Comment utiliser PowerShell pour gérer le journal des événements Windows ?

Le journal des événements Windows est l’un de ces produits omniprésents que presque tous les administrateurs système Windows connaissent. En cas de rupture, de changement imprévu ou de violation de la sécurité, le journal des événements Windows est généralement le premier endroit à consulter.

Lors de l’inspection du journal des événements via l’afficheur d’événements, il est difficile de préciser ce que vous recherchez si votre recherche s’étend sur plusieurs journaux d’événements ou si vous devez rechercher des événements sur plusieurs ordinateurs simultanément. Dans ce cas, PowerShell peut venir à la rescousse.

PowerShell dispose de deux cmdlets (ou commande-let) pour lire le journal des événements : Get-EventLog et Get-WinEvent.

Comment utiliser PowerShell pour gérer le journal des événements Windows ?

Chaque applet de commande effectue la même tâche de manière légèrement différente. Faisons quelques tâches courantes et voyons comment leur syntaxe se compare.

Comment établir la liste des journaux d’événements ?

Tout d’abord, nous pouvons énumérer les journaux d’événements. En utilisant Get-EventLog, nous pouvons utiliser le paramètre List, tandis que Get-WinEvent utilise le paramètre ListLog.

On peut couper la sortie des deux commandes, mais lorsque vous les exécutez, vous remarquerez immédiatement que Get-WinEvent renvoie beaucoup plus de journaux. En effet, il est possible d’interroger les journaux affichés sous Applications et Services dans l’afficheur d’événements, contrairement à Get-EventLog.

L’interrogation des journaux d’événements individuels

Une fois que vous connaissiez les journaux disponibles à interroger, vous pouvez ensuite limiter la requête à un journal d’événements particulier à l’aide de l’une ou l’autre des applets de commande. Cela produira chaque événement dans le journal des événements que vous fournissez au paramètre LogName sur l’une ou l’autre des applets de commande, dans un ordre chronologique. Mais que faire si vous avez besoin de trouver des événements spécifiques ? Dans ce cas, vous devrez filtrer.

Il existe de nombreuses façons différentes de filtrer les événements à l’aide des deux applets de commande, au-delà de Get-WinEvent. Par exemple, vous voulez peut-être voir tous les événements de votre journal des événements d’application qui se sont produits il y a une semaine ou plus tôt. Avec Get-EventLog, après avoir défini la date il y a sept jours, vous pouvez utiliser le paramètre « Après ». Vous pouvez aussi faire quelque chose de similaire avec Get-WinEvent, bien que cette fois, vous devez utiliser l’un de ses paramètres de filtre. Dans ce cas, utilisez le paramètre FilterHashTable.

Peut-être voudriez-vous ne trouver que les événements correspondant à un identifiant spécifique. Les deux applets de commande peuvent également le faire : Get-WinEvent et Get-EventLog

Get-WinEvent et Get-EventLog

Vous pouvez faire beaucoup de choses avec les deux applets de commande, mais Get-WinEvent prend le gâteau en pure fonctionnalité. Outre le fait qu’il peut interroger beaucoup plus de types de journaux d’événements que Get-EventLog, sa capacité de filtrage est imbattable.

Dans les cas ci-dessus, utilisez le paramètre FilterHashTable, mais ce n’est qu’un exemple. Get-WinEvent prend également en charge le filtrage des événements selon leur format XML natif à l’aide de FilterXML. Par exemple, si vous souhaitez trouver tous les événements avec un nom de fournisseur « disque » dans le journal des événements système avec un ID d’événement égal à 1, vous pouvez définir le code XML et transmettre cette valeur au paramètre FilterXML. Définir tout ce XML n’est pas votre truc ? Aucun problème. Vous pouvez aussi utiliser XPath.

Get-WinEvent fournit de nombreuses options pour filtrer les événements, ce qui le rend nettement supérieur à l’applet de commande Get-EventLog en termes de fonctionnalités.

Conclusion

Vous venez de faire une approche sur l’utilité de ces deux commandes. En un mot, si vous devez exécuter de simples requêtes dans le journal des événements, Get-EventLog sera probablement plus facile à utiliser. Si vous avez besoin de créer des requêtes complexes sur des ordinateurs locaux et distants, Get-WinEvent est un bien meilleur choix.

  • PowerShell propose deux cmdlets pour lire le journal des événements Windows: Get-EventLog et Get-WinEvent.
  • Get-EventLog est plus simple à utiliser pour des requêtes simples, tandis que Get-WinEvent est meilleur pour des requêtes complexes sur plusieurs ordinateurs.
  • Get-WinEvent offre davantage d'options de filtrage et de fonctionnalités par rapport à Get-EventLog.
Annie Denis
Journaliste sur Génération Clic
S’abonner
Notifier de
guest
Commentaires
Oldest
Newest Most Voted
Inline Feedbacks
View all comments