Я хотел бы провести аудит пулов приложений на сервере IIS6, я хочу проверить, какие веб-сайты относятся к каждому пулу приложений и к какой версии .NET они работают. Как я могу сделать это, не просматривая интерфейс вручную и не просматривая каждый из них по очереди?
Использовать iisapp.vbs чтобы перечислить пулы приложений:
iisapp.vbs
К сожалению, в отличие от IIS7, пулы приложений не знают, какую версию .NET они используют, они просто загружают фильтр, запрошенный сайтом, поэтому вам нужно перебирать сайты и извлекать информацию. Этот ответ StackOverflow предлагает сценарий для просмотра веб-сайтов и перечисления их пула приложений и версий .NET.
(Автор сценария @Kev в StackOverflow)
# Walk sites
$allsites = ([adsi]"IIS://Localhost/W3SVC").children | where { $_.SchemaClassName -eq "IIsWebServer" }
$pools = @()
foreach($site in $allsites)
{
$path = "IIS://Localhost/W3SVC/" + $site.Name + "/root"
$siteRoot = [adsi]$path
$sitePool = $siteRoot.AppPoolId
$aspx = $siteRoot.ScriptMaps | where { $_.StartsWith(".aspx") }
if( $aspx.Contains("v1.1")) {
$runtime = "1.1"
} elseif ($aspx.Contains("v2.0")) {
$runtime = "2.0"
} elseif( $aspx.Contains("v4.0")) {
$runtime = "4.0"
} else {
$runtime = "Unknown"
}
$v = @{AppPool = $siteRoot.AppPoolId; RunTime = $runtime; SiteId = $site.Name}
$pools += $v
}
$pools | Sort-Object { $_.AppPool } | % { Write-Host $_.AppPool $_.SiteId $_.RunTime }