Again, it’s all about placement and where the call to data and format are applied.
### Find list of websites on servers
Clear-Host
$ps = "Windows PowerShell"
$RemoteComputers = $env:COMPUTERNAME
ForEach ($RemoteComputer in $RemoteComputers)
{
#"`n" # Insert a new line.
#"*"*24 # Banner line record seperator
Invoke-Command -ComputerName $RemoteComputer `
-ScriptBlock {
$Service = ( $TargetServices = 'W3SVC', 'MSSQLSERVER' `
| % { Get-Service -Name $_ -ErrorAction SilentlyContinue} )
$IPAddress = ([System.Net.Dns]::GetHostByName($Inputmachine).AddressList[0]).IpAddressToString
If (Get-Service -Name 'W3SVC')
{
Import-Module WebAdministration
$hostname = hostname
$Websites = Get-ChildItem -Path 'IIS:\Sites'
$date = (Get-Date).ToString('MMddyyyy')
foreach ($Site in $Websites)
{
$Binding = $Site.bindings
[string]$BindingInfo = $Binding.Collection
[string[]]$Bindings = $BindingInfo.Split(" ")#[0]
$i = 0
$status = $site.state
$path = $site.PhysicalPath
$fullName = $site.name
$state = ($site.name -split "-")[0]
$Collection = ($site.name -split "-")[1]
$status = $site.State
$anon = get-WebConfigurationProperty `
-Filter '/system.webServer/security/authentication/AnonymousAuthentication' `
-Name Enabled `
-PSPath 'IIS:\sites' `
-Location $site.name `
| select-object Value
$basic = get-WebConfigurationProperty `
-Filter '/system.webServer/security/authentication/BasicAuthentication' `
-Name Enabled -PSPath 'IIS:\' `
-location $site.name `
| select-object Value
Do
{
if ( $Bindings[($i)] -notlike "sslFlags=*")
{
[string[]]$Bindings2 = $Bindings[($i + 1)].Split(":")
$obj = New-Object PSObject
$obj | Add-Member Date $Date
$obj | Add-Member Host $hostname
$obj | Add-Member State $state
$obj | Add-Member SiteName $Site.name
$obj | Add-Member SiteID $site.id
$obj | Add-member Path $site.physicalPath
$obj | Add-Member Protocol $Bindings[($i)]
$obj | Add-Member Port $Bindings2[1]
$obj | Add-Member Header $Bindings2[2]
$obj | Add-member AuthAnon $Anon.value
$obj | Add-member AuthBasic $basic.value
$obj | Add-member Status $status
$obj | Add-Member Ipaddress $IpAddress
$obj | Add-Member Service $Service
$obj#
$i = $i + 2
}
else {$i = $i + 1}
} while ($i -lt ($bindings.count))
}
}
} |
Select-Object Host, IpAddress, SiteID, Port, Protocol, Status, SiteName,
Path, Header, Service |
Export-Csv -Path 'C:\Temp\iis.csv' -Append -NoTypeInformation |
Format-Table -AutoSize
}
Import-Csv -Path 'C:\Temp\iis.csv' | Format-Table -AutoSize