Crie um site no IIS a partir do powershell com várias ligações

6

Estou tentando criar um script simples para que meu site possa ser alcançado como www.example.com e simplesmente example.com . Como faço para passar isso como um argumento obrigatório?

Veja o que eu tento:

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

3 respostas

6

As opções bindingInformation estão esperando uma Matriz de entradas (que são cada uma delas, observe o @ ), não uma lista separada por vírgulas.

Exemplo - Defina primeiro uma matriz adequada de entradas e, em seguida, atribua-a como o argumento 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

Como alternativa, depois de criar o site, você pode adicionar mais ligações usando a New-WebBinding comando. por exemplo:

New-WebBinding -Name $iisAppName -IPAddress "*" -Port 80 -HostHeader "www.$url"
    
por 09.10.2015 / 20:54
0

Estou usando isso para atualizar as ligações, isso pode ajudar alguém a sair, já que eu tive que descobrir isso.

$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" 
                        }
                }
     }
    
por 06.10.2017 / 17:30
0

O uso do cmdlet New-WebBinding adiciona uma nova ligação a um site existente

New-WebBinding -Name $ web -IPAddress "*" -Port 80 -protocol http -HostHeader $ Website -sslflags

link

    
por 14.06.2018 / 17:59