38 votos

¿Cómo puedo reiniciar un servicio de Windows a partir de un guión?

Tengo un script por lotes que se parece a:

sc stop myservice
sc start myservice

que errores porque sc no espere hasta que se detiene el servicio. ¿Cómo puedo reiniciar un servicio con un script?

47voto

crb Puntos 6399

El cartel quiere asegurarse de que el servicio se detiene antes de intentar reiniciar. Se puede utilizar un bucle en la salida de "sc query" hacer algo como esto:

:stop
sc stop myservice

rem cause a ~10 second sleep before checking the service state
ping 127.0.0.1 -n 10 -w 1000 > nul

sc query myservice | find /I "STATE" | find "STOPPED"
if errorlevel 1 goto :stop
goto :start

:start
net start | find /i "My Service">nul && goto :start
sc start myservice

24voto

Greg Hewgill Puntos 356191

Muertos simple con powershell:

PS >Restart-Service MySrvcHere

Mejor aún, el uso de los nombres para mostrar:

PS >Restart-Service -displayname "My Service Name Here"

Get-Help Restart-Service más

6voto

Omer van Kloeten Puntos 6268

Si es puramente para reiniciar el servicio, puede utilizar

Net stop myservice
Net start myservice

Sin embargo, si desea tener acceso a las opciones de la sc, puede utilizar el inicio /comando wait

start /B /WAIT CMD /C "sc stop myservice"
start /B /WAIT CMD /C "sc start myservice"

esta técnica es una solución más general que puede ser aplicado a cualquier comando.

5voto

Fedir Puntos 254

Para tener tranquilidad y el reinicio de un servicio, el cual le pide confirmaciones de ser detenido (como el servicio de Servidor, por ejemplo), puede agregar /y al final de comando de parada.

net stop Server /y
net start Server

Sería útil para la detección automática de la ejecución del script.

0voto

Traphicone Puntos 64

Puede ser que falte algo, pero yo lo uso todo el tiempo:

net stop "myservice"
net start "myservice"

o más corto:

net stop "myservice" && net start "myservice"

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: