Azure使用powershell更新多个NSG规则
我想根据不断变化的IP地址列表一次更新多个NSG规则。 例如,我想更新名为ftp、ssh、https(以及其他一些)的规则。 以下是我到目前为止的情况:Azure使用powershell更新多个NSG规则,azure,powershell,security,Azure,Powershell,Security,我想根据不断变化的IP地址列表一次更新多个NSG规则。 例如,我想更新名为ftp、ssh、https(以及其他一些)的规则。 以下是我到目前为止的情况: $ips = @("10.1.1.2", "10.1.1.3", "192.168.0.0/16") $nsgName = "Dev1-nsg" $resourceGroupName = "myResourceGrp1" $nsg = Get-A
$ips = @("10.1.1.2", "10.1.1.3", "192.168.0.0/16")
$nsgName = "Dev1-nsg"
$resourceGroupName = "myResourceGrp1"
$nsg = Get-AzNetworkSecurityGroup -Name $nsgName -ResourceGroupName $resourceGroupName
Set-AzNetworkSecurityRuleConfig -Name "ftp" -NetworkSecurityGroup $nsg -SourceAddressPrefix $ips
Set-AzNetworkSecurityRuleConfig -Name "ssh" -NetworkSecurityGroup $nsg -SourceAddressPrefix $ips
Set-AzNetworkSecurityRuleConfig -Name "https" -NetworkSecurityGroup $nsg -SourceAddressPrefix $ips
Get-AzNetworkSecurityRuleConfig -Name "ftp" -NetworkSecurityGroup $nsg
Get-AzNetworkSecurityRuleConfig -Name "ssh" -NetworkSecurityGroup $nsg
Get-AzNetworkSecurityRuleConfig -Name "https" -NetworkSecurityGroup $nsg
我的问题:
$ips = @("10.1.1.2", "10.1.1.3", "192.168.0.0/16")
$nsgName = "ubun-a-nsg"
$resourceGroupName = "nancy"
$rule_names = @("NRMS-Rule-103","NRMS-Rule-104","NRMS-Rule-105")
foreach($rule_name in $rule_names)
{
$nsg = Get-AzNetworkSecurityGroup -Name $nsgName -ResourceGroupName $resourceGroupName
$rule= $nsg | Get-AzNetworkSecurityRuleConfig -Name $rule_name
Set-AzNetworkSecurityRuleConfig -NetworkSecurityGroup $nsg `
-Name $rule_name `
-Access $rule.Access `
-Protocol $rule.Protocol `
-Direction $rule.Direction `
-Priority $rule.Priority `
-SourceAddressPrefix $ips `
-SourcePortRange $rule.SourcePortRange `
-DestinationAddressPrefix $rule.DestinationAddressPrefix `
-DestinationPortRange $rule.DestinationPortRange `
-Description $rule.Description
$nsg | Set-AzNetworkSecurityGroup
}
$ips = @("10.1.1.2", "10.1.1.3", "192.168.0.0/16")
$nsgName = "ubun-a-nsg"
$resourceGroupName = "nancy"
$rule_names = @("NRMS-Rule-103","NRMS-Rule-104","NRMS-Rule-105")
foreach($rule_name in $rule_names)
{
$nsg = Get-AzNetworkSecurityGroup -Name $nsgName -ResourceGroupName $resourceGroupName
$rule= $nsg | Get-AzNetworkSecurityRuleConfig -Name $rule_name
Set-AzNetworkSecurityRuleConfig -NetworkSecurityGroup $nsg `
-Name $rule_name `
-Access $rule.Access `
-Protocol $rule.Protocol `
-Direction $rule.Direction `
-Priority $rule.Priority `
-SourceAddressPrefix $ips `
-SourcePortRange $rule.SourcePortRange `
-DestinationAddressPrefix $rule.DestinationAddressPrefix `
-DestinationPortRange $rule.DestinationPortRange `
-Description $rule.Description
$nsg | Set-AzNetworkSecurityGroup
}
是的,工作正常!测试时我遇到的唯一问题是,在包含参数[-Description$rule.Description]时,它返回了一个错误:“无法验证参数'Description'上的参数。该参数为null或空。请提供一个非null或空的参数,然后重试该命令。”但是如果我将该行注释掉,则一切正常。是的,工作正常!测试时我遇到的唯一问题是,在包含参数[-Description$rule.Description]时,它返回了一个错误:“无法验证参数‘Description’上的参数。该参数为null或空。请提供一个非null或空的参数,然后重试该命令。”但如果我注释掉该行,则一切正常。