Это хорошо видно в поиске Google "Установка и перезапуск, а не установка и завершение" Следовательно, я подумал, что должен добавить решение, которое в итоге написал для этой точно надоедливой проблемы (люди говорят мне, что Win10 имеет это по умолчанию, но я не на Win10).
Это работает с использованием двух командных файлов. Первый называется "rebootAfterUpdates.bat"
@echo OFF
@setlocal ENABLEEXTENSIONS
@set REBOOT_KEY="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired"
@SET REGDWORD=REG_DWORD
@SET VALUEVAL=0x1
@REM skip=4 may be required on some versions of Windows
@FOR /F "usebackq skip=2 tokens=1-3" %%A IN (`reg query %REBOOT_KEY% /s 2^>nul`) DO (
@IF %%B EQU %REGDWORD% (
@IF %%C EQU %VALUEVAL% (
call :REBOOT
)
)
)
:NOREBOOT
@Echo No reboot required
exit /b 36877
REM 36877 is 0x900D (i.e. Good, no reboot required)
:REBOOT
@ECHO Here We REBOOT
SHUTDOWN -r -f -t 10
exit /b 3059719
REM 3059719 is 0x2EB007 (i.e. REBOOT was triggered)
Второй называется «scheduleRebootAfterUpdates.bat»:
@schtasks /query /TN RebootAfterUpdates > doh
@findstr /B /I "RebootAfterUpdates" doh >nul
@if %errorlevel%==0 goto :update
@goto :create
:update
@del doh
@SCHTASKS /Change /TN RebootAfterUpdates /SD %DATE%
@echo Task updated to execute today
@goto :exitBat
:create
@del doh
@SCHTASKS /Create /SC ONCE /TN RebootAfterUpdates /TR "C:\tmp\Scripts\rebootAfterUpdates.bat" /ST 23:55 /sd %DATE% /ru SYSTEM /f
@echo Task created. Set the "Wake to Execute Flag" through Task Scheduler GUI
:exitBat
@exit /b
Предполагается, что оба файла находятся в C: \ tmp \ Scripts \ Когда Windows вынуждает вас «Установить обновления», дайте ей начать установку обновлений. Пока он устанавливает обновления, запустите «scheduleRebootAfterUpdates.bat».
Предпосылки операции:
Если обновления требуют перезагрузки, некоторые разделы реестра (в разделе реестра WindowsUpdate) имеют значение 0x1.
Мы проверяем, существуют ли эти ключи в первом файле bat. Если они это сделают, перезагрузите компьютер прямо сейчас.
Обычно я запускаю обновления, когда собираюсь уходить с работы (и примерно за 4-5 часов до полуночи).
Вторая летучая мышь создает запланированную задачу (или обновляет существующую задачу для запуска за 5 минут до полуночи), и эта запланированная задача выполняет первую летучую мышь.
Итак ... хотя это и не самое элегантное решение, в два этапа (1. запустите «Install Updates» и 2. запустите второй bat-файл), ваша машина перезагрузится около полуночи, предполагая, что установка обновлений прошла успешно.
Кроме того, вы можете установить «Пробуждение компьютера для выполнения задачи» из графического интерфейса планировщика задач, а также проверить код возврата выполнения, чтобы увидеть, что произошло в прошлый раз.
PS Проверено на Win7 64bit.