How to Reset Windows Update in Windows 10

Windows Update keeps Windows 10 updated by downloading and installing the latest updates, drivers, and hotfixes released by Microsoft. Sometimes you may have an issue with Windows Update such as not being able to download or install updates, error messages, not being able to search for new updates, etc. These kind of issues can occur when the Windows Update database or components are corrupted, one or more services related to Windows Update are not running, etc.
Resetting the Windows Update components and history can usually solve these types of issues.

This tutorial will show you how to completely reset and reregister Windows Update components and history in Windows 10.

You must be signed in as an administrator to be able to reset Windows Update.


EXAMPLE: Update history before and after reset

Click image for larger version. 

Name:	Windows_Update_history.png 
Views:	4600 
Size:	78.8 KB 
ID:	40499

Here’s How:

Note   Note
The downloadable .bat file below contains these commands that will reset Windows Update.

@echo off

:: Created by: Shawn Brink
:: Created on: October 1st 2015
:: Updated on: April 20th 2017
:: Tutorial:

:: Checking and Stopping the Windows Update services
set b=0

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

echo Cannot reset Windows Update since "Background Intelligent Transfer Service" (bits) service failed to stop.
goto Start

set w=0

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

echo Cannot reset Windows Update since "Windows Update" (wuauserv) service failed to stop.
goto Start

set app=0

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

echo Cannot reset Windows Update since "Application Identity" (appidsvc) service failed to stop.
goto Start

set c=0

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

echo Cannot reset Windows Update since "Cryptographic Services" (cryptsvc) service failed to stop.
goto Start

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 the BITS service and the Windows Update service to the default security descriptor


:: 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 

net start bits
net start wuauserv
net start appidsvc
net start cryptsvc

1. Click/tap on the Download button below to download the .bat file below.



2. Save the .bat file to your desktop.

3. Unblock the .bat file.

4. Right click or press and hold on the .bat file, and click/tap on Run as administrator.

5. If prompted by UAC, click/tap on Yes to approve.

6. When finished, restart the computer to apply. It is important to restart the computer right after running the .bat file.

Note   Note
If a service fails to stop after 3 attempts, the .bat file will automatically end with a “Failed to reset Windows Update” message and prompt to press a key to continue. 

When a key is pressed, the .bat file will then restart any service it had stopped before closing the command prompt.