여러 바인딩을 사용하여 powershell에서 IIS로 웹 사이트 만들기


8

간단한 스크립트를 작성하여 사이트를 www.example.com간단하고 쉽게 접근 할 수 있도록 노력하고 있습니다 example.com. 바인딩 인수로 어떻게 전달합니까?

내가 시도한 것은 다음과 같습니다.

$iisApp = New-Item $iisAppName -bindings @{protocol="http";bindingInformation="*:80:"+ $url + ",*:80:www." + $url} -physicalPath $directoryPath
$iisApp | Set-ItemProperty -Name "applicationPool" -Value $iisAppPoolName

답변:


7

bindingInformation 옵션은 쉼표로 구분 된 목록이 아닌 항목 의 배열 (각 배열 자체,)에주의해야 @합니다.

예-먼저 적절한 항목 배열을 정의한 다음 bindingInformation 인수로 지정하십시오.

$bindings = @(
   @{protocol="http";bindingInformation="*:80:" + $url},
   @{protocol="http";bindingInformation="*:80:www." + $url},
)

$iisApp = New-Item $iisAppName -bindings $bindings -physicalPath $directoryPath
$iisApp | Set-ItemProperty -Name "applicationPool" -Value $iisAppPoolName

또는 사이트를 만든 후 New-WebBinding 명령 을 사용하여 추가 바인딩을 추가 할 수 있습니다 . 예 :

New-WebBinding -Name $iisAppName -IPAddress "*" -Port 80 -HostHeader "www.$url"

0

바인딩을 업데이트하기 위해 이것을 사용하는 Im은 내가 이것을 스스로 알아 내야했기 때문에 누군가를 도울 수 있습니다.

$hostname =$env:COMPUTERNAME
$fqdn = $env:USERDNSDOMAIN
$Bindings = Get-WebBinding |Select -expandproperty bindinginformation
$websites = Get-Website
foreach ($website in $websites)
    {
    $siteName=$website.name
         foreach ($Binding in $Bindings)
                {
                $oldheader =($Binding -split ":")[-1]
                    if ($oldheader -eq "")
                        {
                         Set-WebBinding -Name $sitename -BindingInformation $Binding -PropertyName "HostHeader" -Value "$hostname.$fqdn" 
                        }
                }
     }

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.