Te doy tres opciones para apagar/reiniciar un equipo desde línea de
comandos (esto permite crear una tarea programada para reiniciar un equipo cada
día a determinada hora, por ejemplo):
1.- El programa SHUTDOWN.EXE que viene con el Kit de Recursos de Windows
2000: Tiene una habilidad "especial" este programa y es la capacidad de
reiniciar otros equipos de la red, no sólo el propio equipo que lanza la
tarea:
2.- El programa SHUTDOWN.EXE que viene de serie con Windows XP: No
tienes más que copiarlo del directorio %SystemRoot%\system32 del XP al
directorio %SystemRoot%\system32 del Windows 2000. Al igual que el SHUTDOWN.EXE
del Resource Kit de Windows 2000 es capaz de apagar tanto el equipo que lanza la
instucción como otros equipos de la red.
3.- Lanzar el siguiente script, cortesía de Marcial Carlés [MS MVP]
(copia lo encerrado entre <pego> y </pego>, lo pegas en el
notepad y lo
guardas con extensión .VBS):
<pego>
'Win32
OperatingSystem
'
http://msdn.microsoft.com/library/psdk/wmisdk/clasops
0h7x.htm
'Sugerencia de Michael Harris.Aplicación y comentarios: Marcial
Carlés.
'
'Atención: Este script cierra todas las tareas, el propio
sistema y finalmente apaga la máquina '(PowerOff).
'Si hay archivos de datos
abiertos, NO serán salvados.
'Válido para sistemas que implementan WMI
(Windows ME y 2000).
Set wmi = GetObject("winmgmts:{(Shutdown)}")
Set objSet =
Wmi.InstancesOf("win32 operatingsystem")
For Each obj In objSet
set
os = obj : exit for
Next
os.win32shutdown (6)
</pego>
Me gustaría que te fijaras en la
última línea; es la que ejecuta el reinicio. Como puedes ver, al método
.win32shutdown se le pasa un parámetro numérico; el significado de ese parámetro
es:
0 = Log Off
4 = Forced Log Off
1 = Shutdown
5 = Forced
Shutdown
2 = Reboot
6 = Forced Reboot
8 = Power Off
12 = Forced
Power Off
Así que tan sólo con que cambies el número obtendrás el resultado que
necesites. Como puedes ver, en el script que he copiado se fuerza el reinicio de
la máquina.
Link de interés: