-
get-event et fichier csv
Bonjour tout le monde.
Je débute tout juste en PowerShell et je bloque sur un petit truc que je n'arrive pas à résoudre.
Je cherche à extraire la dernière donnée du journal d'événement Microsoft Office, ce script s’exécutera ensuite sur tous les pc de mon parc informatique
Voici la ligne que j'ai faite :
Code:
Get-EventLog -logname OSession -newest 1 | Format-Table MachineName,EntryType,Source,TimeGenerated -HideTableHeaders -AutoSize | out-file c:\test.csv -append
Mon problème : Je voudrais que les différents informations soit séparées par un séparateur (ce qui permettra de faire des tris quand toutes les informations seront stockées dans le fichier).
PS: j'ai essayer avec un export mais ça écrase à chaque fois la ligne présente (il n'existe pas de paramètre comme -append ? )
-
Salut,
avec ceci ça devrait marcher:
Code:
Get-EventLog........ | foreach-object { write-output "$_ ;" >> "pouet.csv"}
En tout cas je ne sais pas ce que tu récupere mais aprés un petit test rapide ça fonctionne chez moi ... mais c'est trés crade ! désolé pas le temps de faire mieux la, dessuite ;).
Cdlt.
-
Salut et merci de ta réponse, ça m'aide super bien :D
J'ai encore quelque souci ^^
J'ai transformé ma ligne de commande comme ceci :
Code:
Get-EventLog -logname OSession -newest 1 | foreach-object { write-output $_.EntryType,";",$_.MachineName >> "pouet.csv"}
ça marche bien sauf que chaque élément sont inséré dans le fichier les un en dessous des autres :s
Ce que je voudrais au final c'est de mettre le résultat $_.EntryType,";",$_.MachineName sur une seul ligne.
Et la j'ai beau chercher et essayer plein de choses je n'arrive pas à mettre le résultat sur une seule ligne.
-
Ok
alors au plus simple, admettons que tu n'ai pas de compteur et que tu ais uniquement que 4 champs:
Code:
Get-EventLog -logname OSession -newest 1 | foreach-object { write-output "$_[0];$_[1];$_[2];$_[3]" >> "pouet.csv"}
aprés rien n'empeche d'employer un compteur.
Cdlt.
-
J'ai déjà essayé cette solution mais dans mon fichier j'ai :
System.Diagnostics.EventLogEntry.EntryType;System.Diagnostics.EventLogEntry.MachineName
au lieu de : Information;ordinateur1
Avec les guillemets les valeurs sont remplacées par System.Diagnostics.EventLog....
Je ne sais pas trop pourquoi :s
Je ne doit pas utiliser powershell comme il le faut je pense
-
J'ai trouvé mon problème :lol:
C'est bien ce que je disais, je ne connait pas encore assez bien powershell ^^
Mon problème venait de la substitution des variables
voila le code final ^^
Code:
$events = get-eventlog -logname OSession -newest 1 | foreach-object {write-output "$($_.EntryType) ; $($_.MachineName)" >> "c:\test.csv"}