first commit
This commit is contained in:
114
README.md
Normal file
114
README.md
Normal file
@@ -0,0 +1,114 @@
|
||||
# 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
|
||||
|
||||
```powershell
|
||||
.\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)
|
||||
|
||||
```powershell
|
||||
.\Cleanup-OldFiles.ps1 -FolderPath "C:\Logs"
|
||||
```
|
||||
|
||||
#### Supprimer les fichiers de plus de 3 heures
|
||||
|
||||
```powershell
|
||||
.\Cleanup-OldFiles.ps1 -FolderPath "C:\Temp" -HoursOld 3
|
||||
```
|
||||
|
||||
#### Mode simulation (aperçu sans suppression)
|
||||
|
||||
```powershell
|
||||
.\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 :
|
||||
|
||||
```powershell
|
||||
# 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
|
||||
|
||||
```powershell
|
||||
$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 :
|
||||
|
||||
```text
|
||||
[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.
|
||||
Reference in New Issue
Block a user