列出IIS6服务器场中所有已停止的应用程序池

时间:2011-06-08 07:24:49

标签: scripting powershell iis-6 adsi

我只想打印那些停止或停止的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 个答案:

答案 0 :(得分:2)

您可以检查集合中是否有任何项目如下:

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