Windows-Wartungsmenü

Die wichtigsten Reparatur-Befehle in einem Menü: Systemdateien prüfen (sfc), Windows-Abbild reparieren (DISM), Laufwerk prüfen (chkdsk), DNS-Cache leeren, Netzwerk zurücksetzen, temporäre Dateien und Windows-Update-Cache leeren. Mit Rückfragen bei kritischen Schritten und Protokolldatei. Benötigt Administratorrechte.

wartungsmenue.cmd 5,0 KB · läuft unter Windows 10/11 · aktualisiert am 17.10.2026 · 0 Downloads

SHA-256: 110c24770386980abd64c988fe2b841e0f23e76e4cc7a8e0f5043f35d5d06ac0

Code

So sieht die Datei aus, die Sie herunterladen (142 Zeilen). Die Kommentare oben im Skript erklären, was es tut.

wartungsmenue.cmd
@echo off
rem ==========================================================================
rem  Windows-Wartungsmenue                          Version 1.0, Oktober 2026
rem  https://friederich-it.de/downloads
rem
rem  Die wichtigsten Reparatur- und Aufraeum-Befehle in einem Menue:
rem   1 Systemdateien pruefen und reparieren   (sfc /scannow)
rem   2 Windows-Abbild reparieren              (DISM /RestoreHealth)
rem   3 Laufwerk C: auf Fehler pruefen         (chkdsk C: /scan, ohne Neustart)
rem   4 DNS-Zwischenspeicher leeren            (ipconfig /flushdns)
rem   5 Netzwerk zuruecksetzen                 (winsock + TCP/IP, Neustart noetig)
rem   6 Temporaere Dateien loeschen            (Benutzer und Windows, aelter als 1 Tag)
rem   7 Windows-Update-Zwischenspeicher leeren (hilft bei haengenden Updates)
rem   8 Komplett: erst 2, dann 1
rem  Benoetigt Administratorrechte (werden beim Start angefordert).
rem  Ein Protokoll liegt danach unter %%TEMP%%\FIT-Wartung.log
rem ==========================================================================
setlocal EnableExtensions
for /f "tokens=2 delims=:." %%c in ('chcp') do set "FIT_CP=%%c"
chcp 65001 >nul
title Windows-Wartungsmenü - Friederich-IT
set "LOG=%TEMP%\FIT-Wartung.log"

net session >nul 2>&1
if not errorlevel 1 goto :menu
echo.
echo   Administratorrechte werden angefordert ...
set "FIT_SELF=%~f0"
powershell -NoProfile -Command "try { Start-Process -FilePath $env:FIT_SELF -Verb RunAs -ErrorAction Stop } catch { exit 1 }"
if errorlevel 1 (
  echo   Abgebrochen: Ohne Administratorrechte geht es nicht.
  pause
)
goto :ende

:menu
cls
echo.
echo   Windows-Wartungsmenü
echo   ====================
echo.
echo   [1] Systemdateien prüfen und reparieren    sfc /scannow, ca. 10 Min.
echo   [2] Windows-Abbild reparieren              DISM, ca. 15 Min., braucht Internet
echo   [3] Laufwerk C: auf Fehler prüfen          ohne Neustart
echo   [4] DNS-Zwischenspeicher leeren
echo   [5] Netzwerk zurücksetzen                  danach Neustart nötig
echo   [6] Temporäre Dateien löschen
echo   [7] Windows-Update-Zwischenspeicher leeren
echo   [8] Komplett-Reparatur: erst 2, dann 1
echo   [0] Beenden
echo.
choice /c 123456780 /n /m "  Auswahl: "
set "WAHL=%errorlevel%"
if "%WAHL%"=="9" goto :ende
if "%WAHL%"=="1" call :sfc
if "%WAHL%"=="2" call :dism
if "%WAHL%"=="3" call :chkdsk
if "%WAHL%"=="4" call :dns
if "%WAHL%"=="5" call :netz
if "%WAHL%"=="6" call :temp
if "%WAHL%"=="7" call :wu
if "%WAHL%"=="8" (
  call :dism
  call :sfc
)
echo.
echo   Protokoll: %LOG%
pause
goto :menu

:sfc
echo.
echo   Systemdateien werden geprüft. Das dauert eine Weile ...
echo [%date% %time%] sfc /scannow>>"%LOG%"
sfc /scannow
echo   Ergebnis-Code: %errorlevel%>>"%LOG%"
exit /b 0

:dism
echo.
echo   Windows-Abbild wird geprüft und repariert. Das dauert eine Weile ...
echo [%date% %time%] DISM RestoreHealth>>"%LOG%"
DISM /Online /Cleanup-Image /RestoreHealth
echo   Ergebnis-Code: %errorlevel%>>"%LOG%"
exit /b 0

:chkdsk
echo.
echo [%date% %time%] chkdsk C: /scan>>"%LOG%"
chkdsk C: /scan
echo   Ergebnis-Code: %errorlevel%>>"%LOG%"
exit /b 0

:dns
echo.
ipconfig /flushdns
echo [%date% %time%] DNS-Cache geleert>>"%LOG%"
exit /b 0

:netz
echo.
echo   Setzt Winsock und TCP/IP-Einstellungen zurück. Feste IP-Adressen und
echo   VPN-Einstellungen müssen danach eventuell neu eingetragen werden.
choice /c jn /n /m "  Wirklich zurücksetzen? (j/n) "
if errorlevel 2 exit /b 0
netsh winsock reset
netsh int ip reset
echo [%date% %time%] Netzwerk zurückgesetzt>>"%LOG%"
echo.
choice /c jn /n /m "  Jetzt neu starten? (j/n) "
if errorlevel 2 exit /b 0
shutdown /r /t 10 /c "Neustart nach Netzwerk-Reset (Friederich-IT Wartungsmenü)"
exit /b 0

:temp
echo.
echo   Lösche temporäre Dateien, die älter als 1 Tag sind. Dateien, die gerade
echo   benutzt werden, bleiben stehen ...
echo [%date% %time%] Temp aufraeumen>>"%LOG%"
powershell -NoProfile -Command "$g=0; foreach ($o in @($env:TEMP, (Join-Path $env:SystemRoot 'Temp'))) { Get-ChildItem -LiteralPath $o -Force -Recurse -ErrorAction SilentlyContinue | Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-1) -and $_.FullName -notlike '*FIT-Wartung.log' } | Sort-Object { $_.FullName.Length } -Descending | ForEach-Object { try { $l = if ($_.PSIsContainer) { 0 } else { $_.Length }; Remove-Item -LiteralPath $_.FullName -Force -Recurse -ErrorAction Stop; $g += $l } catch {} } }; Write-Host ('  Freigegeben: {0:N0} MB' -f ($g/1MB))"
exit /b 0

:wu
echo.
echo   Dienste Windows Update und BITS werden kurz angehalten ...
echo [%date% %time%] Update-Cache leeren>>"%LOG%"
net stop wuauserv >nul 2>&1
net stop bits >nul 2>&1
if exist "%SystemRoot%\SoftwareDistribution\Download" (
  rd /s /q "%SystemRoot%\SoftwareDistribution\Download" >nul 2>&1
  md "%SystemRoot%\SoftwareDistribution\Download" >nul 2>&1
)
net start bits >nul 2>&1
net start wuauserv >nul 2>&1
echo   Erledigt. Updates werden beim nächsten Suchen neu heruntergeladen.
exit /b 0

:ende
if defined FIT_CP chcp %FIT_CP% >nul
endlocal
exit /b 0