dantpro icon

Reset Windows Update Components

dantpro | PRO | 10/27/15 07:47:34 AM UTC | 0 ⭐ | 1195 👁️ | Never ⏰ | []
Batch |

17.79 KB

|

None

|

0 👍

/

0 👎

:: ================================================================================== 
:: NAME     : Reset Windows Update Components. 
:: DESCRIPTION     : This script reset the Windows Update Components. 
:: AUTOR     : Manuel Gil. 
:: VERSION     : 8.0. 
::
:: http://windowsitpro.com/powershell/cool-tool-script-selectively-fix-common-windows-update-problems
:: https://gallery.technet.microsoft.com/scriptcenter/Reset-Windows-Update-Agent-d824badc
:: ================================================================================== 
 
 
:: CMD Screen Settings. 
:: /************************************************************************************/ 
echo off 
title Reset Windows Update Components. 
color 17 
cls 
:: /************************************************************************************/ 
 
 
:: Checking for Administrator elevation. 
:: /************************************************************************************/ 
openfiles>nul 2>&1 
 
if %errorlevel%==0 goto Variables 
 
cls 
ver 
echo Reset Windows Update Components Tool. 
echo. 
echo Checking for Administrator elevation. 
echo. 
echo     You are not running as Administrator. 
echo     This batch cannot do it's job without elevation. 
echo. 
echo     You must run this tool as Administrator. 
echo. 
echo Press any key to continue . . .  
pause>nul 
goto Close 
:: /************************************************************************************/ 
 
 
:: Set variables. 
:: /************************************************************************************/ 
:Variables 
 
set version=0.0.0000 
set name=Windows 
set allow=0 
 
for /f "tokens=4-5 delims=[] " %%a in ('ver') do set version=%%a %%b 
 
for %%a in (%version%) do set version=%%a 
 
if %version%==5.1.2600 ( 
    set name=Windows XP 
    set allow=1 
) 
 
if %version%==5.2.3790 ( 
    set name=Windows XP Professional x64 Edition 
    set allow=1 
) 
 
if %version%==6.0.6000 ( 
    set name=Windows Vista 
    set allow=1 
) 
 
if %version%==6.0.6001 ( 
    set name=Windows Vista SP1 
    set allow=1 
) 
 
if %version%==6.0.6002 ( 
    set name=Windows Vista SP2 
    set allow=1 
) 
 
if %version%==6.1.7600 ( 
    set name=Windows 7 
    set allow=1 
) 
 
if %version%==6.1.7601 ( 
    set name=Windows 7 SP1 
    set allow=1 
) 
 
if %version%==6.2.9200 ( 
    set name=Windows 8 
     set allow=1 
) 
 
if %version%==6.3.9200 ( 
    set name=Windows 8.1 
     set allow=1 
) 
 
if %version%==6.3.9600 ( 
    set name=Windows 8.1 Update 1 
     set allow=1 
) 
 
if %version%==10.0.10240 ( 
    set name=Windows 10 
     set allow=1 
) 
 
if %version%==10.0.10565 ( 
    set name=Windows 10 Insider 
     set allow=1 
) 
 
cls 
ver 
echo Reset Windows Update Components Tool. 
echo. 
echo Microsoft %name% detected . . .  
-echo. 
 
if %allow%==0 echo Sorry, this Operative System is not compatible whit this tool. 
if %allow%==1 goto Terms 
 
echo. 
echo     An error occurred while attempting to verify your system. 
echo     Can this using a business or test version. 
echo. 
echo     If not, verify that your system has the correct security fix. 
echo. 
echo Press any key to continue . . .  
pause>nul 
goto Close 
:: /************************************************************************************/ 
 
 
:: Terms. 
:: /*************************************************************************************/ 
:Terms 
 
cls 
echo. 
echo Microsoft %name% [Versi?n: %version%] 
echo Reset Windows Update Components Tool. 
echo. 
echo     The methods inside this batch modify files and registry settings. 
echo     While they are tested and tend to work, I take no responsibility for 
echo     the use of this file. 
echo     This batch is provided without warranty. Any damage caused is your 
echo     own responsibility. 
echo. 
echo     As well, batch files are almost always flagged by anti-virus, feel free 
echo     to review the code if you're unsure. 
echo. 
 
choice /c YN /n /m "Do you want to continue with this process? (Yes/No) " 
if %errorlevel%==1 goto Menu 
if %errorlevel%==2 goto Close 
 
