@echo off
:: ============================================================
::   SCRIPT DE NETTOYAGE WINDOWS COMPLET
::   Se relance automatiquement en Administrateur (UAC)
::   Fermez vos navigateurs avant de lancer ce script
:: ============================================================

:: --- Elevation automatique des droits administrateur ---
net session >nul 2>&1
if %errorLevel% neq 0 (
    echo Demande d'elevation des droits administrateur...
    powershell -NoProfile -Command "Start-Process -FilePath '%~f0' -Verb RunAs"
    exit /b
)

echo ============================================
echo   NETTOYAGE WINDOWS COMPLET - DEBUT
echo ============================================
echo.

:: --- 1. Fichiers temporaires utilisateur ---
echo [1/16] Nettoyage des fichiers temporaires utilisateur...
del /q /f /s "%TEMP%\*" >nul 2>&1
for /d %%x in ("%TEMP%\*") do rd /s /q "%%x" >nul 2>&1

:: --- 2. Fichiers temporaires systeme ---
echo [2/16] Nettoyage des fichiers temporaires systeme...
del /q /f /s "C:\Windows\Temp\*" >nul 2>&1
for /d %%x in ("C:\Windows\Temp\*") do rd /s /q "%%x" >nul 2>&1

:: --- 3. Corbeille ---
echo [3/16] Vidage de la corbeille...
PowerShell.exe -NoProfile -Command "Clear-RecycleBin -Force -ErrorAction SilentlyContinue"

:: --- 4. Historique des fichiers recents Windows (Explorateur, jump lists) ---
echo [4/16] Suppression de l'historique des fichiers recents...
del /q /f "%APPDATA%\Microsoft\Windows\Recent\*" >nul 2>&1
del /q /f "%APPDATA%\Microsoft\Windows\Recent\AutomaticDestinations\*" >nul 2>&1
del /q /f "%APPDATA%\Microsoft\Windows\Recent\CustomDestinations\*" >nul 2>&1

:: --- 5. Cache des miniatures (thumbnails) ---
echo [5/16] Nettoyage du cache des miniatures...
del /q /f "%LOCALAPPDATA%\Microsoft\Windows\Explorer\thumbcache_*.db" >nul 2>&1
del /q /f "%LOCALAPPDATA%\Microsoft\Windows\Explorer\iconcache_*.db" >nul 2>&1

:: --- 6. Fichiers Prefetch (optionnel - Windows les regenere, impact demarrage negligeable) ---
echo [6/16] Nettoyage du dossier Prefetch...
del /q /f "C:\Windows\Prefetch\*" >nul 2>&1

:: --- 7. Rapports d'erreurs Windows (WER) ---
echo [7/16] Suppression des rapports d'erreurs Windows...
del /q /f /s "C:\ProgramData\Microsoft\Windows\WER\*" >nul 2>&1
del /q /f /s "%LOCALAPPDATA%\Microsoft\Windows\WER\*" >nul 2>&1

:: --- 8. Cache Delivery Optimization (mises a jour partagees en P2P) ---
echo [8/16] Nettoyage du cache Delivery Optimization...
net stop dosvc >nul 2>&1
del /q /f /s "C:\Windows\SoftwareDistribution\DeliveryOptimization\*" >nul 2>&1
net start dosvc >nul 2>&1

:: --- 9. Cache Windows Update (SoftwareDistribution) ---
echo [9/16] Nettoyage du cache Windows Update...
net stop wuauserv >nul 2>&1
net stop bits >nul 2>&1
rd /s /q "C:\Windows\SoftwareDistribution\Download" >nul 2>&1
net start wuauserv >nul 2>&1
net start bits >nul 2>&1

:: --- 10. Logs USOPrivate / USOShared (orchestrateur Windows Update) ---
echo [10/16] Nettoyage des logs USO (Update Session Orchestrator)...
del /q /f /s "C:\ProgramData\USOPrivate\UpdateStore\*" >nul 2>&1
del /q /f /s "C:\ProgramData\USOShared\Logs\*" >nul 2>&1

:: --- 11. Cache DNS ---
echo [11/16] Vidage du cache DNS...
ipconfig /flushdns >nul 2>&1

:: --- 12. Historique de navigation : Microsoft Edge ---
echo [12/16] Suppression de l'historique de navigation Edge...
taskkill /f /im msedge.exe >nul 2>&1
del /q /f "%LOCALAPPDATA%\Microsoft\Edge\User Data\Default\History" >nul 2>&1
del /q /f "%LOCALAPPDATA%\Microsoft\Edge\User Data\Default\Visited Links" >nul 2>&1
del /q /f /s "%LOCALAPPDATA%\Microsoft\Edge\User Data\Default\Cache\*" >nul 2>&1

:: --- 13. Historique de navigation : Google Chrome ---
echo [13/16] Suppression de l'historique de navigation Chrome...
taskkill /f /im chrome.exe >nul 2>&1
del /q /f "%LOCALAPPDATA%\Google\Chrome\User Data\Default\History" >nul 2>&1
del /q /f "%LOCALAPPDATA%\Google\Chrome\User Data\Default\Visited Links" >nul 2>&1
del /q /f /s "%LOCALAPPDATA%\Google\Chrome\User Data\Default\Cache\*" >nul 2>&1

:: --- 14. Historique de navigation : Mozilla Firefox ---
echo [14/16] Suppression de l'historique de navigation Firefox...
taskkill /f /im firefox.exe >nul 2>&1
for /d %%p in ("%APPDATA%\Mozilla\Firefox\Profiles\*") do (
    del /q /f "%%p\places.sqlite" >nul 2>&1
)

:: --- 15. Nettoyage de disque Windows (fichiers systeme "de surface") ---
echo [15/16] Lancement du nettoyage de disque Windows...
echo   -^> Si c'est la 1ere fois, configurez d'abord avec : cleanmgr /sageset:1
cleanmgr /sagerun:1

:: --- 16. Nettoyage des composants Windows obsoletes (WinSxS) via DISM ---
echo [16/16] Nettoyage des composants systeme obsoletes (DISM)...
DISM /Online /Cleanup-Image /StartComponentCleanup /Quiet

echo.
echo ============================================
echo   NETTOYAGE TERMINE
echo ============================================
echo Espace disque et fichiers temporaires nettoyes avec succes.
pause
