Questo appare in alto nella ricerca di Google "Installa e riavvia non installa e spegni". Quindi, ho pensato di aggiungere una soluzione che ho finito per scrivere per questo esatto fastidioso problema (la gente mi dice che Win10 ha questo di default, ma non sono su Win10).
Funziona utilizzando due file batch. Il primo si chiama "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)
Il secondo si chiama "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
Si presume che entrambi i file siano in C: \ tmp \ Scripts \ Quando Windows ti assilla "Installa aggiornamenti", lascia che inizi l'installazione dell'aggiornamento. Durante l'installazione degli aggiornamenti, eseguire "scheduleRebootAfterUpdates.bat".
Sfondo di operazione:
Se gli aggiornamenti richiedono un riavvio, alcune chiavi di registro (sotto la chiave reg di WindowsUpdate) vengono impostate con valore 0x1.
Controlliamo se queste chiavi esistono nel primo file bat. In tal caso, riavviare subito.
Normalmente, innesco aggiornamenti quando sto per lasciare il lavoro (e circa 4-5 ore prima di mezzanotte).
Il secondo pipistrello crea un'attività pianificata (o aggiorna un'attività esistente da eseguire 5 minuti prima di mezzanotte) e questa attività pianificata esegue il primo pipistrello.
Quindi ... sebbene non sia la soluzione più elegante, in due passaggi (1. attiva "Installa aggiornamenti" e 2. esegui il secondo file bat), il tuo computer si riavvierà verso mezzanotte supponendo che l'installazione degli aggiornamenti abbia avuto esito positivo.
Inoltre, è possibile impostare "Riattiva macchina per eseguire l'attività" dalla GUI di Utilità di pianificazione e controllare il codice di ritorno dell'esecuzione per vedere cosa è successo l'ultima volta.
PS testato su Win7 64 bit.