Как я могу предоставить несколько 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")
Вы могли бы использовать это $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 `
...