Buscar

Windows: Programar apagado o reinicio automático

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":

Windows: Programar apagado o reinicio automático

Pestaña "Desencadenadores":

Windows: Programar apagado o reinicio automático

Pestaña "Acciones":

Windows: Programar apagado o reinicio automático

7 comentarios:

  1. Saludos y enhorabuena por tu trabajo!

    Quisiera 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!

    ResponderEliminar
    Respuestas
    1. Hola Jose,

      Mira 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

      Eliminar
  2. muchas gracias!

    lo probaré y te comento.

    Saludos

    ResponderEliminar
  3. En vez de apagar el equipo, es posible que reinicie el .bat que tenia ejecutando y que se cerro?

    ResponderEliminar
    Respuestas
    1. Hola,

      No 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.

      Eliminar
  4. 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.

    Si unidad D se desconecta, then reboot.

    ¿ Socorro ?

    ResponderEliminar
    Respuestas
    1. Hola,

      Por defecto no existe la opción que comentas. Puedes tratar de buscar o construir u script que lo haga.

      Un saludo,

      Xavi.

      Eliminar