Cela apparaît en haut de la recherche Google "Installer et redémarrer, pas installer et arrêter". Par conséquent, j'ai pensé que je devrais ajouter une solution que j'ai fini par écrire pour ce problème ennuyeux exact (les gens me disent que Win10 a cela par défaut, mais je ne suis pas sur Win10).
Cela fonctionne en utilisant deux fichiers batch. Le premier est appelé "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)
Le second est appelé "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
Les deux fichiers sont supposés être dans C: \ tmp \ Scripts \ Lorsque Windows vous harcèle à "Installer les mises à jour", laissez-le commencer à installer les mises à jour. Pendant qu'il installe les mises à jour, exécutez "scheduleRebootAfterUpdates.bat".
Contexte de fonctionnement:
Si les mises à jour nécessitent un redémarrage, certaines clés de registre (sous la clé de Registre WindowsUpdate) sont définies avec la valeur 0x1.
Nous vérifions si ces clés existent dans le premier fichier bat. S'ils le font, redémarrez immédiatement.
Normalement, je déclenche des mises à jour au moment de quitter le travail (et environ 4 à 5 heures avant minuit).
La deuxième batte crée une tâche planifiée (ou met à jour une tâche existante pour qu'elle s'exécute 5 min avant minuit) et cette tâche planifiée exécute la première batte.
Donc ... bien que n'étant pas la solution la plus élégante, en deux étapes (1. déclenchez 'Installer les mises à jour' et 2. exécutez le deuxième fichier bat), votre machine redémarrera vers minuit en supposant que l'installation des mises à jour a réussi.
De plus, vous pouvez définir la «Wake machine to execute task» à partir de l'interface graphique du Planificateur de tâches ainsi que vérifier le code retour d'exécution pour voir ce qui s'est passé la dernière fois.
PS testé sur Win7 64 bits.