I can search for websites using:
Get-WmiObject -Namespace "root\WebAdministration" -Class Site -Authentication PacketPrivacy -ComputerName $servers
And I can list the app pools using:
Get-WmiObject -computer $servers -Namespace root\MicrosoftIISv2 -Class IIsApplicationPoolSetting -Impersonation Impersonate -Authentication PacketPrivacy
How can I link these together to find which app pool is associated to which website? It's a Windows Server 2008 R2 server with IIS 7.5.
Use the webadministration module:
Import-Module WebAdministration
dir IIS:\Sites # Lists all sites
dir IIS:\AppPools # Lists all app pools and applications
# List all sites, applications and appPools
dir IIS:\Sites | ForEach-Object {
# Web site name
$_.Name
# Site's app pool
$_.applicationPool
# Any web applications on the site + their app pools
Get-WebApplication -Site $_.Name
}