janvier
2010
Voici un exemple de billet publié sur notre blog interne. Mon but est d’alimenter le blog interne avec du contenu utile pour mes collègues, tout en me servant de ce blog pour remplacer les cahiers où je notais autrefois les trucs et astuces que j’apprenais. Le contexte : j’apprends régulièrement un peu de PowerShell, le nouveau shell de Microsoft, car cela me rend service dans mon travail, et je pense qu’il serait utile aussi à mes collègues. Le billet ci-dessous présente donc un exemple tout simple d’accès au journal d’événement Windows.
Vous savez sans doute que je suis un fan des langages de scripts : Python (utilisé avec succès dans certains satellites de nos applications comme un outil d’export générique, ou des extensions de calcul spécialisées), Ruby (pour apprendre le BDD avec Cucumber), mais ces derniers sont peu pratiques quand il s’agit d’interagir avec Windows.
C’est pourquoi je poursuis mon apprentissage de PowerShell : c’est un langage de script moderne complètement intégré à Windows, notamment parce qu’il accède facilement à .NET.
L’exemple du jour : je dois souvent nettoyer le journal d’événements Windows « Custom » (créé durant l’installation de nos logiciels pour permettre à nos applications de centraliser leurs événements).
Or c’est assez fastidieux depuis l’application Windows standard (et même avec l’application spécialisée Event Log Explorer que nous utilisons dans l’équipe Support) : il faut un clic droit, puis répondre Non à la question « voulez-vous sauver le journal avant de l’effacer ? ». Quand vous faites ca toute la journée c’est fatiguant. et puis on finit par oublier de faire ces opérations, le journal d’événements devient difficile à analyser, etc.
C’est là que PowerShell intervient : comme .NET fournit une classe EventLog bien pratique pour interagir avec les journaux d’événements, on peut y accéder en PowerShell :
J’ai utilisé Get-Member simplement pour me persuader que j’avais bien sous la main ce que je cherchais :
et donc ensuite j’ai appelé Clear() qui m’évite de faire l’opération à la main.
En fait il y a encore plus simple que mon idée de faire appel à une classe .NET. En effet PowerShell dispose directement de commandes pour interagir avec les journaux d’événements. Ce n’est pas étonnant car c’est quand même un outil d’administration Windows.
Voici donc la méthode la plus directe :
Et c’est donc la commande que je vais insérer au début de mes scripts de tests ! Fini les clics inutiles !
Note : j’ai trouvé l’idée du Clear-EventLog grâce à cet article sur ITPro.fr : Powershell, une ligne de commande qui a su se faire désirer – c’est aussi un très bon article pour démarrer avec PowerShell.
Commentaires récents
- Des tableaux pour l’intégration d’un équipier dans une équipe Scrum dans
- Rétrospectives, la directive première dans
- Des tableaux pour l’intégration d’un équipier dans une équipe Scrum dans
- Des tableaux pour l’intégration d’un équipier dans une équipe Scrum dans
- Des tableaux pour l’intégration d’un équipier dans une équipe Scrum dans