2014-01-09 78 views
0

我正在使用以下脚本来监视服务以查看服务是否正在运行,然后采取相应措施。PowerShell - 关于服务状态的报告

但是它总是执行一条真正的语句,我相信这是因为$ running正在返回停止状态的服务,并在服务存在时传递一个真正的响应。

因此,预期的目的是检查服务,如果停止的电子邮件的状态说它正在启动服务。如果服务是无所事事的状态。

任何帮助,将不胜感激,

非常感谢

$running = Get-Service -Name IISADMIN 

if ($running -eq $Stopped) { 
        exit 
        } else { 

Start-Service -Name IISADMIN 
c:\blat.exe %0 -to [email protected] -from [email protected] -subject "Email Subject" -body "Service has been restarted." 
} 

回答

0

试图改变这样的:

if ($running.status -eq "Stopped") 

注:如果服务不存在,你的第一行返回一个错误! 也许你需要使用反转的条件:从上面的CB帮助

if ($running.status -ne "Stopped") 
+0

嗨CB,我尝试这样做了。它仍然发送电子邮件。然而,使用“运行”,而不是工作! – 0x0000001E

+0

@ user2004752检查你的情况的逻辑..你需要在我的回答中使用我最后一个 –

0

帮助,曾用“停止”以前没有工作和电子邮件仍然发送。

但是使用下面的有脚本按预期工作:

if ($running.status -eq "Running")