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
答案1
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
或者,在创建站点后,你可以使用新 Web 绑定命令。例如:
New-WebBinding -Name $iisAppName -IPAddress "*" -Port 80 -HostHeader "www.$url"
答案2
我正在使用它来更新绑定,它可能会帮助某些人,因为我必须自己解决这个问题。
$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"
}
}
}
答案3
使用 New-WebBinding cmdlet 向现有网站添加新绑定
New-WebBinding -名称 $web -IP地址“*” -端口 80 -协议 http -HostHeader $Website -sslflags
http://dotnet-helpers.com/powershell/add-binding-to-iis-powershell