Pages

samedi 5 novembre 2011

wevtutil.exe : Explications



wevtutil.exe qu'est ce que c'est ?

C'est l'outil en ligne de commande de l'observateur d’événements.
Il existe depuis Windows Vista et s'applique à Windows 7 et Windows 2008 Serveur.
C'est en quelque sorte le descendant de Eventquery.vbs sous Windows XP.


A quoi sert wevtutil.exe ?

Il permet de retrouver des informations , d'exporter , d'archiver, de nettoyer les logs du journal d’événement mais aussi d’exécuter des requêtes.

C'est à cette dernière partie que l'on va s’intéresser.

Vous avez consulté le site de Microsoft de fond en comble et vous n'avez toujours pas compris comment écrire une requête ? Je dirais presque 'C'est normal '.

Quelques sites (en anglais de préférences) donnent des pistes à ce sujet mais c'est toujours assez floue.

Il existe cependant une méthode imparable pour écrier des requêtes même complexes.

Trêve de bavardage, prenons un exemple concret.

Étape 1, lançons l'observateur d’événement.

Étape 2, dans le Menu 'Action', choisir 'Créer une vue personnalisée'.

Étape 3, Nous y voilà.


Nous allons nous inspirer de l'exemple fourni par techrepublic.com avec un petit complément sur le nombres de jours connectés.


Étape 4, Accédons ensuite à l'onglet XML.
C'est là que nous allons trouver des informations importantes à la création de notre requête.

On se replonge dans le site de Microsoft

qe : Lit les événements depuis un log d’événements,...
Dans notre cas, c'est Microsoft-Windows-Diagnostics-Performance/Operational

/q: Définit la requête XPath pour filtrer les événements qui sont lus ou exportés.
Pour nous, cette valeur sera donc égale à :
*[System[(Level=1 or Level=2 or Level=3 or Level=4 or Level=0 or Level=5) and (EventID=100) and TimeCreated[timediff(@SystemTime) <= 604800000]]]

Bon évidemment, il y a un piège. C'est ce pourquoi j'ai rajouté le nombre de jours connectés.
La commande wevtutil ne va pas comprendre la chaîne de caractère <. Il faudra donc la remplacer par
son équivalent, c'est à dire « < »
(Merci à Open a Socket !)

Ça y est ! On a toutes les billes pour achever notre requête :

wevtutil qe Microsoft-Windows-Diagnostics-Performance/Operational "/q:*[System[(Level=1 or Level=2 or Level=3 or Level=4 or Level=0 or Level=5) and (EventID=100) and TimeCreated[timediff(@SystemTime) <= 604800000]]]"

On peut ensuite y ajouter quelques paramètres intéressants comme :
/c:1 qui définira le nombre maximum d’événements à lire (ici 1)
/rd:true qui nous permet de spécifier l'ordre dans lequel nous voulons lire les événements (ici du plus récent au moins récent)
/f:xml qui nous permettra de définir le format de sortie (ici xml)
Note, le format XML est beaucoup plus bavard que le format text

Format XML


Format Text :

Dans un prochain Post, j'expliquerais comment exploiter ces informations en VB Script et peut être même en Powershell (si je suis inspiré)



Références :





2 commentaires:

Elwood a dit…

Bonjour,

Grâce à vous j'ai pu finaliser ma recherche des évènements concernant la sauvegarde de Windows. Cela me permet de savoir si la sauvegarde a bien tourné dans les dernières 24h :

rem Recherche de l'évènement de la sauvegarde dans les dernières 24h
wevtutil qe Microsoft-Windows-Backup /rd:true /e:Events /f:Text "/q:*[System[(Level=1 or Level=2 or Level=3 or Level=4 or Level=0 or Level=5) and TimeCreated[timediff(@SystemTime) <= 86400000]]]"

Merci.

Fred a dit…

Bonjour,

Heureux d'avoir pu vous rendre service.

Fred