Erstellen Sie eine Website in IIS aus Powershell mit mehreren Bindungen


8

Ich versuche, ein einfaches Skript zu erstellen, damit meine Site sowohl als auch www.example.comeinfach erreicht werden kann example.com. Wie gebe ich es als verbindliches Argument weiter?

Folgendes versuche ich:

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

Antworten:


7

Die BindingInformation-Optionen erwarten ein Array von Einträgen (die jeweils Arrays für sich sind, beachten Sie das @) und keine durch Kommas getrennte Liste.

Beispiel - Definieren Sie zuerst ein geeignetes Array von Einträgen und weisen Sie es dann als bindendes Informationsargument zu:

$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

Alternativ können Sie nach dem Erstellen der Site mithilfe des Befehls New-WebBinding zusätzliche Bindungen hinzufügen . z.B:

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

0

Ich benutze dies, um Bindungen zu aktualisieren, es könnte jemandem helfen, da ich das selbst herausfinden musste.

$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" 
                        }
                }
     }

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.