Це відображається високо в пошуку 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)
Другий називається "rasporedRebootAfterUpdates.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 натякає на "Встановити оновлення", нехай вона почне встановлювати оновлення. Поки він встановлює оновлення, запустіть "rasporedRebootAfterUpdates.bat".
Передумови роботи:
Якщо для оновлення потрібна перезавантаження, деякі ключі реєстру (під клавішею рег. WindowsUpdate) встановлюються зі значенням 0x1.
Ми перевіряємо, чи існують ці ключі у першому файлі bat. Якщо вони це зробити, перезавантажте відразу.
Зазвичай я запускаю оновлення, коли збираюся залишити роботу (і приблизно за 4-5 годин до півночі).
Другий кажан створює заплановане завдання (або оновлює існуюче завдання, яке потрібно виконати за 5 хв до півночі), і це заплановане завдання виконує перший біт.
Отже ..., хоча це не найелегантніше рішення, за два кроки (1. тригер "Встановити оновлення" та 2. запустити другий файл bat) ваш апарат перезавантажиться близько півночі, вважаючи, що встановлення оновлень вдалося.
Крім того, ви можете встановити "Wake Machine для виконання завдання" з GUI планувальника завдань, а також перевірити код повернення виконання, щоб побачити, що сталося минулого разу.
PS Тестується на 64-бітній Win7.