下面是重启Windows服务的代码,我尝试重启的服务是我在机器上安装的第三方软件的服务。
代码的else if
部分正常工作,就像服务停止时它启动服务但if部分默认失败,例如restart命令正在停止服务,但它无法再次启动服务
感谢任何帮助。
$service = $args[0]
$servstatus = Get-Service $service.status
if ($servstatus = "Started") {
Restart-Service $service -Force
} elseif ($servstatus = "Stopped") {
Start-Service $service -Force
}
答案 0 :(得分:1)
您是否查看了事件日志以了解服务无法启动的原因?这不是PowerShell问题,这可能是该服务的问题。
答案 1 :(得分:0)
状态应为Running
,而不是Started
。
资料来源:Get-Service
AND 等于运算符为-eq
而非=
。
$service = $args[0]
$servstatus = Get-Service $service.status
if ($servstatus -eq "Started") {
Restart-Service $service -Force
} elseif ($servstatus -eq "Stopped") {
Start-Service $service -Force
}
使用=
,您实际上正在为$servstatus
分配值。
答案 2 :(得分:0)
Restart-Service $args[0]
应该够了。它将启动停止服务并重新启动正在运行的服务。 如果您想要更详细的代码,那么应该使用以下内容来获取服务器的状态(以及通过sodawillow修复):
$servstatus = (Get-Service $service).status