2015-06-18 1 views
1

Мы используем OctopusDeploy для создания веб-сайта, и мы используем шаблон создания сайта, который находится на сайтах сообщества. Я немного изменил его, чтобы убедиться, что если сайт существует, он добавляет привязку по умолчанию, однако он удаляет все существующие привязки. Есть ли способ просто добавить привязку к IIS, которая перезаписывает, если она уже существует (или игнорирует) и не удаляет все существующие привязки?Добавить привязку к IIS с помощью PowerShell без перезаписи Существующие

Сценарий у нас сейчас есть выглядит следующим образом:

$bindingInformation = "${bindingIpAddress}:${bindingPort}:${bindingHost}" 

$sitePath = ("IIS:\Sites\" + $webSiteName) 

$site = Get-Item $sitePath -ErrorAction SilentlyContinue 
if (!$site) { 
    Write-Output "Creating web site $webSiteName" 
    $id = (dir iis:\sites | foreach {$_.id} | sort -Descending | select -first 1) + 1 
    new-item $sitePath -bindings ($wsBindings[0]) -id $id -physicalPath $webRoot -confirm:$false 
} else { 
    write-host "Web site $webSiteName already exists" 
    Set-ItemProperty -Path $sitePath -Name Bindings -Value ($wsBindings[0]) 
} 

Кажется, эту линию:

 Set-ItemProperty -Path $sitePath -Name Bindings -Value ($wsBindings[0]) 

ли перезаписана все существующие привязок, но я не могу показаться, чтобы найти путь вокруг него.

ответ

1

Вы можете использовать команду: New-WebBinding

New-WebBinding ` 
     -Name $webSiteName ` 
     -Protocol 'http' ` 
     -Port $bindingPort ` 
     -IPAddress $bindingIpAddress ` 
     -HostHeader $bindingHost 

И использовать Get-WebBinding командлет, чтобы проверить, существует ли уже переплета.

0

Вы можете использовать New-WebBinding, поскольку jisaak сказал, что в основном для http (s).

Если вам нужно добавить другие типы привязок, вы должны использовать New-ItemProperty, а не Set-ItemProperty.

New-ItemProperty -path "IIS:\Sites\YourSiteName" ` 
    -name bindings -value @{protocol="net.pipe";bindingInformation="SiteName"}