Cree un sitio web en IIS desde powershell con múltiples enlaces

8

Estoy tratando de hacer un script simple para que mi sitio pueda ser alcanzado tanto como www.example.comsimplemente example.com. ¿Cómo lo paso como un argumento vinculante?

Esto es lo que intento:

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

Respuestas:

7

Las opciones vinculantes de información esperan una matriz de entradas (que son cada una de ellas, tenga en cuenta @), no una lista separada por comas.

Ejemplo: defina primero una matriz adecuada de entradas y luego asígnela como argumento de información vinculante:

$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

Alternativamente, después de crear el sitio, puede agregar enlaces adicionales utilizando el comando New-WebBinding . p.ej:

New-WebBinding -Name $iisAppName -IPAddress "*" -Port 80 -HostHeader "www.$url"
Ƭᴇcʜιᴇ007
fuente
0

Estoy usando esto para actualizar enlaces, podría ayudar a alguien, ya que tuve que resolver esto por mí mismo.

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