Files
Folder-Housekeeping/README.md
2025-11-25 11:37:20 -05:00

4.2 KiB

Folder Housekeeping

Script PowerShell pour effectuer le nettoyage automatique d'un dossier en supprimant les fichiers obsolètes.

📋 Description

Cleanup-OldFiles.ps1 est un script PowerShell conçu pour Windows 10 IoT et Windows 10/11 qui supprime automatiquement les fichiers dont la date de dernière modification dépasse un certain âge (en heures).

Fonctionnalités

  • Suppression récursive des fichiers obsolètes
  • Configuration flexible de la durée de rétention
  • Mode simulation (-WhatIf) pour tester sans supprimer
  • Journalisation complète avec horodatage
  • Gestion robuste des erreurs
  • Compatible Windows 10 IoT / PowerShell natif

🚀 Utilisation

Syntaxe

.\Cleanup-OldFiles.ps1 -FolderPath <chemin> [-HoursOld <heures>] [-WhatIf]

Paramètres

Paramètre Obligatoire Description Défaut
-FolderPath Oui Chemin du dossier à nettoyer -
-HoursOld Non Nombre d'heures (âge minimum des fichiers à supprimer) 24
-WhatIf Non Mode simulation - affiche ce qui serait supprimé sans effectuer la suppression -

Exemples

Supprimer les fichiers de plus de 24 heures (défaut)

.\Cleanup-OldFiles.ps1 -FolderPath "C:\Logs"

Supprimer les fichiers de plus de 3 heures

.\Cleanup-OldFiles.ps1 -FolderPath "C:\Temp" -HoursOld 3

Mode simulation (aperçu sans suppression)

.\Cleanup-OldFiles.ps1 -FolderPath "C:\Data" -HoursOld 48 -WhatIf

📅 Automatisation

Planificateur de tâches Windows

Pour exécuter le script automatiquement, vous pouvez créer une tâche planifiée :

# Créer une tâche qui s'exécute quotidiennement à 3h du matin
$action = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-ExecutionPolicy Bypass -File C:\Scripts\Cleanup-OldFiles.ps1 -FolderPath C:\Logs -HoursOld 24"
$trigger = New-ScheduledTaskTrigger -Daily -At 3am
$principal = New-ScheduledTaskPrincipal -UserId "SYSTEM" -LogonType ServiceAccount -RunLevel Highest
Register-ScheduledTask -TaskName "Housekeeping-Logs" -Action $action -Trigger $trigger -Principal $principal -Description "Nettoyage automatique des logs"

Tâche toutes les heures

$action = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-ExecutionPolicy Bypass -File C:\Scripts\Cleanup-OldFiles.ps1 -FolderPath C:\Temp -HoursOld 3"
$trigger = New-ScheduledTaskTrigger -Once -At (Get-Date) -RepetitionInterval (New-TimeSpan -Hours 1) -RepetitionDuration ([TimeSpan]::MaxValue)
$principal = New-ScheduledTaskPrincipal -UserId "SYSTEM" -LogonType ServiceAccount -RunLevel Highest
Register-ScheduledTask -TaskName "Housekeeping-Temp" -Action $action -Trigger $trigger -Principal $principal

📊 Sortie du script

Le script affiche des logs horodatés pour chaque opération :

[2025-11-25 14:30:00] Démarrage du housekeeping sur: C:\Temp
[2025-11-25 14:30:00] Suppression des fichiers plus vieux que 3 heures
[2025-11-25 14:30:00] Date limite: 2025-11-25 11:30:00
[2025-11-25 14:30:01] Nombre de fichiers à supprimer: 15
[2025-11-25 14:30:01] Supprimé: C:\Temp\old_file1.txt
[2025-11-25 14:30:01] Supprimé: C:\Temp\old_file2.log
...
[2025-11-25 14:30:05] ----------------------------------------
[2025-11-25 14:30:05] Housekeeping terminé
[2025-11-25 14:30:05] Fichiers supprimés: 15
[2025-11-25 14:30:05] Erreurs: 0

⚙️ Prérequis

  • Windows 10 IoT / Windows 10 / Windows 11
  • PowerShell 5.1 ou supérieur
  • Droits d'accès en écriture sur le dossier cible

🔒 Sécurité

  • Le script vérifie l'existence du dossier avant toute opération
  • Gestion des erreurs pour chaque fichier individuellement
  • Mode WhatIf pour valider les suppressions avant exécution
  • Code de sortie approprié (0 = succès, 1 = erreur)

📝 Licence

Script libre d'utilisation.

👤 Auteur

Créé pour l'automatisation du housekeeping sur Windows 10 IoT.