複数のバインディングを備えたPowerShellからIISでWebサイトを作成する


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

バインディングを更新するためにこれを使用しているので、自分でこれを理解する必要があったため、誰かを助けることができるかもしれません。

$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.