Список всех остановленных пулов приложений в ферме IIS6 - PullRequest
2 голосов
/ 08 июня 2011

Я хотел бы напечатать только те пулы IIS6, которые остановлены или остановлены (имеют AppPoolState 3 или 4).Если все остальное в порядке (все началось), просто распечатайте «ОК».Я не уверен в простом способе проверить их все.Я попытался перебрать пулы приложений, проверяя каждое состояние одно за другим, но это выглядит немного сложным, и, кажется, есть более простой способ сделать это.

Этот код будет идти внутри цикла, который проходит черезогромный список серверов, на которых выполняются другие проверки, затем распечатывает таблицу.

$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
}

1 Ответ

2 голосов
/ 08 июня 2011

Вы можете проверить, есть ли какие-либо предметы в коллекции, как это:

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