2014-01-09 75 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")