Перебрать все привязки, настроенные в IIS с помощью powershell

Я ищу способ просмотреть все параметры привязки , уже настроенные в моем IIS.

Я использую это для работать с IIS в Powershell:

Import-Module WebAdministration

Пока мне удалось получить основную требуемую информацию, которую я хочу:

$Websites = Get-ChildItem IIS:\Sites

Мой массив $ Websites заполнен правильно и с помощью следующей команды ...

$Websites[2]

.. Я получил это результат:

Name         ID   State    Physical Path       Bindings    
----         --   -----    -------------       --------------     
WebPage3      5            D:\Web\Page3        http  *:80:WebPage3  
                                               https *:443:WebPage3

Теперь вот часть, с которой мне пришлось нелегко:

Я хочу проверить правильность привязки. Для этого мне нужна привязка только . Я пробовал:

foreach ($site in $Websites)
{
    $site = $Websites[0]
    $site | select-string "http"
}

Отладка этого кода показывает мне, что $ Site не содержит того, что я ожидал: «Microsoft.IIs.PowerShell.Framework.ConfigurationElement». В настоящее время я не знаю, как явно получить информацию о привязке, чтобы получить что-то вроде этого (внутри цикла foreach):

 if ($site.name -eq "WebPage3" -and $site.Port -eq "80") {
    #website is ok    
 } 
 else {
    #remove all current binding
    #add correct binding
 }

Спасибо за вашу помощь!


Решение:

Import-Module WebAdministration
$Websites = Get-ChildItem IIS:\Sites
foreach ($Site in $Websites) {

    $Binding = $Site.bindings
    [string]$BindingInfo = $Binding.Collection
    [string]$IP = $BindingInfo.SubString($BindingInfo.IndexOf(" "),$BindingInfo.IndexOf(":")-$BindingInfo.IndexOf(" "))         
    [string]$Port = $BindingInfo.SubString($BindingInfo.IndexOf(":")+1,$BindingInfo.LastIndexOf(":")-$BindingInfo.IndexOf(":")-1) 

    Write-Host "Binding info for" $Site.name " - IP:"$IP", Port:"$Port

    if ($Site.enabledProtocols -eq "http") {
        #DO CHECKS HERE     
    }
    elseif($site.enabledProtocols -eq "https") {
        #DO CHECKS HERE
    }
}
7
задан FullByte 7 March 2012 в 08:04
поделиться