Назад | Перейти на главную страницу

Как я могу указать, какой пул приложений использует каждый веб-сайт IIS6?

Я хотел бы провести аудит пулов приложений на сервере 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 }