Powershell : compression et archivage automatique de logs

En vue d'une éventuelle mise en place d'un event collector permettant de centrer en un seul et même endroit tous les logs générés par les machines et lisibles en local dans l'event viewer, j'ai développé un petit script Powershell permettant une compression automatique des logs présents dans un répertoire dans un but d'archive. Le script ne retourne aucune information et ne procède à aucune vérification puisqu'il est idéalement appelé depuis une tâche planifiée et les droits de lecture/écriture par rapport au compte d'exécution auront été contrôlés auparavant. La journalisation étant activée, il sera possible de tracer les actions de 7z.exe et constater le succès ou l'échec de l'archivage.

Le script exécute 7-Zip, compresse les fichiers *.evtx dans une archive puis les supprime. Il conviendra naturellement d'adapter les chemins en fonction de l'environnement.

$7zpath = "C:\Program Files\7-Zip"
$logpath = "C:\events\logs-files\*.evtx"
$archivepath = "C:\events\archives"
$date = Get-Date -Format "yyyy-MM-dd"
$archivename = "logs-archive-$date.zip"
$7zreport = "C:\events\7z-compresslog-$date.log"
cd $7zpath
.7z.exe a "$archivepath$archivename" -r $logpath -mx=9 -bb -sdel > $7zreport 2>&1
Lien pour marque-pages : Permaliens.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.