echo. 
echo An unexpected error has occurred. 
echo. 
echo Press any key to continue . . .  
pause>nul 
goto Close 
:: /*************************************************************************************/ 
 
 
:: Menu of tool. 
:: /*************************************************************************************/ 
:Menu 
 
cls 
echo. 
echo Microsoft %name% [Versi?n: %version%] 
echo Reset Windows Update Components Tool. 
echo. 
echo      1. Change invalid values in the Registry. 
echo      2. Reset Windows Update Components. 
echo      3. Delete temporary files in Windows. 
echo      4. Open the Internet Explorer options. 
echo      5. Reset the Winsock settings. 
echo      6. Search updates. 
echo      7. Explore other local solutions. 
echo      8. Explore other online solutions. 
echo      9. Restart your PC. 
echo      0. Close. 
echo. 
 
set /p Opcion=  Select an option:  
if %Opcion%==1 goto Regedit 
if %Opcion%==2 goto Reset 
if %Opcion%==3 goto Temp 
if %Opcion%==4 goto Historic 
if %Opcion%==5 goto Winsock 
if %Opcion%==6 goto Search 
if %Opcion%==7 goto Local 
if %Opcion%==8 goto Online 
if %Opcion%==9 goto Restart 
if %Opcion%==0 goto Close 
 
echo. 
echo Invalid option. 
echo. 
echo Press any key to continue . . .  
pause>nul 
goto Menu 
:: /*************************************************************************************/ 
 
 
:: Change invalid values. 
:: /*************************************************************************************/ 
:Regedit 
 
for /f "tokens=1-5 delims=/, " %%a in ("%date%") do ( 
    set now=%%a%%b%%c%%d%time:~0,2%%time:~3,2% 
) 
 
:: ------------------------------------------------------------------------ 
:: Create a backup of the Registry. 
cls 
echo. 
echo Microsoft %name% [Versi?n: %version%] 
echo Reset Windows Update Components Tool. 
echo. 
echo Making a backup copy of the Registry in: %USERPROFILE%\Desktop\Backup%now%.reg 
echo. 
 
if exist "%USERPROFILE%\Desktop\Backup%now%.reg" ( 
    echo An unexpected error has occurred. 
    echo. 
    echo     Changes were not carried out in the registry. 
    echo     Will try it later. 
    echo. 
    echo Press any key to continue . . .  
    pause>nul 
    goto Menu 
) else ( 
    regedit /e "%USERPROFILE%\Desktop\Backup%now%.reg" 
) 
:: ------------------------------------------------------------------------ 
 
:: ------------------------------------------------------------------------ 
:: Checking backup. 
cls 
echo. 
echo Microsoft %name% [Versi?n: %version%] 
echo Reset Windows Update Components Tool. 
echo. 
echo Checking the backup copy. 
echo. 
 
if not exist "%USERPROFILE%\Desktop\Backup%now%.reg" ( 
    echo An unexpected error has occurred. 
    echo. 
    echo     Something went wrong. 
    echo     You manually create a backup of the registry before continuing. 
    echo. 
    echo Press any key to continue . . .  
    pause>nul 
) else ( 
    echo The operation completed successfully. 
    echo. 
) 
:: ------------------------------------------------------------------------ 
 
:: ------------------------------------------------------------------------ 
:: Delete keys in the Registry. 
cls 
echo. 
echo Microsoft %name% [Versi?n: %version%] 
echo Reset Windows Update Components Tool. 
echo. 
echo Deleting values in the Registry. 
echo. 
reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /f 
reg delete "HKLM\COMPONENTS\PendingXmlIdentifier" /f 
reg delete "HKLM\COMPONENTS\NextQueueEntryIndex" /f 
reg delete "HKLM\COMPONENTS\AdvancedInstallersNeedResolving" /f 
:: ------------------------------------------------------------------------ 
 
:: ------------------------------------------------------------------------ 
:: Add keys in the Registry. 
cls 
echo. 
echo Microsoft %name% [Versi?n: %version%] 
echo Reset Windows Update Components Tool. 
echo. 
echo Adding values in the Registry. 
echo. 
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v AppData /t REG_EXPAND_SZ /d "%USERPROFILE%\AppData\Roaming" /f  
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v AppData /t REG_EXPAND_SZ /d "%USERPROFILE%\AppData\Roaming" /f  
reg add "HKU\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v AppData /t REG_EXPAND_SZ /d "%USERPROFILE%\AppData\Roaming" /f  
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v AllowOSUpgrade /t REG_DWORD /d 1 /f 
 
