:: ==================================================================================
:: NAME: Reset Windows Update Tool
:: DESCRIPTION: This script reset the Windows Update Components
:: AUTHOR: Manuel Gil
:: VERSION: 10.5.3.4
:: TRANSLATION: BKPB
:: ==================================================================================
:: Set console.
:: void mode();
:: /************************************************************************************/
:mode
echo off
title Исправление ошибок при обновлении Windows
mode con: cols=100 lines=40
color 0
cls
goto getValues
goto :eof
:: /************************************************************************************/
:: Print Top Text
:: @param - text = the text to print (%*)
:: void print(string text);
:: /*************************************************************************************/
:print
cls
echo.
echo. %*
echo.
goto :eof
:: /*************************************************************************************/
:: Add Value in the Registry
:: @param - key = the key or entry to be added (%~1)
:: value = the value to be added under the selected key (%~2)
:: type = the type for the registry entry (%~3)
:: data = the data for the new registry entry (%~4)
:: void addReg(string key, string value, string type, string data);
:: /*************************************************************************************/
:addReg
reg add "%~1" /v "%~2" /t "%~3" /d "%~4" /f
goto :eof
:: /*************************************************************************************/
:: Load the system values
:: void getValues();
:: /************************************************************************************/
:getValues
for /f "tokens=4-5 delims=[] " %%a in ('ver') do set version=%%a%%b
for %%a in (%version%) do set version=%%a
if %version% EQU 5.1.2600 (
:: Name: "Microsoft Windows XP"
set name=Microsoft Windows XP
:: Family: Windows 5
set family=5
:: Compatibility: Yes
set allow=Yes
) else if %version% EQU 5.2.3790 (
:: Name: "Microsoft Windows XP Professional x64 Edition"
set name=Microsoft Windows XP Professional x64 Edition
:: Family: Windows 5
set family=5
:: Compatibility: Yes
set allow=Yes
) else if %version% EQU 6.0.6000 (
:: Name: "Microsoft Windows Vista"
set name=Microsoft Windows Vista
:: Family: Windows 6
set family=6
:: Compatibility: Yes
set allow=Yes
) else if %version% EQU 6.0.6001 (
:: Name: "Microsoft Windows Vista SP1"
set name=Microsoft Windows Vista SP1
:: Family: Windows 6
set family=6
:: Compatibility: Yes
set allow=Yes
) else if %version% EQU 6.0.6002 (
:: Name: "Microsoft Windows Vista SP2"
set name=Microsoft Windows Vista SP2
:: Family: Windows 6
set family=6
:: Compatibility: Yes
set allow=Yes
) else if %version% EQU 6.1.7600 (
:: Name: "Microsoft Windows 7"
set name=Microsoft Windows 7
:: Family: Windows 7
set family=7
:: Compatibility: Yes
set allow=Yes
) else if %version% EQU 6.1.7601 (
:: Name: "Microsoft Windows 7 SP1"
set name=Microsoft Windows 7 SP1
:: Family: Windows 7
set family=7
:: Compatibility: Yes
set allow=Yes
) else if %version% EQU 6.2.9200 (
:: Name: "Microsoft Windows 8"
set name=Microsoft Windows 8
:: Family: Windows 8
set family=8
:: Compatibility: Yes
set allow=Yes
) else if %version% EQU 6.3.9200 (
:: Name: "Microsoft Windows 8.1"
set name=Microsoft Windows 8.1
:: Family: Windows 8
set family=8
:: Compatibility: Yes
set allow=Yes
) else if %version% EQU 6.3.9600 (
:: Name: "Microsoft Windows 8.1 Update 1"
set name=Microsoft Windows 8.1 Update 1
:: Family: Windows 8
set family=8
:: Compatibility: Yes
set allow=Yes
) else (
ver | find "10.0." > nul
if %errorlevel% EQU 0 (
:: Name: "Microsoft Windows 10"
set name=Microsoft Windows 10
:: Family: Windows 10
set family=10
:: Compatibility: Yes
set allow=Yes
) else (
:: Name: "Unknown"
set name=Unknown
:: Compatibility: No
set allow=No
)
)
call :print Проверка %name% . . .
if %allow% EQU Yes goto permission
call :print Операционная система не совместима с этим инструментом
echo. Произошла ошибка при попытке проверки системы
echo.
echo. Нажмите любую клавишу для продолжения . . .
pause>nul
goto :eof
:: /************************************************************************************/
:: Checking for Administrator elevation
:: void permission();
:: /************************************************************************************/
:permission
openfiles>nul 2>&1
if %errorlevel% EQU 0 goto terms
call :print Проверка прав Администратора ...
echo. Требуется запуск от имени Администратора
echo.
echo. Нажмите любую клавишу для продолжения . . .
pause>nul
goto :eof
:: /************************************************************************************/
:: Terms
:: void terms();
:: /*************************************************************************************/
:terms
call :print Условия использования
echo. Методы этого инструмента изменяют файлы и параметры реестра
echo.
choice /c YN /n /t 0 /d Y /m "Вы хотите продолжить этот процесс ? ( Y / N ) "
if %errorlevel% EQU 1 (
goto menu
) else if %errorlevel% EQU 2 (
goto close
) else if %errorlevel% EQU 9009 (
echo.
echo. Произошла непредвиденная ошибка
echo.
echo. Нажмите любую клавишу для продолжения . . .
pause>nul
goto menu
)
goto :eof
:: /*************************************************************************************/
:: Menu of tool
:: void menu();
:: /*************************************************************************************/
:menu
call :print Это средство сбрасывает компоненты центра обновления Windows
echo. 1. Открыть параметры "Восстановление системы"
echo.
echo. 2. Выполнить сброс компонентов центра обновления Windows
echo.
echo. 3. Удалить временные файлы, связанные со службой Windows Update
echo.
echo. 5. Проверить диск на наличие ошибок файловой системы CHKDSK.exe
echo.
echo. 6. Проверить и восстановить системные файлы SFC.exe /Scannow
echo.
echo. 7. Проверить образ на наличие повреждения хранилища компонентов DISM /ScanHealth
echo.
echo. 8. Проверить был ли образ помечен как повреждённый неудачным процессом
echo.
echo. 9. Проверить образ хранилища компонентов и восстановить DISM /RestoreHealth
echo.
echo. 10. Очистить и уменьшить размер хранилища компонентов DISM /StartComponentCleanup
echo.
echo. 11. Удалить все неправильные значения реестра
echo.
echo. 12. Сбросить настройки Winsock, отвечающие за передачу данных в сети
echo.
echo. 13. Открыть "Центр обновления" и проверить наличие обновлений для Windows
echo.
echo. 14. Открыть "Устранение неполадок компьютера
echo.
echo. 17. Перезагрузить компьютер
echo.
echo. 0. Закрыть
echo.
set /p option= Выберите нужную опцию:
if %option% EQU 0 (
goto close
) else if %option% EQU 1 (
call :sysProtection
) else if %option% EQU 2 (
call :components
) else if %option% EQU 3 (
call :temp
) else if %option% EQU 4 (
call :iOptions
) else if %option% EQU 5 (
call :chkdsk
) else if %option% EQU 6 (
call :sfc
) else if %option% EQU 7 (
call :dism1
) else if %option% EQU 8 (
call :dism2
) else if %option% EQU 9 (
call :dism3
) else if %option% EQU 10 (
call :dism4
) else if %option% EQU 11 (
call :regedit
) else if %option% EQU 12 (
call :winsock
) else if %option% EQU 13 (
call

dates
) else if %option% EQU 14 (
call :local
) else if %option% EQU 15 (
call

nline
) else if %option% EQU 16 (
call :diagnostic
) else if %option% EQU 17 (
call :restart
) else if %option% EQU ? (
call :help
) else (
echo.
echo. Недопустимый параметр
echo.
echo. Нажмите любую клавишу для продолжения . . .
pause>nul
)
goto menu
goto :eof
:: /*************************************************************************************/
:: Open system protection
:: void sysProtection();
:: /*************************************************************************************/
:sysProtection
call :print Открытие защиты системы ...
if %family% NEQ 5 (
start systempropertiesprotection
) else (
echo.
echo. Такая опция недоступна в этой операционной системе
echo.
echo. Нажмите любую клавишу для продолжения . . .
pause>nul
)
goto :eof
:: /*************************************************************************************/