停止中または停止中 (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
}