Reiniciar automaticamente un servicio con vbs

Un amigo me ha planteado un problema y esta es la situacion:

Una pequeña empresa utiliza NAT para acceder a sus servidores por VNC. Esto podria suponer un problema de seguridad que no viene al caso. Uno de los servidores a los que se conecta se queda pillado muchas veces y no se puede conectar, al parecer el servicio de windows que falla es del RealVNC version 4.

Para ello vamos a meter un VBscript en el servidor para que lo ejecute mediante una tarea programada cada cierto tiempo solo si el servicio esta caido. Podriamos poner una tarea de windows que haga un restart del servicio y asi nos evitamos problemas, pero si estamos conectados y se ejecuta cada cinco minutos nos sacara de la sesion y eso no mola.

Creamos un fichero de texto y lo guardamos como “ReinicioVNC.vbs”. El contenido del script que he recopialdo por la red podria ser el siguiente :

strComputer = “.”

Const ForReading = 1, ForWriting = 2
Set objFSO = CreateObject(“Scripting.FileSystemObject”)
Set objFile = objFSO.OpenTextFile(“C:Reinicio_VNC_Server.txt”, ForWriting, True)
objFile.WriteLine “Servicio VNC reiniciado por ultima vez el dia ” & Date & ” a las ” & Time

Set objWMIService = GetObject(“winmgmts:” _
& “{impersonationLevel=impersonate}!” & strComputer & “rootcimv2”)
Set ServiceList = objWMIService.ExecQuery(“Select * from Win32_Service where name = ‘WinVNC4′”)
for each dato in ServiceList
errReturnCode = dato.StartService()
next

Si el servicio “WinVNC4” no esta corriendo con su correspondiente proceso de windows, lo inicia. Cada vez que se ejecuta guarda a modo de log la fecha y hora en un fichero.

Podemos crear una tarea de windows que lo lance cada 5 minutos o una tarea no programada que nos permita lanzarlo a mano desde otro ordenador que tenga acceso al servidor.

En caso extremo y a las bravas podemos reiniciar el servidor (para no acudir presencialmente a la empresa :P) desde otro ordenador. Para ello podemos crear una tarea de windows y acceder por recurso de red IP_Servidor entrando a “Tareas programadas” y ejecutando la tarea del servidor. Dicha tarea podria contener el siguiente comando:

C:WINDOWSsystem32shutdown.exe -r -f -t 0

Este ejemplo podria valer para cualquier otro servicio. Espero que te valga.

Etiquetas: , , ,

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: