Обновите заголовок узла в IIS с помощью Powershell - PullRequest
5 голосов
/ 10 февраля 2012

Цель : обновить существующий заголовок узла для сайта IIS7.5 с помощью powershell

Проблема : Set-WebBinding требует имя сайта, которое я используюне имеет.У меня действительно есть HostHeader.

Сценарий : у меня есть несколько сайтов в IIS.У некоторых из них есть заголовок узла с определенной строкой, которую я хочу изменить.

Site1 - site1.stuff.domain.net
Site2 - site2.stuff.domain.net
Site3 - site3.domain.net

Я хочу изменить все сайты с .stuff в заголовках.

Яиспользуя Get-WebBinding, чтобы получить список всех сайтов и их привязок.Затем я перебираю их и проверяю, содержит ли bindingInformation .stuff.Я изменяю строку, как мне нравится, и затем иду, чтобы обновить заголовок с помощью

Set-WebBinding -HostHeader $originalHeader -SetProperty HostHeader -Value $newHeader

Очевидно, что для использования Set-WebBinding вам нужно иметь имя сайта, в отличие от Get-WebBinding, что позволяет вамполучить привязку на основе HostHeader (Get-WebBinding -HostHeader $someValue).Есть ли способ использовать Set-WebBinding без указания Name сайта?Есть ли способ узнать название сайта из Get-WebBinding?Есть ли альтернатива Set-WebBinding?Или есть лучший способ сделать то, что я пытаюсь сделать?

Ответы [ 2 ]

4 голосов
/ 11 февраля 2012

Попробуйте:

Get-WebBinding -HostHeader *.stuff.* | Foreach-Object{
    #$NewHeader = $_.bindingInformation -replace '\.stuff\.','.staff.'
    Set-WebConfigurationProperty -Filter $_.ItemXPath -PSPath IIS:\ -Name Bindings -Value @{protocol='http';bindingInformation=$NewHeader}
}
1 голос
/ 11 мая 2016

Изменен ответ Шей для поддержки нескольких привязок.

Get-WebBinding -HostHeader *.stuff.* | Foreach-Object{
    #$NewHeader = $_.bindingInformation -replace '\.stuff\.','.staff.'
    Set-WebConfigurationProperty -Filter ($_.ItemXPath + "/bindings/binding[@protocol='http' and @bindingInformation='" + $_.bindingInformation + "']") -PSPath IIS:\ -Name bindingInformation -Value $NewHeader
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...