jueves, 30 de junio de 2011

Reinicio remoto

Con el objeto de reiniciar muchas máquinas dentro de un mismo dominio (asumiendo que se tiene el permiso de administrador sobre dichos equipos), se debe armar un script (en .bat o .cmd) con el famoso comando de D.O.S.: "Shutdown".

Se lo puede personalizar para que envíe un mensaje, e incluso para que reinicie el equipo en X cantidad de tiempo.

Para tal efecto, el script lo tengo armado en dos partes, la primera llamada "Reboot ALL Computers 30 min.cmd" con el siguiente script:

@For /F "tokens=1" %%a in (Equipos.txt) do start Reboot30m.cmd %%a

Lo que hace es levantar los equipos de un documento de texto bajo el nombre de "Equipos.txt" (un equipo por linea!), y asignarle la variable "%%a", para luego ejecutar otro CMD.

El siguiente CMD, al que llama el primero, tiene el nombre de "Reboot30m.cmd", y contiene las siguientes lineas:

Shutdown -r -f -m %1 -t 1800 -c "Tenga en cuenta que en 30 minutos el equipo se reiniciara. Guarde todos sus datos!"
Exit

El atributo "-r" hace que el equipo se reinicie, a su vez el "-f" hace que sea forzado (es decir, no espera a que se cierren o guarden las cosas, por ello el mensajito!).
-m es la máquina remota, que la topa de la variable que definimos anteriormente.
-t es el tiempo en segundos, y por último -c es el mensaje a mostrar en la máquina cliente a reiniciar.