d6adee5ad9bf175ca203068bb238b32f0019ca34
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
WhatIfpour 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.
Description
Languages
PowerShell
100%