Nero Atreides
Lt. Commander Pro
- Registriert
- Jan. 2004
- Beiträge
- 1.382
Moin,
nach einem extrem nervigen Karfreitag gibt es nun eine zugegeben komplexe, aber funktionierende Lösung für das jüngste Windows Update Problem (Installationsfehler 0x80070306 bei KB5086672, KB5079473).
Zugegeben, am besten funktioniert das Inplace-Upgrade, das dauert ca. 20 Min und danach ist alles gefixt. ABER nachdem ich mich 9h lang durch alles gepflügt habe, was man so anstellen kann ohne ein Inplace-Upgrade machen zu müssen will ich Euch das nicht vorenthalten. Ich habe es in eine .BAT gepackt, das Skript findet ihr unten. Wenn ihr den Code in eine Datei mit der Endung .bat kopiert, dann habt ihr ein ausführbares Skript für Windows.
Verwendung auf eigene Gefahr - bei mir hat es funktioniert.
Allein den Software Distribution Ordner mit 750.000 Dateien (!) loszuwerden war eine Offenbarung
Have fun. Und liebe Windows Devs, bitte weniger AI Vibecoding, Eure Qualität ist mittlerweile echt mies wenn sich selbst Amateure wie ich auf diese Art mit Eurem Produkt auseinandersetzen müssen, weil so ziemlich jedes Update mehr Fehler produziert als es behebt.
nach einem extrem nervigen Karfreitag gibt es nun eine zugegeben komplexe, aber funktionierende Lösung für das jüngste Windows Update Problem (Installationsfehler 0x80070306 bei KB5086672, KB5079473).
Zugegeben, am besten funktioniert das Inplace-Upgrade, das dauert ca. 20 Min und danach ist alles gefixt. ABER nachdem ich mich 9h lang durch alles gepflügt habe, was man so anstellen kann ohne ein Inplace-Upgrade machen zu müssen will ich Euch das nicht vorenthalten. Ich habe es in eine .BAT gepackt, das Skript findet ihr unten. Wenn ihr den Code in eine Datei mit der Endung .bat kopiert, dann habt ihr ein ausführbares Skript für Windows.
Verwendung auf eigene Gefahr - bei mir hat es funktioniert.
Allein den Software Distribution Ordner mit 750.000 Dateien (!) loszuwerden war eine Offenbarung
- Auf Englisch damit jeder was damit anfangen kann.
- Bringt etwas Zeit mit - alles in allem kann es länger als 1h dauern.
- Unbedingt als Admin ausführen!
- Das Skript setzt zwingend Win 11 x64 25H2 voraus. Mit älteren Versionen kann es funktionieren, muss aber nicht. Insbesondere Schritt 2+4 sind relativ 25H2 spezifisch, weil die WSUS-Architektur sich zwischen den Versionen verändert hat (Win 11 setzt ab 25H2 auf sog. Checkpoints um die Update-Stände zu konsolidieren).
- Am Anfang wird ein Wiederherstellungspunkt gesetzt um auf Nummer sicher zu gehen.
- Das Skript fragt Euch vor jeder Aktion ob es weitergehen soll, der Schritt übersprungen werden soll, oder das ganze Skript beendet werden soll.
- Credits to Manuel F. Gil und Shawn Brink- auch wenn ihr DLL-Voodoo seit Win 11 24H2 gar nicht mehr funktionieren kann, weil es die meisten der DLLs gar nicht mehr gibt oder sie durch die System File Protection nicht mehr manuell registriert werden können...
- More Credits to Google Gemini...schon krass was da mittlerweile so geht.
Have fun. Und liebe Windows Devs, bitte weniger AI Vibecoding, Eure Qualität ist mittlerweile echt mies wenn sich selbst Amateure wie ich auf diese Art mit Eurem Produkt auseinandersetzen müssen, weil so ziemlich jedes Update mehr Fehler produziert als es behebt.
Code:
@echo off
setlocal enabledelayedexpansion
title Win11 25H2 PC: TOTAL WINDOWS UPDATE RECOVERY | ver. 2604 by RC_2026
color 0b
:: --- ADMIN CHECK ---
net session >nul 2>&1
if %errorLevel% neq 0 (
echo [!] PLEASE RUN AS ADMINISTRATOR!
pause
exit /b
)
:MAIN_MENU
cls
echo ============================================================
echo Win11 PC: WINDOWS UPDATE REPAIR CONTROL CENTER
echo ============================================================
echo Y = Execute | N = Skip | X = Exit script
echo ============================================================
:: --- 1. BACKUP ---
call :ASK_STEP "1. Create System Restore Point?"
if "!ans!"=="X" goto :EOF
if "!ans!"=="Y" (
powershell -command "Enable-ComputerRestore -Drive 'C:\'; Checkpoint-Computer -Description 'Before Master-Repair' -RestorePointType 'MODIFY_SETTINGS'"
)
:: --- 2. STOP SERVICES (Deep) ---
call :ASK_STEP "2. Stop all Update Services + Orchestrator?"
if "!ans!"=="X" goto :EOF
if "!ans!"=="Y" (
echo Stopping services (Soft-Stop)...
net stop wuauserv /y & net stop bits /y & net stop usosvc /y & net stop appidsvc /y & net stop msiserver /y
net stop cryptsvc /y
echo Terminating Orchestrator worker...
taskkill /F /IM MoUsoCoreWorker.exe /T >nul 2>&1
)
:: --- 3. WMI REPAIR ---
call :ASK_STEP "3. Repair WMI Repository?"
if "!ans!"=="X" goto :EOF
if "!ans!"=="Y" (
net stop winmgmt /y
winmgmt /resetrepository
net start winmgmt
)
:: --- 4. REGISTRY & POLICIES RESET ---
call :ASK_STEP "4. Clear Registry cache, locks & update flags?"
if "!ans!"=="X" goto :EOF
if "!ans!"=="Y" (
reg delete "HKCU\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /f >nul 2>&1
reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /f >nul 2>&1
reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v "PostRebootReporting" /f >nul 2>&1
reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v "RebootRequired" /f >nul 2>&1
reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\InProgress" /f >nul 2>&1
reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Update\Orchestrator" /f >nul 2>&1
reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\DataStore" /f >nul 2>&1
reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v "SusClientId" /f >nul 2>&1
gpupdate /force >nul 2>&1
)
:: --- 5. WSUS CACHE FOLDER DELETION ---
call :ASK_STEP "5. Deep folder reset (SoftwareDist, Catroot2)?"
if "!ans!"=="X" goto :EOF
if "!ans!"=="Y" (
echo Deleting Volume Shadow Copies (VSS)...
vssadmin delete shadows /all /quiet >nul 2>&1
powershell -command "Disable-ComputerRestore -Drive 'C:\'" >nul 2>&1
echo.
echo [!] START LIGHTSPEED SERVICE KILL (Hard Kill + Rename)
:: Everything happens extremely fast in sequence here:
taskkill /F /FI "SERVICES eq cryptsvc" >nul 2>&1
net stop cryptsvc /y >nul 2>&1
:: Remove older backups (RMDIR)
if exist "%SYSTEMROOT%\SoftwareDistribution.old" rmdir /s /q "%SYSTEMROOT%\SoftwareDistribution.old"
if exist "%SYSTEMROOT%\system32\catroot2.old" rmdir /s /q "%SYSTEMROOT%\system32\catroot2.old"
:: Rename current folders (with safety check)
if exist "%SYSTEMROOT%\SoftwareDistribution" ren "%SYSTEMROOT%\SoftwareDistribution" "SoftwareDistribution.old"
if exist "%SYSTEMROOT%\system32\catroot2" ren "%SYSTEMROOT%\system32\catroot2" "catroot2.old"
:: Reset Orchestrator & BITS
if exist "C:\ProgramData\Microsoft\Windows\UpdateOrchestrator" rmdir /s /q "C:\ProgramData\Microsoft\Windows\UpdateOrchestrator"
del /s /q /f "%ALLUSERSPROFILE%\Application Data\Microsoft\Network\Downloader\qmgr*.dat" >nul 2>&1
echo [+] Lightspeed sequence completed.
)
:: --- 6. SERVICE PERMISSIONS ---
call :ASK_STEP "6. Restore default permissions for services?"
if "!ans!"=="X" goto :EOF
if "!ans!"=="Y" (
sc.exe sdset bits D:(A;CI;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU) >nul
sc.exe sdset wuauserv D:(A;;CCLCSWRPLORC;;;AU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SY) >nul
)
:: --- 7. TRANSACTION LOGS ---
call :ASK_STEP "7. Reset file system transaction logs?"
if "!ans!"=="X" goto :EOF
if "!ans!"=="Y" (
fsutil resource setautoreset true C:\ >nul 2>&1
del %SystemRoot%\System32\Config\TxR\*.* /q >nul 2>&1
)
:: --- 8. SERVICE START ---
call :ASK_STEP "8. Restart services (and enable System Protection)?"
if "!ans!"=="X" goto :EOF
if "!ans!"=="Y" (
net start cryptsvc & net start bits & net start wuauserv & net start usosvc & net start appidsvc & net start msiserver
echo Re-enabling System Protection for drive C: ...
powershell -command "Enable-ComputerRestore -Drive 'C:\'" >nul 2>&1
)
:: --- 9. DISM REPAIR ---
call :ASK_STEP "9. DISM /RestoreHealth (Online via Windows Update) & Cleanup?"
if "!ans!"=="X" goto :EOF
if "!ans!"=="Y" (
echo Starting system repair via Windows Update. This may take a while...
DISM /Online /Cleanup-Image /RestoreHealth
echo Cleaning up WinSxS (StartComponentCleanup)...
DISM /online /cleanup-image /startcomponentcleanup
set /p rb="Execute ResetBase? WARNING: Uninstallation of old updates will no longer be possible! (y/n): "
if /i "!rb!"=="y" (
echo Executing final ResetBase...
DISM /Online /Cleanup-Image /StartComponentCleanup /ResetBase
)
)
:: --- 10. SFC & CHKDSK ---
call :ASK_STEP "10. Run SFC Scan and schedule CHKDSK for reboot?"
if "!ans!"=="X" goto :EOF
if "!ans!"=="Y" (
sfc /scannow
echo y | chkdsk C: /f /r
)
echo.
echo ============================================================
echo REPAIR SEQUENCE COMPLETED
echo ============================================================
pause
exit
:ASK_STEP
echo.
set /p userans="[?] %~1 (y/n/x): "
if /i "!userans!"=="y" (set ans=Y & exit /b)
if /i "!userans!"=="n" (set ans=N & exit /b)
if /i "!userans!"=="x" (set ans=X & exit /b)
goto :ASK_STEP