PowerShell : Créer des logs – Partie 1

Bonjour à tous,

C’est amusant mais sur des fonctionnalités de la sorte que j’ai souvent bloqué pendant mes début en PowerShell. Je profite donc d’un petit doute sur l’un de mes derniers scripts pour vous en faire profiter 🙂

Aujourd’hui, nous allons parler logs !

Qu’est-ce qu’un fichier log ?

Un fichier log, c’est un terme devenu générique qui implique tout type d’enregistrement permettant de retracer les actions effectués, conséquences, erreurs ou autres informations utiles à être traité.

Il nous permet de tracer toutes nos actions, c’est le compagnon fidèle du débogage

Pourquoi utiliser des logs ?

Au tout début, je dois avouer que je n’en avais pas l’utilité. Je faisais juste de l’affichage pour tenir les administrateurs au-courant des évènements important durant les différentes processus (vive les “Write-Host“).
Mais maintenant, travailler sans avoir une base d’évènement est, d’une part, extrêmement dure à gérer (surtout pour les processus récurrent), d’autre part, ingérable pour faire des reports plusieurs jours après ^^’. Oui, en effet, c’est du vécu !

 

Première Partie

La méthode simple, utiliser une cmdlet qui permet d’enregistrer une partie de votre session PowerShell. Cette cmdlet va récupérer l’ensemble des résultats demandé et les entrées utilisateur (pour ne citer qu’eux “Read-Host” et “Write-Host”)

 

Lancer l’enregistrement

Je sauvegarde mes enregistrements au format rtf. Pourquoi ? Tout simplement parce que j’avais trouvé ce format dans forum autour de la génération de log et puis, c’est plus facile à lire qu’un .txt (on va utiliser le WordPad au moins une fois dans notre vie ^^)

 

start-transcript -path ".\logs\log.rtf"

 

Cette commande initialise la création d’un fichier log avec les information suivante :

  • La Date et l’Heure de lancement du start-transcript : YYYYMMDDHHMMSS (Année Mois Jour Heure Minute Second)
  • Le Username de l’utilisateur lancent le script : Chris-Laptope\ChrisBach
  •  Le nom de la machine sur laquelle le script est lancé : Chris-Laptope
  • Le lieu d’enregistrement du log :  Transcript started, output file is .\logs\log.rtf

 

Stopper l’enregistrement

Cette partie est tout simple, elle met fin à la session de log

 

Stop-Transcript

 

Elle affiche seulement la Date et l’Heure de fin : YYYYMMDDHHMMSS

Exemple de log en .rtf

log.rtf

Les retours possibles

Write-Host "un petit echo"
Write-Output "Une simple sortie"
Write-Error "Ecrire avec des information d'`"erreur`""
Write-Verbose "Si tu veux plus d'information, le verbose tu dois utliser"

 

Aller plus loin et sources :

Start-Transcript http://technet.microsoft.com/fr-fr/library/hh849687.aspx
Stop-Transcript http://technet.microsoft.com/fr-fr/library/hh849688.aspx

Leave a Reply