reg add "HKLM\SYSTEM\CurrentControlSet\Control\BackupRestore\FilesNotToBackup" /f 
 
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\microsoft.com\update" /v http /t REG_DWORD /d 2 /f 
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\microsoft.com\update" /v https /t REG_DWORD /d 2 /f 
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\microsoft.com\windowsupdate" /v http /t REG_DWORD /d 2 /f 
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\update.microsoft.com" /v http /t REG_DWORD /d 2 /f 
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\update.microsoft.com" /v https /t REG_DWORD /d 2 /f 
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\windowsupdate.com" /v http /t REG_DWORD /d 2 /f 
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\windowsupdate.microsoft.com" /v http /t REG_DWORD /d 2 /f 
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\download.microsoft.com" /v http /t REG_DWORD /d 2 /f 
 
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\windowsupdate.com" /v http /t REG_DWORD /d 2 /f 
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\windowsupdate.com" /v https /t REG_DWORD /d 2 /f 
 
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\windowsupdate.com\download" /v http /t REG_DWORD /d 2 /f 
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\windowsupdate.com\download" /v https /t REG_DWORD /d 2 /f 
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\download.windowsupdate.com" /v http /t REG_DWORD /d 2 /f 
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\download.windowsupdate.com" /v https /t REG_DWORD /d 2 /f 
 
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\windows.com\wustat" /v http /t REG_DWORD /d 2 /f 
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\wustat.windows.com" /v http /t REG_DWORD /d 2 /f 
 
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\microsoft.com\ntservicepack" /v http /t REG_DWORD /d 2 /f 
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\ntservicepack.microsoft.com" /v http /t REG_DWORD /d 2 /f 
 
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\microsoft.com\ws" /v http /t REG_DWORD /d 2 /f 
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\microsoft.com\ws" /v https /t REG_DWORD /d 2 /f 
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\ws.microsoft.com" /v http /t REG_DWORD /d 2 /f 
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\ws.microsoft.com" /v https /t REG_DWORD /d 2 /f 
:: ------------------------------------------------------------------------ 
 
:: ------------------------------------------------------------------------ 
:: End process. 
cls 
echo. 
echo Microsoft %name% [Versi?n: %version%] 
echo Reset Windows Update Components Tool. 
echo. 
echo The operation completed successfully. 
echo. 
echo Press any key to continue . . .  
pause>nul 
goto Menu 
:: ------------------------------------------------------------------------ 
 
:: /*************************************************************************************/ 
 
 
:: Run the reset Windows Update components. 
:: /*************************************************************************************/ 
:Reset 
 
:: ------------------------------------------------------------------------ 
:: Stopping the Windows Update services. 
cls 
echo. 
echo Microsoft %name% [Versi?n: %version%] 
echo Reset Windows Update Components Tool. 
echo. 
echo Stopping the Windows Update services. 
echo. 
net stop bits 
 
cls 
echo. 
echo Microsoft %name% [Versi?n: %version%] 
echo Reset Windows Update Components Tool. 
echo. 
echo Stopping the Windows Update services. 
echo. 
net stop wuauserv 
 
cls 
echo. 
echo Microsoft %name% [Versi?n: %version%] 
echo Reset Windows Update Components Tool. 
echo. 
echo Stopping the Windows Update services. 
echo. 
net stop appidsvc 
 
cls 
echo. 
echo Microsoft %name% [Versi?n: %version%] 
echo Reset Windows Update Components Tool. 
echo. 
echo Stopping the Windows Update services. 
echo. 
net stop cryptsvc 
:: ------------------------------------------------------------------------ 
 
:: ------------------------------------------------------------------------ 
:: Checking the services status. 
cls 
echo. 
echo Microsoft %name% [Versi?n: %version%] 
echo Reset Windows Update Components Tool. 
echo. 
echo Checking the services status. 
echo. 
sc query bits | findstr /I /C:"STOPPED" 
If not %errorlevel%==0 ( 
    echo Failed to stop the BITS service. 
    echo. 
    echo Press any key to continue . . .  
    pause>nul 
    goto Close 
) 
 
cls 
echo. 
echo Microsoft %name% [Versi?n: %version%] 
echo Reset Windows Update Components Tool. 
echo. 
echo Checking the services status. 
echo. 
sc query wuauserv | findstr /I /C:"STOPPED" 
if not %errorlevel%==0 ( 
    echo Failed to stop the Windows Update service. 
    echo. 
    echo Press any key to continue . . .  
    pause>nul 
    goto Close 
) 
 
