Как я могу предоставить несколько IP-адресов в одном правиле, используя AzureRm PowerShell?

Я могу успешно настроить одно правило в моей группе безопасности сети с помощью следующего кода для одного исходного IP-адреса ($SourceAddressPrefix="x.x.x.x"):

Set-AzureRmNetworkSecurityRuleConfig  
    -NetworkSecurityGroup $nsg 
    -Name $name 
    -Direction Inbound  
    -Priority $priority 
    -Access Allow  
    -SourceAddressPrefix $sourcePrefix 
    -SourcePortRange *  
    -DestinationAddressPrefix * 
    -DestinationPortRange $destinationPortRange 
    -Protocol TCP 
 | Set-AzureRmNetworkSecurityGroup

Я хотел бы настроить это единственное правило для нескольких IP-адресов, но когда я предоставляю $SourceAddressPrefix="x.x.x.x, y.y.y.y" (так же, как в интерактивном режиме на портале Azure), я получил следующую ошибку:

"... имеет недопустимый префикс адреса. Предоставленное значение: xxxx, yyyy"

Вопрос

Как я могу предоставить несколько IP-адресов в одном правиле так же, как я могу сделать это на портале Azure?

3 ответа

Решение

Вам нужно дать ему массив значений (потому что он ожидает System.Collections.Generic.List1[System.String]):

@("x.x.x.x", "y.y.y.y")

https://docs.microsoft.com/en-us/powershell/module/azurerm.network/set-azurermnetworksecurityruleconfig?view=azurermps-6.13.0

Вы могли бы использовать это $sourcePrefix = "x.x.x.x","y.y.y.y", Это работает на моей стороне.

$nsg = Get-AzureRmNetworkSecurityGroup -ResourceGroupName "xxx" -Name "xxx"
$name = "port_1433"
$priority = 600
$sourcePrefix = "1.1.1.1","2.2.2.2"
$destinationPortRange ="1433"
Set-AzureRmNetworkSecurityRuleConfig -NetworkSecurityGroup $nsg  -Name $name `
    -Direction Inbound  `
    -Priority $priority `
    -Access Allow  `
    -SourceAddressPrefix $sourcePrefix `
    -SourcePortRange *  `
    -DestinationAddressPrefix * `
    -DestinationPortRange $destinationPortRange `
    -Protocol TCP 
$nsg | Set-AzureRmNetworkSecurityGroup

Если кому-то это тоже нужно и у него есть строка IP-адресов, например OP, вы можете сделать следующее, чтобы разделить ее пробелами на массив.

      $ips = '1.2.3.4 6.5.4.3 4.6.8.9'
$ipsSplit = $ips.Split(" ")
... 
-SourceAddressPrefix $ipsSplit `
...
Другие вопросы по тегам