# Script et automatisation - nettoyage avancé

### Voici un script PowerShell avancé pour automatiser le nettoyage du disque C:\\ d’un serveur ou d’un PC Windows.

\# Arrêt des services Windows Update pour éviter les conflits  
Write-Output "Arrêt du service Windows Update..."  
Stop-Service -Name wuauserv -Force  
Stop-Service -Name bits -Force

\# Suppression des fichiers temporaires Windows  
Write-Output "Suppression des fichiers temporaires..."  
Remove-Item -Path "C:\\Windows\\Temp\\\*" -Recurse -Force -ErrorAction SilentlyContinue  
Remove-Item -Path "$env:TEMP\\\*" -Recurse -Force -ErrorAction SilentlyContinue

\# Nettoyage des fichiers de mise à jour Windows  
Write-Output "Suppression des fichiers de mise à jour..."  
Remove-Item -Path "C:\\Windows\\SoftwareDistribution\\Download\\\*" -Recurse -Force -ErrorAction SilentlyContinue  
Remove-Item -Path "C:\\Windows\\Logs\\CBS\\\*" -Recurse -Force -ErrorAction SilentlyContinue

\# Nettoyage des logs système et des fichiers de diagnostic  
Write-Output "Suppression des fichiers journaux et diagnostics..."  
Remove-Item -Path "C:\\Windows\\System32\\LogFiles\\\*" -Recurse -Force -ErrorAction SilentlyContinue  
Remove-Item -Path "C:\\Windows\\Prefetch\\\*" -Recurse -Force -ErrorAction SilentlyContinue  
Remove-Item -Path "C:\\inetpub\\logs\\LogFiles\\\*" -Recurse -Force -ErrorAction SilentlyContinue

\# Exécution du nettoyage de disque avec les options prédéfinies  
Write-Output "Exécution du Nettoyage de disque..."  
cleanmgr /sagerun:1

\# Nettoyage avancé des composants Windows  
Write-Output "Nettoyage avancé de WinSxS..."  
Dism.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase

\# Vérification et réparation des fichiers système corrompus  
Write-Output "Exécution de SFC pour réparer les fichiers système..."  
sfc /scannow

\# Redémarrage des services Windows Update  
Write-Output "Redémarrage des services Windows Update..."  
Start-Service -Name wuauserv  
Start-Service -Name bits

Write-Output "Nettoyage terminé avec succès !"

### **Explication du script :**

1. **Arrête les services Windows Update** (`wuauserv` et `bits`) pour éviter les conflits.
2. **Supprime les fichiers inutiles** : temporaires, mises à jour téléchargées, logs système et diagnostics.
3. **Exécute `cleanmgr /sagerun:1`** pour un nettoyage personnalisé.
4. **Nettoie le dossier WinSxS** pour récupérer de l’espace disque.
5. **Vérifie et répare les fichiers système corrompus** avec `sfc /scannow`.
6. **Redémarre les services Windows Update**.

---

### **Comment l’exécuter ?**

1. **Ouvrir PowerShell en tant qu'administrateur**.
2. **Copier-coller ce script dans un fichier** `nettoyage.ps1`.
3. **Exécuter le script** avec cette commande : <div class="contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950"><div class="flex items-center text-token-text-secondary px-4 py-2 text-xs font-sans justify-between rounded-t-[5px] h-9 bg-token-sidebar-surface-primary dark:bg-token-main-surface-secondary select-none">powershell</div><div class="sticky top-9 md:top-[5.75rem]"></div><div class="overflow-y-auto p-4" dir="ltr">`Set-ExecutionPolicy Bypass -Scope Process -Force.\nettoyage.ps1`</div><div class="overflow-y-auto p-4" dir="ltr"></div></div>

---

### **Bonus : Automatiser avec le Planificateur de tâches (`taskschd.msc`)**

Si tu veux exécuter ce script automatiquement toutes les semaines :

1. Ouvre **taskschd.msc**.
2. Crée une nouvelle tâche avec **Exécuter avec les privilèges les plus élevés**.
3. Définis une planification (ex. : tous les dimanches à 3h du matin).
4. Mets `"powershell.exe -ExecutionPolicy Bypass -File C:\chemin_du_script\nettoyage.ps1"` dans le champ programme/script.