# 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).*

<div id="bkmrk-">---

</div>## 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)

<div id="bkmrk--1">---

</div>## 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)`<a href="https://www.notion.so/Pagefile-sys-149e026a424380b5a5e3f1a4a2f48899?pvs=21">Pagefile.sys</a>`

<div id="bkmrk--2">---

</div>## 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 : <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.