# Nettoyage d'un disque Système # Maintenance et Nettoyage SQL et Windows ## 1. Base de Données SQL - **20% est un minimum pour que la BBD soit fonctionnelle et efficace.** *Une base de données doit toujours disposer d'au moins 20 % d'espace libre pour garantir ses performances et éviter les erreurs.* - **SQL Management Studio peut nous donner des informations sur la BDD.** *Utiliser SQL Management Studio pour surveiller l’état de la base de données, identifier les problèmes et optimiser les requêtes.* - **Les journaux d’évènements doivent être consultés pour voir quel est le problème.** *Vérifier les logs d’évènements Windows et SQL Server pour détecter les erreurs ou alertes.* - **Vérification des sauvegardes et des repositories.** *S'assurer que les sauvegardes sont bien réalisées et que l’espace de stockage est suffisant (vérifier les points de rétention).*
---
## 2. Nettoyage du disque C d’un serveur Windows ### Suppression des fichiers inutiles - **Nettoyage automatique avec l'outil Disk Cleanup** ``` cleanmgr /sagerun:1 ``` *Exécute l’outil de nettoyage de disque avec des options avancées.* - **Vérification et suppression des fichiers temporaires** ``` del /q /s C:\Windows\Temp\* del /q /s C:\Users\*\AppData\Local\Temp\* ``` *Efface les fichiers temporaires du système et des utilisateurs.* - **Suppression des anciens fichiers Windows Update** ``` del /q /s C:\Windows\SoftwareDistribution\Download\* ``` *Libère de l'espace en supprimant les anciennes mises à jour Windows téléchargées.* - **Suppression des fichiers de logs système** ``` del /q /s C:\Windows\System32\LogFiles\* del /q /s C:\inetpub\logs\LogFiles\* ``` *Supprime les journaux Windows et IIS pour libérer de l’espace.* - **Suppression des fichiers de prélecture (Prefetch)** ``` del /q /s C:\Windows\Prefetch\* ``` *Nettoie les fichiers de prélecture pour optimiser les performances.* ### Nettoyage du dossier WinSxS - **Commande pour réduire la taille de WinSxS** ``` Dism.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase ``` *Supprime les anciennes versions des mises à jour pour récupérer de l’espace.* 📌 [En savoir plus sur WinSxS](https://learn.microsoft.com/fr-fr/windows-hardware/manufacture/desktop/clean-up-the-winsxs-folder?view=windows-11)
---
## 3. Nettoyage avancé avec DISM et SFC - **Suppression des anciennes mises à jour du système** ``` dism /online /cleanup-image /SPSuperseded ``` *Supprime les anciennes mises à jour du système et libère de l’espace disque.* - **Nettoyage avancé des composants Windows** ``` dism /online /cleanup-image /StartComponentCleanup ``` *Optimise les composants Windows et réduit l’espace utilisé par le système.* - **Vérification et réparation des fichiers système corrompus** ``` sfc /scannow ``` *Scanne et répare les fichiers système endommagés.* - **Vérification des erreurs disque** ``` chkdsk C: /F /R /X ``` *Corrige les erreurs sur le disque C et tente de récupérer les secteurs défectueux.* 📌 [En savoir plus sur ](https://www.notion.so/Pagefile-sys-149e026a424380b5a5e3f1a4a2f48899?pvs=21)`Pagefile.sys`
---
## 4. Automatisation du nettoyage - **Planification d’un nettoyage automatique** 1. Ouvrir le Planificateur de tâches (`taskschd.msc`) 2. Créer une nouvelle tâche avec `cleanmgr /sagerun:1` 3. Définir une exécution hebdomadaire *Cela permet de maintenir automatiquement un disque propre et performant.* # 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.