Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @echo off
- :: Created by: Shawn Brink
- :: Created on: October 1, 2015
- :: Updated on: March 8, 2021
- :: Tutorial: https://www.tenforums.com/tutorials/24742-reset-windows-update-windows-10-a.html
- :: Prompt to Run as administrator
- Set "Variable=0" & if exist "%temp%\getadmin.vbs" del "%temp%\getadmin.vbs"
- fsutil dirty query %systemdrive% >nul 2>&1 && goto :(Privileges_got)
- If "%1"=="%Variable%" (echo. &echo. Please right-click on the file and select &echo. "Run as administrator". &echo. Press any key to exit. &pause>nul 2>&1& exit)
- cmd /u /c echo Set UAC = CreateObject^("Shell.Application"^) : UAC.ShellExecute "%~0", "%Variable%", "", "runas", 1 > "%temp%\getadmin.vbs"&cscript //nologo "%temp%\getadmin.vbs" & exit
- :(Privileges_got)
- :: 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 app=0
- :appidsvc
- set /a app=%app%+1
- if %app% equ 3 (
- goto end3
- )
- net stop appidsvc
- echo Checking the appidsvc service status.
- sc query appidsvc | findstr /I /C:"STOPPED"
- if not %errorlevel%==0 (
- goto appidsvc
- )
- goto loop4
- :end3
- cls
- echo.
- echo Cannot reset Windows Update since "Application Identity" (appidsvc) service failed to stop. Please restart the computer, and try again.
- echo.
- pause
- goto Start
- :loop4
- 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 "%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.bak" rmdir /s /q "%SYSTEMROOT%\SoftwareDistribution.bak"
- if exist "%SYSTEMROOT%\SoftwareDistribution" (
- attrib -r -s -h /s /d "%SYSTEMROOT%\SoftwareDistribution"
- ren "%SYSTEMROOT%\SoftwareDistribution" SoftwareDistribution.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;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)
- sc.exe sdset wuauserv D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)
- :: 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
- regsvr32.exe /s wudriver.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 appidsvc
- 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
Advertisement