我有一个包含许多网站的IIS后端服务器。我刚刚使用PowerShell创建了这些网站。我需要将每个网站的绑定端口设置为代理的唯一编号(从9200开始)。我试图找到一种方法来编写这个,但我很难找到解决这个问题的方法。目前我在一个文本文件中有一个网站列表,我想为其设置绑定端口。现在这就是我所拥有的:
$myServer = "name of server"
$IIS = [Microsoft.Web.Administration.ServerManager]::OpenRemote($myServer)
foreach ($pool in $IIS.ApplicationPools)
{
$pool.ManagedRuntimeVersion
}
我有第一个foreach循环的原因是从9200-9310获得端口号,因为我总共有110个网站。我是以错误的方式解决这个问题吗?
答案 0 :(得分:0)
问题似乎是你的两个foreach
循环。您的第二个foreach
循环包含端口号。因此,您的第一个循环从$number = 9200
开始,然后将EACH $site
设置为等于当时$number
变量中保存的端口,然后退出该循环并递增端口号并再次启动
我想出的是我认为可以解决你的问题。
Import-Module WebAdministration
$endpoints = Get-Content C:\scripts\endpoints.txt
$ports = New-Object System.Collections.ArrayList
[int] $port = 9200
[int] $counter = 0
while($port -le 9310) {
$ports.Add($port)
$port++
}
foreach ($site in $endpoints)
{
Set-WebBinding -Name '$site' -BindingInformation "*:80:" -PropertyName Port -Value $ports[$counter]
$counter++
}