26 de octubre de 2005

Gestionar servicios de forma remota

Probablemente ya conocemos el comando SC de linea de comandos para gestionar los servicios de un equipo (arrancar, parar, consultar estado, etc...) y quizás también cómo arrancar y parar servicios de un equipo remoto del dominio.

Por ejemplo para detener el servicio de colas de impresión del equipo "marte" sería:

sc \\marte stop spooler

Pero, para eso hacen falta dos cosas:
a) Permisos administrativos (ser administrador o pertenecer a su grupo)
b) Que la máquina desde donde ejecutas la orden pertenezca al mismo dominio que "marte"

Con la orden RUNAS podemos cambiar el contexto de seguridad actual, por tanto, nuestro comando quedaría como sigue:

runas /netonly /user:ELDOMINIO\Administrador "sc \\marte stop spooler"

Dado que mi idea original era reiniciar el servicio (y no simplemente pararlo) y puesto que no he visto orden "restart" en el comando sc, tendremos que usar otra orden start:

runas /netonly /user:ELDOMINIO\Administrador "sc \\marte start spooler"

Esto se podría complicar todo lo que se quisiera, por ejemplo:

Arrancar una consola con un contexto de seguridad distinto (poco recomendado):

runas /netonly /user:ELDOMINIO\Administrador cmd

Arrancar y parar el servicio con una sola línea:

sc \\marte stop spooler && echo Stop OK! && sc \\marte start spooler && echo Start OK!

&& funciona igual que en UNIX, ejecuta el siguiente comando si y solo si el anterior tuvo éxito.

Saludos y feliz scripting.

No hay comentarios.: