如何使用PowerShell为一组具有增量值的IIS网站设置绑定端口号?

时间:2017-06-01 13:00:56

标签: loops powershell iis

我有一个包含许多网站的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个网站。我是以错误的方式解决这个问题吗?

1 个答案:

答案 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++
}