Me gustaría programar un reinicio del servidor por única vez, por ejemplo, para terminar de instalar las actualizaciones temprano en la mañana. ¿Cómo puedo hacer esto desde la línea de comandos en Windows 2012?
En Windows 2008, hubiera usado el at
comando,
at 2am shutdown -r -f -c "restart"
y tomé el resto de la tarde libre.
Pero en Windows 2012, ejecutar este comando me dice que
The AT command has been deprecated. Please use schtasks.exe instead.
Entonces, el comando equivalente con schtasks.exe podría ser
schtasks /create /sc once /tn restart /tr "shutdown - r -f ""restart""" /st 02:00
Además de ser muy olvidable, este comando tiene otro inconveniente importante : programa la tarea para las 2 de la mañana de hoy; no sirve de mucho a menos que esté despierto a la 1 de la mañana para ejecutarlo.
Según la ayuda de schtasks.exe, el modificador /sd
para configurar la fecha de inicio no es aplicable con /sc once
. Entonces, incluso si quisiera escribir la fecha de mañana en formato mm / dd / aaaa, y no lo hago, no puedo hacer esto.
La única solución posible que he encontrado es aquí , donde Kevin Traas sugiere crear un archivo por lotes para crear una tarea programada justo antes de la medianoche que espere un par de minutos y luego cree otra tarea programada para ejecutar el comando que realmente desea ejecutar. Inteligente, pero de ninguna manera tan conveniente como at
.
fuente
Respuestas:
El
shutdown
comando en sí tiene un parámetro de retraso/t
que retrasa el apagado durante varios segundos hasta 10 años. Por ejemplo, si desea programar un apagado en 14 horas, puede ejecutarTambién puede agregar un motivo con el
/d
parámetro o un comentario con/c
; correshutdown /?
por detalles.fuente
A pesar de la documentación, el
/SD
parámetro parece ser compatible con el/SC ONCE
. La tarea se creó correctamente para ejecutarse en la fecha indicada, a la hora indicada. (Probado en W8 y W7)Además, la documentación de XP
schtasks.exe
va tan lejos como para decir/SD
que se requiere el parámetro cuando se usa/SC ONCE
, así que imagino que hay una buena cantidad de scripts que usan la combinación.Ejemplo:
Si ir en contra de la documentación no le sienta bien, considere generar el archivo XML directamente (el esquema está aquí ), que definitivamente es compatible y definitivamente es compatible con una tarea programada para ejecutarse una vez en una fecha futura. Una manera fácil de obtener el archivo adecuado es crearlo en el
mmc
complemento Programador de tareas y usar el comando de exportación .Ejemplo:
Comando para importar:
fuente
/sd
ser apoyado. Eso también es interesante sobre la importación de XML, aunque personalmente no me importa ir en contra de la documentación. Entonces, al menos esto es posible, solo mucho, mucho más difícil de lo que solía serat
./sd
no funciona con/sc once
Windows Server 2008. Resulta enERROR: Incorrect Start Date.
/SD 06/14/2013
.Terminé creando
runat.ps1
para replicar algunas de las características simples deat
, incorporando la sabiduría de la respuesta de Mitch.La sintaxis es
runat (time) (command)
, por ejemploSi usted también siente nostalgia por los viejos tiempos en los que no tenía que escribir ...
... entonces puede instalarlo ejecutando este comando de PowerShell:
O puede descargar manualmente el
runat.ps1
script aquí .fuente
Usé esto en un script para 2012 R2 y funciona bien; Creará una tarea diaria que reinicia el servidor a las 4:30 a.m.
Asegúrese de ejecutar esto desde un indicador de CMD con privilegios administrativos.
Andy
fuente
Solo otro script de PowerShell para reiniciar programáticamente la computadora al día siguiente a la hora especificada
fuente
Sugiero usar el comando schtasks con el parámetro / f.
Usando / f, si hay una tarea con el mismo nombre, se modifica.
Es muy útil para implementar tareas mediante secuencias de comandos.
Un ejemplo completo de reinicio del servidor de programación:
Extraído de: http://www.sysadmit.com/2016/09/windows-programar-apagado-o-reinicio-automatico.html
fuente
Si el objetivo es simplemente reiniciar después de instalar las actualizaciones, puede usar el módulo PSWindowsUpdate para instalar las actualizaciones. Puedes descargarlo desde aquí . Una vez instalado, solo abra Powershell y escriba
fuente
Este script le permite programar el reinicio de varios servidores en una fecha / hora específica.
https://gallery.technet.microsoft.com/Schedule-restart-of-2c1131fb?redir=0
fuente