IIS: Display all sites and bindings in PowerShell IIS: Display all sites and bindings in PowerShell powershell powershell

IIS: Display all sites and bindings in PowerShell


Try this:

Import-Module WebadministrationGet-ChildItem -Path IIS:\Sites

It should return something that looks like this:

Name             ID   State      Physical Path                  Bindings----             --   -----      -------------                  --------ChristophersWeb 22   Started    C:\temp             http *:8080:ChristophersWebsite.ChDom.com

From here you can refine results, but be careful. A pipe to the select statement will not give you what you need. Based on your requirements I would build a custom object or hashtable.


Try something like this to get the format you wanted:

Get-WebBinding | % {    $name = $_.ItemXPath -replace '(?:.*?)name=''([^'']*)(?:.*)', '$1'    New-Object psobject -Property @{        Name = $name        Binding = $_.bindinginformation.Split(":")[-1]    }} | Group-Object -Property Name | Format-Table Name, @{n="Bindings";e={$_.Group.Binding -join "`n"}} -Wrap


The most easy way as I saw:

Foreach ($Site in get-website) { Foreach ($Bind in $Site.bindings.collection) {[pscustomobject]@{name=$Site.name;Protocol=$Bind.Protocol;Bindings=$Bind.BindingInformation}}}