2016-07-27 16 views
0

Windowsサービス(SNARE)がサーバーの一覧で実行されているかどうかを調べるために、PowerShellスクリプトを検索してまとめました。現時点では、エラーが発生していない場合はスネアが実行中、エラーが発生した場合は「インストールされていない/電源が切れていません」というメッセージがスクリプトに出力されます。また、私が探しているのは、スクリプトがエラーで終わらない場合、どういうわけかStatus(以下の例)の出力を取り込み、 "Snare is stopped"を印刷できますか?基本的な出力リダイレクト

Status Name    DisplayName 
------ ----    ----------- 
Stopped SNARE    SNARE
#Powershell 
$serverList = gc Final.txt 
$collection = $() 
foreach ($server in $serverList) { 
    $status = @{ 
    "ServerName" = $server 
    "TimeStamp" = (Get-Date -f s) 
    } 
    if (Get-Service -Name SNARE -ComputerName $server -EA SilentlyContinue) { 
    $status["Results"] = "Snare is running" 
    } else { 
    $status["Results"] = "Not installed/Powered off" 
    } 
    New-Object -TypeName PSObject -Property $status -OutVariable serverStatus 
} 

答えて

1

Get-Serviceからの出力を変数に割り当て、そこからStatusプロパティをつかむ:

if (($snare = Get-Service -Name SNARE -ComputerName $server -EA SilentlyContinue)) 
{ 
    $status["Results"] = "Snare is running" 
    $status["Status"] = $snare.Status 
} 
else 
{ 
    $status["Results"] = "Not installed/Powered off" 
    $status["Status"] = "Unknown" 
} 
+0

はマティアス-R-ジェッセン@ありがとうございます。あなたの提案は私のために働いた。 –

関連する問題