Esto aparece muy arriba en la búsqueda de Google "Instalar y Reiniciar no Instalar y Apagar". Por lo tanto, pensé que debía añadir una solución que terminé escribiendo para este problema molesto exacta (la gente me dice que Win10 tiene esto por defecto, pero no estoy en Win10).
Esto funciona utilizando dos archivos por lotes. El primero se llama "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)
El segundo se llama "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
Se supone que ambos archivos están en C:\tmp\<strkeep>scripts<strkeep>\ Cuando Windows te pida "Instalar actualizaciones", deja que empiece a instalarlas. Mientras instala las actualizaciones, ejecute "scheduleRebootAfterUpdates.bat".
Antecedentes de la operación:
Si las actualizaciones requieren un reinicio, algunas claves del registro (bajo la clave reg WindowsUpdate) se establecen con el valor 0x1.
Comprobamos si estas claves existen en el primer archivo bat. Si lo hacen, reinicie inmediatamente.
Normalmente, activo las actualizaciones cuando estoy a punto de salir del trabajo (y unas 4-5 horas antes de medianoche).
El segundo bat crea una tarea programada (o actualiza una tarea existente para que se ejecute 5 min antes de medianoche) y esta tarea programada ejecuta el primer bat.
Así que... aunque no es la solución más elegante, en dos pasos (1. activar 'Instalar actualizaciones' y 2. ejecutar el segundo archivo bat), tu máquina se reiniciará cerca de medianoche asumiendo que la instalación de las actualizaciones tuvo éxito.
Además, puede configurar la opción "Despertar la máquina para ejecutar la tarea" desde la GUI del Programador de Tareas, así como comprobar el código de retorno de la ejecución para ver qué ocurrió la última vez.
P.D. Probado en Win7 64bit.
2 votos
¿Qué versión de Windows?
0 votos
No olvides marcar las respuestas a tus preguntas, incluso las que hayas acabado contestando tú mismo.
1 votos
En caso de que termines queriendo script el proceso, esto puede servir como un punto de partida útil: scms.waikato.ac.nz/~harry/wsusupdate.vbs
0 votos
Esto es por diseño, Microsoft asume que a usted no le importa generalmente no le importa cuánto tiempo toma un apagado (a menos que sea debido a una falla de energía, entonces un apagado -s -t 00 evitaría actualizaciones) pero sí le importaría cuánto tiempo toma un reinicio, ya que reiniciar implica que usted quiere los servicios alojados en la caja funcionando.
0 votos
No estoy de acuerdo. Puede que quiera reiniciar para instalar actualizaciones que requieren un reinicio. Además, donde trabajo, hay una extraña restricción por la que no podemos instalar actualizaciones a través de Windows Update, por lo que tenemos que instalarlas apagando el equipo. Me gustaría poder instalarlas y reiniciar igualmente.
0 votos
Me acabo de dar cuenta de que, como esto está en serverfault, es de suponer que el autor de la pregunta quiere hacerlo en un servidor, por lo que la frase central de mi último comentario probablemente no sería aplicable. Pero una actualización aún podría requerir un reinicio, y en este escenario uno querría mantener el tiempo de inactividad al mínimo, por lo que instalar y reiniciar sería lo más sensato.