Created
March 12, 2026 22:41
-
-
Save jpluimers/b72d43bca44d86a975ca02dacfd9a7eb to your computer and use it in GitHub Desktop.
Fixed my Windows Update Error 0x800705b9 on Windows 11 25H2: Reset Windows Update Components batch files from https://kimiyoya.com/windows-update-error-0x800705b9-fix-en/ and https://www.elevenforum.com/t/reset-windows-update-in-windows-11.3808/
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| net stop wuauserv | |
| net stop bits | |
| net stop cryptSvc | |
| net stop msiserver | |
| ren %systemroot%\SoftwareDistribution SoftwareDistribution.old | |
| ren %systemroot%\System32\catroot2 catroot2.old | |
| net start msiserver | |
| net start cryptSvc | |
| net start bits | |
| net start wuauserv |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| @echo off | |
| :: Prompt to Run as administrator | |
| powershell -nop "if (-not ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) { Start-Process 'cmd' -ArgumentList '/k %~dpnx0' -Verb RunAs } else { exit -1 }" && goto :eof | |
| :: Checking and Stopping the Windows Update services | |
| set b=0 | |
| :bits | |
| set /a b=%b%+1 | |
| if %b% equ 3 ( | |
| goto end1 | |
| ) | |
| net stop bits | |
| echo Checking the bits service status. | |
| sc query bits | findstr /I /C:"STOPPED" | |
| if not %errorlevel%==0 ( | |
| goto bits | |
| ) | |
| goto loop2 | |
| :end1 | |
| cls | |
| echo. | |
| echo Cannot reset Windows Update since "Background Intelligent Transfer Service" (bits) service failed to stop. Please restart the computer, and try again. | |
| echo. | |
| pause | |
| goto Start | |
| :loop2 | |
| set w=0 | |
| :wuauserv | |
| set /a w=%w%+1 | |
| if %w% equ 3 ( | |
| goto end2 | |
| ) | |
| net stop wuauserv | |
| echo Checking the wuauserv service status. | |
| sc query wuauserv | findstr /I /C:"STOPPED" | |
| if not %errorlevel%==0 ( | |
| goto wuauserv | |
| ) | |
| goto loop3 | |
| :end2 | |
| cls | |
| echo. | |
| echo Cannot reset Windows Update since "Windows Update" (wuauserv) service failed to stop. Please restart the computer, and try again. | |
| echo. | |
| pause | |
| goto Start | |
| :loop3 | |
| set c=0 | |
| :cryptsvc | |
| set /a c=%c%+1 | |
| if %c% equ 3 ( | |
| goto end4 | |
| ) | |
| net stop cryptsvc | |
| echo Checking the cryptsvc service status. | |
| sc query cryptsvc | findstr /I /C:"STOPPED" | |
| if not %errorlevel%==0 ( | |
| goto cryptsvc | |
| ) | |
| goto Reset | |
| :end4 | |
| cls | |
| echo. | |
| echo Cannot reset Windows Update since "Cryptographic Services" (cryptsvc) service failed to stop. Please restart the computer, and try again. | |
| echo. | |
| pause | |
| goto Start | |
| :Reset | |
| Ipconfig /flushdns | |
| del /s /q /f "%ALLUSERSPROFILE%\Application Data\Microsoft\Network\Downloader\qmgr*.dat" | |
| del /s /q /f "%ALLUSERSPROFILE%\Microsoft\Network\Downloader\qmgr*.dat" | |
| del /s /q /f "%SYSTEMROOT%\Logs\WindowsUpdate\*" | |
| if exist "C:\$WinREAgent" rmdir /s /q "C:\$WinREAgent" | |
| if exist "%SYSTEMROOT%\winsxs\pending.xml.bak" del /s /q /f "%SYSTEMROOT%\winsxs\pending.xml.bak" | |
| if exist "%SYSTEMROOT%\winsxs\pending.xml" ( | |
| takeown /f "%SYSTEMROOT%\winsxs\pending.xml" | |
| attrib -r -s -h /s /d "%SYSTEMROOT%\winsxs\pending.xml" | |
| ren "%SYSTEMROOT%\winsxs\pending.xml" pending.xml.bak | |
| ) | |
| if exist "%SYSTEMROOT%\SoftwareDistribution\DataStore.bak" rmdir /s /q "%SYSTEMROOT%\SoftwareDistribution\DataStore.bak" | |
| if exist "%SYSTEMROOT%\SoftwareDistribution\DataStore" ( | |
| attrib -r -s -h /s /d "%SYSTEMROOT%\SoftwareDistribution\DataStore" | |
| ren "%SYSTEMROOT%\SoftwareDistribution\DataStore" DataStore.bak | |
| ) | |
| if exist "%SYSTEMROOT%\SoftwareDistribution\Download.bak" rmdir /s /q "%SYSTEMROOT%\SoftwareDistribution\Download.bak" | |
| if exist "%SYSTEMROOT%\SoftwareDistribution\Download" ( | |
| attrib -r -s -h /s /d "%SYSTEMROOT%\SoftwareDistribution\Download" | |
| ren "%SYSTEMROOT%\SoftwareDistribution\Download" Download.bak | |
| ) | |
| if exist "%SYSTEMROOT%\system32\Catroot2.bak" rmdir /s /q "%SYSTEMROOT%\system32\Catroot2.bak" | |
| if exist "%SYSTEMROOT%\system32\Catroot2" ( | |
| attrib -r -s -h /s /d "%SYSTEMROOT%\system32\Catroot2" | |
| ren "%SYSTEMROOT%\system32\Catroot2" Catroot2.bak | |
| ) | |
| :: Reset Windows Update policies | |
| reg delete "HKCU\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /f | |
| reg delete "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\WindowsUpdate" /f | |
| reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /f | |
| reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\WindowsUpdate" /f | |
| gpupdate /force | |
| :: Reset the BITS service and the Windows Update service to the default security descriptor | |
| sc.exe sdset bits D:(A;CI;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU) | |
| sc.exe sdset wuauserv D:(A;;CCLCSWRPLORC;;;AU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SY) | |
| :: Reregister the BITS files and the Windows Update files | |
| cd /d %windir%\system32 | |
| regsvr32.exe /s atl.dll | |
| regsvr32.exe /s urlmon.dll | |
| regsvr32.exe /s mshtml.dll | |
| regsvr32.exe /s shdocvw.dll | |
| regsvr32.exe /s browseui.dll | |
| regsvr32.exe /s jscript.dll | |
| regsvr32.exe /s vbscript.dll | |
| regsvr32.exe /s scrrun.dll | |
| regsvr32.exe /s msxml.dll | |
| regsvr32.exe /s msxml3.dll | |
| regsvr32.exe /s msxml6.dll | |
| regsvr32.exe /s actxprxy.dll | |
| regsvr32.exe /s softpub.dll | |
| regsvr32.exe /s wintrust.dll | |
| regsvr32.exe /s dssenh.dll | |
| regsvr32.exe /s rsaenh.dll | |
| regsvr32.exe /s gpkcsp.dll | |
| regsvr32.exe /s sccbase.dll | |
| regsvr32.exe /s slbcsp.dll | |
| regsvr32.exe /s cryptdlg.dll | |
| regsvr32.exe /s oleaut32.dll | |
| regsvr32.exe /s ole32.dll | |
| regsvr32.exe /s shell32.dll | |
| regsvr32.exe /s initpki.dll | |
| regsvr32.exe /s wuapi.dll | |
| regsvr32.exe /s wuaueng.dll | |
| regsvr32.exe /s wuaueng1.dll | |
| regsvr32.exe /s wucltui.dll | |
| regsvr32.exe /s wups.dll | |
| regsvr32.exe /s wups2.dll | |
| regsvr32.exe /s wuweb.dll | |
| regsvr32.exe /s qmgr.dll | |
| regsvr32.exe /s qmgrprxy.dll | |
| regsvr32.exe /s wucltux.dll | |
| regsvr32.exe /s muweb.dll | |
| regsvr32.exe /s wuwebv.dll | |
| netsh winsock reset | |
| netsh winsock reset proxy | |
| :: Set the startup type as automatic | |
| sc config wuauserv start= auto | |
| sc config bits start= auto | |
| sc config DcomLaunch start= auto | |
| :Start | |
| net start bits | |
| net start wuauserv | |
| net start cryptsvc | |
| :: Restart computer | |
| cls | |
| echo It is required to restart the computer to finish resetting Windows Update. | |
| echo. | |
| echo Please save and close anything open now, before the computer is restarted. | |
| echo. | |
| pause | |
| echo. | |
| echo. | |
| echo. | |
| echo *** Restart computer now. *** | |
| echo. | |
| pause | |
| shutdown /r /f /t 0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment