Objectif
Mettre en place une rétention contrôlée des journaux Windows archivés en conservant les fichiers récents nécessaires aux investigations.
Prérequis
- Le chemin exact du dossier d’archives.
- La durée de conservation validée par l’entreprise.
- Un compte de service ou SYSTEM disposant des droits de suppression.
Procédure pas à pas
Mesurer l’espace occupé
Listez les fichiers, leurs dates et leur taille avant de définir la rétention.
Get-ChildItem "D:LogsSecurity" -Filter *.evtx -Recurse | Sort LastWriteTime | Select FullName,LastWriteTime,Length
Tester la sélection sans supprimer
Cette commande affiche uniquement les fichiers plus anciens que 90 jours.
Get-ChildItem "D:LogsSecurity" -Filter *.evtx -File | Where-Object LastWriteTime -lt (Get-Date).AddDays(-90)
Créer le script de purge
Ajoutez un journal texte pour garder la trace de chaque suppression.
$Limit = (Get-Date).AddDays(-90)
$Log = "D:Logspurge-archives.log"
Get-ChildItem "D:LogsSecurity" -Filter *.evtx -File |
Where-Object LastWriteTime -lt $Limit | ForEach-Object {
"$(Get-Date -Format s) Suppression $($_.FullName)" | Add-Content $Log
Remove-Item $_.FullName -Force
}
Signer ou encadrer l’exécution
Placez le script dans un dossier protégé, en lecture seule pour les utilisateurs standards.
Créer la tâche planifiée
Planifiez une exécution hebdomadaire avec PowerShell et l’option -NoProfile. Testez la tâche manuellement.
powershell.exe -NoProfile -ExecutionPolicy Bypass -File "C:ScriptsPurge-Archives.ps1"
Surveiller la première exécution
Contrôlez l’historique de la tâche, le fichier de log et l’espace libéré.
Validation
La procédure est validée lorsque :
- La tâche termine avec le code 0.
- Seuls les fichiers dépassant la rétention sont supprimés.
- Le dossier conserve assez d’espace libre entre deux exécutions.
Retour arrière
- Désactivez la tâche planifiée.
- Restaurez les journaux depuis la sauvegarde si une conservation plus longue était requise.