2

停止中または停止中 (AppPoolState が 3 または 4) の IIS6 プールのみを出力したいと考えています。他のすべてが問題ない (すべて開始された) 場合は、「OK」と出力します。それらすべてをチェックする簡単な方法がわかりません。各状態を 1 つずつチェックするアプリ プールをループしようとしましたが、少し複雑に見え、これを行う簡単な方法があるようです。

このコードは、サーバーごとに他のチェックを実行しているサーバーの巨大なリストを実行するループ内に入り、テーブルを出力します。

$iispools = [ADSI]"IIS://$server/W3SVC/AppPools" | foreach {$_.children} | select Name,AppPoolState | where {($_.name -ne "DefaultAppPool")}

if (condition?)
{
    write-host "OK"
}
else {
    # print stopped/stopping pools here
    $iispools | where { $_.apppoolstate -ge 3 } | convertto-html -fragment
}
4

1 に答える 1

2

次のようなコレクションにアイテムがあるかどうかを確認できます。

$stoppedPools = $iispools | where { $_.apppoolstate -ge 3 }
if (!$stoppedPools)
{
    write-host "OK"
}
else 
{
    # print stopped/stopping pools here
    $stoppedPools | convertto-html -fragment
}
于 2011-06-08T07:42:11.397 に答える