2

我只想打印那些停止或停止的 IIS6 池(AppPoolState 为 3 或 4)。如果其他一切都很好(一切都开始了),只需打印出“OK”。我不确定是否有一种简单的方法来检查所有这些。我试图循环遍历应用程序池,逐个检查每个状态,但它看起来有点复杂,似乎有一种更简单的方法可以做到这一点。

这段代码将进入一个循环,该循环运行一个庞大的服务器列表,在每个服务器上运行其他检查,然后打印出一个表。

$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 回答