识别未使用的应用程序池

时间:2016-09-06 13:52:29

标签: powershell iis

我打算在包含多个服务器的Web场中的每个服务器上的数十个实时应用程序池中找出未使用的应用程序池。应用程序池按网站和应用程序隔离。

我已经使用PS脚本列出了每台服务器的应用程序池 - 我是新手btw,但是我无法将IIS日志与相应应用程序池的网站ID相匹配,以确定是否有流量由网站/应用程序提供。

这主要是出于家政的原因。有没有更好的方法可以使整个过程自动化?

1 个答案:

答案 0 :(得分:0)

有人会认为这会更容易 - 也许有一种更简单的方法,但以下是我能够提出的。我从未使用过PowerShell来管理IIS,因此在该领域拥有更多专业知识的人可能会采用更简洁的方法。

import-module WebAdministration

# get a list of the application pools
$pools = dir IIS:\AppPools

# iterate through the pools and find the ones that are not used by any websites
foreach($pool in $pools){

    if ((Get-WebConfigurationProperty "/system.applicationHost/sites/site/application[@applicationPool='$($pool.name)']" "machine/webroot/apphost" -name path).Count -eq 0)
        {
             write-host $pool.name "has no websites."
        }
}