24 abril 2012

Programar el apagado automático en Windows

En algunos entornos (escuelas, centros de trabajo, aulas informáticas, ...) y para evitar que se queden en marcha toda la noche, puede ser deseable que determinados equipos se apaguen automáticamente a una hora concreta. Por ejemplo, a las 9 de la noche.

Para que esto sea efectivo, hay que garantizar que el apagado del equipo se produzca en cualquier caso. Tanto si hay algún usuario autenticado como si no. La clave para ello es que la tarea se ejecute como el usuario privilegiado "NT AUTORITHY\SYSTEM".

Veremos dos métodos para hacerlo (utilizando los comandos AT y SCHTASKS). Ambos realizan una llamada al comando shutdown que viene con el sistema, desde la versión Windows2000, precisamente con el fin de ayudar en la automatización de las tareas de apagado de los equipos

Método 1

En este método combinaremos el comando shutdown con la orden at, que nos permite programar la ejecución de comandos en un momento determinado del día.

La orden exacta para apagar el equipo cada día laborable (de lunes a viernes) a las 9 de la noche sería:
> at 21:00 /every:L,M,X,J,V shutdown -s
El comando debe teclearse tal cual está escrito (sin comillas) desde una ventana de consola de sistema (Inicio > Ejecutar > cmd.exe). Es valido únicamente para un Windows en español. Para otro idioma habría que indicar los días de la semana en los equivalentes respectivos.

Tecleando únicamente el comando AT en la consola se muestra un listado con todas las tareas programadas, junto con su número de identificación o ID,
> at

Estado   ID                    Hora     Línea de comando
---------------------------------------------------------------------
          1  Cada L M Mi J V   21:00    shutdown -s
Mediante el comando AT también se puede eliminar una tarea específica. Basta con indicar el ID desde la línea de comandos:
> at 1 /delete
Si no indicamos ninguna tarea, se borran todas las tareas programadas existentes.

Método 2

También podemos llevar a cabo la misma tarea con el comando schtasks, que es un comando que viene a sustituir al anterior y que podemos encontrar a partir de Windows XP. La orden para llevar a cabo este proceso sería:
> schtasks /create /tn "Apagar_equipo@21h" /tr "shutdown -s" /ru system /sc weekly /d mon,tue,wed,thu,fri /st 21:00:00
De forma similar a lo indicado para el método anterior, utilizando el comando schtasks también podemos listar todas las tareas programadas.
> schtasks

Nombre de tarea           Hora de próxima ejecución   Estado
========================= =========================== ===========
Apagar_equipo@21h         21:00:00, 02/02/2012
También podemos eliminar una tarea determinada indicando su nombre.
> schtasks /delete /tn "Apagar_equipo@21h"
En ambos casos, las tareas progradas son visibles desde la consola de "Tareas programadas".

0 comentarios: