@echo off
chcp 65001 >nul
title Windows-Bereinigung
color 0A

echo -------------------------------------------------
echo Windows-Bereinigung gestartet: %DATE% %TIME%
echo -------------------------------------------------

:: Adminrechte prüfen
net session >nul 2>&1
if %errorlevel% neq 0 (
    echo [FEHLER] Dieses Skript muss als Administrator ausgeführt werden!
    pause
    exit /b
)

:: [1/14] Temporäre Dateien löschen
echo [1/14] Lösche temporäre Dateien...
del /f /s /q "%TEMP%\*" >nul 2>&1
del /f /s /q "C:\Windows\Temp\*" >nul 2>&1
echo OK

:: [2/14] Prefetch-Dateien löschen
echo [2/14] Lösche Prefetch-Dateien...
del /f /s /q "C:\Windows\Prefetch\*" >nul 2>&1
echo OK

:: [3/14] Windows Error Reporting-Dateien löschen
echo [3/15] Lösche WER-Dateien...
del /f /s /q "C:\ProgramData\Microsoft\Windows\WER\*" >nul 2>&1
echo OK

:: [4/14] Cleanmgr-Registry konfigurieren
echo [4/14] Setze Cleanmgr-Optionen in der Registry...
set "regbase=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches"
for %%I in (
    "Temporary Setup Files"
    "Downloaded Program Files"
    "Temporary Internet Files"
    "System error memory dump files"
    "Setup Log Files"
    "Windows Update Cleanup"
    "Windows Defender"
    "Delivery Optimization Files"
    "Downloaded Windows ESD installation files"
    "Recycle Bin"
    "Temporary Files"
    "Thumbnail Cache"
    "Previous Installations"
) do REG ADD "%regbase%\%%~I" /v StateFlags0001 /t REG_DWORD /d 2 /f >nul
echo OK

:: [5/14] Cleanmgr ausführen
echo [5/14] Starte Cleanmgr...
cleanmgr /sagerun:1
echo OK

:: [6/14] DISM Komponentenbereinigung
echo [6/14] Starte DISM Komponentenbereinigung...
dism /Online /Cleanup-Image /StartComponentCleanup >nul 2>&1
echo OK

:: [7/14] SFC Systemdateiprüfung
echo [7/14] Starte Systemdateiüberprüfung (SFC)...
sfc /scannow >nul 2>&1
echo OK

:: [8/14] Internet prüfen und passenden DISM-Befehl
echo [8/14] Prüfe Internetverbindung...
ping -n 1 www.microsoft.com >nul 2>&1
if %errorlevel%==0 (
    echo Internet verfügbar – führe DISM /RestoreHealth aus...
    dism /Online /Cleanup-Image /RestoreHealth >nul 2>&1
) else (
    echo Keine Verbindung – führe DISM /ScanHealth aus...
    dism /Online /Cleanup-Image /ScanHealth >nul 2>&1
)
echo OK

:: [9/14] Windows Update Cache löschen
echo [9/14] Leere SoftwareDistribution\Download...
net stop wuauserv >nul 2>&1
del /f /s /q "C:\Windows\SoftwareDistribution\Download\*" >nul 2>&1
net start wuauserv >nul 2>&1
echo OK

:: [10/14] DNS-Cache leeren
echo [10/14] Leere DNS-Cache...
ipconfig /flushdns >nul 2>&1
echo OK

:: [11/14] Ereignisprotokolle bereinigen
echo [11/14] Bereinige Windows-Ereignis-Logs...
for /F "tokens=*" %%G in ('wevtutil.exe el') do wevtutil.exe cl "%%G" >nul 2>&1
echo OK

:: [12/14] Ruhezustand deaktivieren
echo [12/14] Deaktiviere Ruhezustand...
powercfg -h off >nul 2>&1
echo OK

:: [13/14] Zwischenablage leeren
echo [13/14] Leere Zwischenablage...
echo. | clip
echo OK

:: [14/14] Temp-Ordner aller Benutzer
echo [14/14] Säubere Temp-Ordner weiterer Benutzerkonten...
for /d %%U in ("C:\Users\*") do (
    if exist "%%U\AppData\Local\Temp" (
        del /f /s /q "%%U\AppData\Local\Temp\*" >nul 2>&1
    )
)
echo OK

::  Abschlussmeldung
echo.
echo -------------------------------------------------
echo   Bereinigung abgeschlossen: %DATE% %TIME%
echo   Du kannst den PC neu starten, um alle Änderungen zu übernehmen.
echo -------------------------------------------------
pause
exit
