如何从脚本重新启动 Windows 服务?

如何从脚本重新启动 Windows 服务?

我有一个如下所示的批处理脚本:

sc stop myservice
sc start myservice

它会出错,因为 sc 不会等到服务停止。如何使用脚本重新启动服务?

答案1

发帖者希望确保在尝试重新启动服务之前已停止服务。您可以在“sc query”的输出上使用循环,执行如下操作:

: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

答案2

可能缺少了一些东西,但我一直在用这个:

网络停止“myservice”
网络启动“myservice”

或更短:

网络停止“myservice”&&网络启动“myservice”

答案3

使用 powershell 非常简单:

PS >Restart-Service MySrvcHere

更好的是,使用显示名称:

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

Get-Help Restart-Service更多

答案4

具有安静的重新启动某些服务,要求确认停止(例如服务器服务),您可以添加/年至停止命令结束。

net stop Server /y
net start Server

这将有助于脚本的自动执行。

相关内容