Power Shell服务重新启动失败

时间:2015-12-23 17:32:36

标签: powershell

下面是重启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
}

3 个答案:

答案 0 :(得分:1)

您是否查看了事件日志以了解服务无法启动的原因?这不是PowerShell问题,这可能是该服务的问题。

答案 1 :(得分:0)

状态应为Running,而不是Started

资料来源:Get-Service

PS中的

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