En ocasiones, nos puede interesar programar un apagado o un reinicio automático de un equipo con Windows, ya sea Windows cliente (Windows XP, Vista, 7, 8, 10) o Windows Server (2003, 2008, 2008R2, 2012, 2012R2, 2016).
Para programar apagado o reinicio automático necesitaremos dos herramientas:
- Comando shutdown.
- Programador de tareas (taskschd.msc).
Además disponemos del comando schtasks, que nos permite crear la tarea desde linea de comandos y después es posible verla desde el programador del tareas.
La ventaja de utilizar el comando schtasks para crear la tarea programada es que podemos desplegar la configuración en múltiples equipos mediante un script y una GPO (directiva de grupo).
1) Programar apagado o reinicio automático: Comando shutdown:
Debemos tener en cuenta los siguientes parámetros del comando shutdown:
/s Apaga el equipo.
/r Apaga y reinicia el equipo.
/f Fuerza el cierre de las aplicaciones sin advertir previamente a los usuarios.
/t xxx Establece el período de tiempo de espera antes del cierre en xxx segundos.
/c "xxx" Muestra el comentario especificado: xxx
Podemos obtener la referencia completa de todos los parámetros del comando shutdown, ejecutando: shutdown /?
Ejemplos:
Para reiniciar el equipo de forma inmediata:
shutdown /r /f /t 0 /c "Reinicio"
Para apagar el equipo de forma inmediata:
shutdown /s /f /t 0 /c "Apago"
2) Programar apagado o reinicio automático: Programador de tareas (taskschd.msc)
Ejecutamos taskschd.msc o bien control schedtasks para cargar el interfaz gráfico del programador de tareas.
También podemos crear la tarea utilizando el comando schtasks.
Ejemplo:
schtasks /create /ru system /rl highest /sc DAILY /tn Reinicio /tr "shutdown /r /f /t 0 /c "Reinicio"" /st 22:30 /F
Explicación de los parámetros:
/create : Crea la tarea programada.
/ru system: Ejecutar la tarea como el usuario SYSTEM.
/rl highest: Ejecutar con los privilegios más altos.
/sc DAILY: Ejecutar la tarea cada día.
/tn Reinicio: Nombre de la tarea.
/tr "shutdown /r /f /t 0 /c "Reinicio"": El comando a ejecutar cada vez es: "shutdown /r /f /t 0 /c "Reinicio"", que reiniciará el equipo cerrando todas las aplicaciones abiertas, sin tiempo de espera.
/st 22:30: La tarea se ejecutará a las 22:30.
/F: En caso de que exista la tarea, se sobreescribirá la configuración.
Si ejecutamos este comando desde una ventana de CMD como administrador y luego ejecutamos taskschd.msc, podemos ver la configuración de la tarea:
Pestaña "General":
Pestaña "Desencadenadores":
Pestaña "Acciones":
También podemos programar un apagado o un reinicio automático desde PowerShell, tenéis el detalle en este post:
Windows: Programar apagado o reinicio PowerShell (SYSADMIT.com)
Saludos y enhorabuena por tu trabajo!
ResponderEliminarQuisiera saber si me puedes ayudar con un problemilla que tengo.
Me gustaria que mi ordenador se reiniciase cada vez que se cierra una aplicacion que ejecuto en batch (.bat)
Esta aplicacion se inicia cada vez que inicio Windows (Windows 10 home 64)
Espero que puedas ayudarme. Gracias!
Saludos!
Hola Jose,
EliminarMira este BAT, igual te ayuda.
La idea es un bucle que busca si hay determinado proceso, en este caso: winword.exe.
En caso de que el proceso exista, espera 5 segundos y vuelve a verificar. En caso de que no exista, apaga el equipo.
Un saludo,
Xavi.
@echo off
:Bucle
tasklist /fi "imagename eq winword.exe" | find /i "winword.exe"
if errorlevel 1 goto apagar
echo Winword esta funcionando
goto OK
:apagar
shutdown -s -f -t 0
:OK
REM Espera 6 segundos
ping 127.0.0.1 -n 2 -w 5000
goto Bucle
muchas gracias!
ResponderEliminarlo probaré y te comento.
Saludos
En vez de apagar el equipo, es posible que reinicie el .bat que tenia ejecutando y que se cerro?
ResponderEliminarHola,
EliminarNo acabo de entender la pregunta, pero si te fijas en el BAT, tienes el comando shutdown que puedes substituirlo por lo que quieras, por ejemplo una llamada a otro bat.
Un saludo,
Xavi.
Estoy volviéndome loco para hacer algo tal cual esto, pero que el desencadenante, en vez de horario, sea la desconexión de una unidad usb.
ResponderEliminarSi unidad D se desconecta, then reboot.
¿ Socorro ?
Hola,
EliminarPor defecto no existe la opción que comentas. Puedes tratar de buscar o construir u script que lo haga.
Un saludo,
Xavi.
disculpa la molestia bro
ResponderEliminaral realizar el reinicio se encenderá el servidor automáticamente a una hora o sera después de haberse apagado
Hola,
EliminarSi se ha apagado, la tarea programada no puede ejecutarse.
El reinicio se producirá si Windows con la tarea programada esta cargado.
Un saludo,
Xavi.
como se puede hacer esto para que lo haga solo un día específico de la semana ?
ResponderEliminarHola Osniel,
EliminarSi ejecutas:
schtasks /create /?
Veras multitud de ejemplos y parámetros del comando schtasks para crear tareas.
Creo que este fragmento de la ayuda es el que te interesa:
Modificadores: valores válidos para el modificador /MO por tipo de programación:
MINUTE: 1 - 1439 minutos.
HOURLY: 1 - 23 horas.
DAILY: 1 - 365 días.
WEEKLY: semanas 1 - 52.
ONCE: sin modificadores.
ONSTART: sin modificadores.
ONLOGON: sin modificadores.
ONIDLE: sin modificadores.
MONTHLY: 1 - 12, o
FIRST, SECOND, THIRD, FOURTH, LAST, LASTDAY.
ONEVENT: Cadena de consulta de evento XPath.
Un saludo,
Xavi.
es posible apagar el equipo y que se reinicio una hora después?
ResponderEliminarHola,
EliminarPara encender el equipo a una hora, no podrás hacerlo desde Windows.
Puedes mirar si en la BIOS del sistema tienes alguna opción para programar el encendido.
Una vez logres encender el equipo a una hora, después ya desde Windows, podrás programar su reinicio a la hora que indiques.
Un saludo,
Xavi.
Siempre acabo aqui Xavi!...ajajajajaja
ResponderEliminar¡¡Eso es bueno!! :-))
EliminarUn abrazo!!
Xavi.
es posible programar un reinicio de windows cuando pierda la conexion a internet? se puede hacer eso?
ResponderEliminarHola,
EliminarPuedes hacerlo por ejemplo con un script de PowerShell.
Aquí tienes un ejemplo:
If (!(Test-Connection 8.8.8.8 -quiet)) {
#Write-Host "No conectado"
Restart-Computer -Force
}
Else {
#Write-Host "Conectado"
}
Si quieres aprender mas sobre PowerShell, tienes todos los posts del blog que tratan sobre PowerShell y además tienes el libro:
https://www.sysadmit.com/2021/04/libro-powershell-administradores-IT.html
Saludos,
Xavi.
Buenas tardes,
ResponderEliminarestoy buscando crear un script que reinicie los equipos cuando lleve x horas activos, se puede realizar?
Muchas gracias
Hola,
EliminarPuedes hacer que el script verifique el uptime de el equipo antes de reiniciar.
Aquí tienes varios métodos para ver el uptime de un equipo:
https://www.sysadmit.com/2015/12/windows-ver-uptime.html
Saludos,
Xavi.
Hola, como hago para eliminar un reinicio programado?
ResponderEliminarSi el reinicio programado lo has realizado utilizando las indicaciones de este post, será tan sencillo como eliminar o deshabilitar la tarea programada que realiza el reinicio.
EliminarSaludos,
Xavi.
Se podria crear pero por una gpo un reinicio automatico.
ResponderEliminar