2011-06-08 63 views
2

在我想只打印已停止或停止这些IIS6池(有3的AppPoolState或4)。如果一切正常(全部开始),只需打印出“OK”。我不确定一个简单的方法来检查所有这些。我试图通过应用程序池循环检查每个状态,但它看起来有点复杂,似乎有一个更简单的方法来做到这一点。列出所有停止的应用程序池的IIS6农场

该代码会通过一个巨大的运行上相互检查服务器列表运行,然后打印出表格中的循环中。

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

回答

2

您可以检查是否有这样的集合中的任何项目:

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

猜我再次overanalyzing问题。谢谢! – overbyte 2011-06-08 07:53:09

相关问题