Skip to main content

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 :
    powershell
    Set-ExecutionPolicy Bypass -Scope Process -Force .\nettoyage.ps1

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.