cls 
echo. 
echo Microsoft %name% [Versi?n: %version%] 
echo Reset Windows Update Components Tool. 
echo. 
echo Checking the services status. 
echo. 
sc query appidsvc | findstr /I /C:"STOPPED" 
if not %errorlevel%==0 ( 
    sc query appidsvc | findstr /I /C:"OpenService FAILED 1060" 
    if not %errorlevel%==0 ( 
        echo Failed to stop the Application Identity service. 
        echo. 
        echo Press any key to continue . . .  
        pause>nul 
        goto Close 
    ) 
) 
 
cls 
echo. 
echo Microsoft %name% [Versi?n: %version%] 
echo Reset Windows Update Components Tool. 
echo. 
echo Checking the services status. 
echo. 
sc query cryptsvc | findstr /I /C:"STOPPED" 
If not %errorlevel%==0 ( 
    echo Failed to stop the Cryptographic Services service. 
    echo. 
    echo Press any key to continue . . .  
    pause>nul 
    goto Close 
) 
:: ------------------------------------------------------------------------ 
 
:: ------------------------------------------------------------------------ 
:: Delete the qmgr*.dat files. 
cls 
echo. 
echo Microsoft %name% [Versi?n: %version%] 
echo Reset Windows Update Components Tool. 
echo. 
echo Deleting the qmgr*.dat files. 
echo. 
del /s /q /f "%ALLUSERSPROFILE%\Application Data\Microsoft\Network\Downloader\qmgr*.dat" 
:: ------------------------------------------------------------------------ 
 
:: ------------------------------------------------------------------------ 
:: Renaming the softare distribution folders backup copies. 
cls 
echo. 
echo Microsoft %name% [Versi?n: %version%] 
echo Reset Windows Update Components Tool. 
echo. 
echo Renaming the softare distribution folders backup copies. 
echo. 
cd /d %SYSTEMROOT% 
 
if exist "%SYSTEMROOT%\winsxs\pending.xml" takeown /f "%SYSTEMROOT%\winsxs\pending.xml" 
if exist "%SYSTEMROOT%\winsxs\pending.xml" attrib -r -s -h "%SYSTEMROOT%\winsxs\pending.xml" 
if exist "%SYSTEMROOT%\winsxs\pending.xml.bak" del /s /q /f "%SYSTEMROOT%\winsxs\pending.xml.bak" 
if exist "%SYSTEMROOT%\winsxs\pending.xml" ren "%SYSTEMROOT%\winsxs\pending.xml" pending.xml.bak 
 
if exist "%SYSTEMROOT%\SoftwareDistribution" attrib -r -s -h "%SYSTEMROOT%\SoftwareDistribution" 
if exist "%SYSTEMROOT%\SoftwareDistribution.bak" rmdir /s /q "%SYSTEMROOT%\SoftwareDistribution.bak" 
if exist "%SYSTEMROOT%\SoftwareDistribution" ren "%SYSTEMROOT%\SoftwareDistribution" SoftwareDistribution.bak 
 
if exist "%SYSTEMROOT%\system32\Catroot2" attrib -r -s -h "%SYSTEMROOT%\system32\Catroot2" 
if exist "%SYSTEMROOT%\system32\Catroot2.bak" rmdir /s /q "%SYSTEMROOT%\system32\Catroot2.bak" 
if exist "%SYSTEMROOT%\system32\Catroot2" ren "%SYSTEMROOT%\system32\Catroot2" Catroot2.bak 
 
if exist "%SYSTEMROOT%\WindowsUpdate.log" attrib -r -s -h "%SYSTEMROOT%\WindowsUpdate.log" 
if exist "%SYSTEMROOT%\WindowsUpdate.log.bak" del /s /q /f "%SYSTEMROOT%\WindowsUpdate.log.bak" 
if exist "%SYSTEMROOT%\WindowsUpdate.log" ren "%SYSTEMROOT%\WindowsUpdate.log" WindowsUpdate.log.bak 
:: ------------------------------------------------------------------------ 
 
:: ------------------------------------------------------------------------ 
:: Reset the BITS service and the Windows Update service to the default security descriptor. 
cls 
echo. 
echo Microsoft %name% [Versi?n: %version%] 
echo Reset Windows Update Components Tool. 
echo. 
echo Reset the BITS service and the Windows Update service to the default security descriptor. 
echo. 
sc.exe sdset bits D:(A

Comments