我一直在尝试通过 powershell 推送 Azure NetworkSecurityGroup 规则。
使用控制台我似乎能够创建我想要的东西,但是使用 powershell 我几乎没有成功。
使用以下语法:
Get-AzureRmNetworkSecurityGroup -Name $SecGroup -ResourceGroupName $RGName
| Set-AzureRmNetworkSecurityGroup
| Add-AzureRmNetworkSecurityRuleConfig
-Name 'MSTSC'
-Direction Inbound
-Priority 100
-Access Allow
-SourceAddressPrefix 'INTERNET'
-SourcePortRange '65456'
-DestinationAddressPrefix '*'
-DestinationPortRange '3389'
-Protocol '*'
但是,如果我然后检查门户,或者做
Get-AzureRmNetworkSecurityGroup -Name $SecGroup -ResourceGroupName $RGName
新添加的规则不存在。
但是,如果我使用门户添加规则,并尝试使用我的 powershell 命令创建它,我会收到以下错误:
Add-AzureRmNetworkSecurityRuleConfig :具有指定名称的规则已存在
我错过了一些东西,但是什么?
这实际上是一个非常愚蠢的问题。
向安全组添加新规则时应采取的步骤:
Get-AzureRmNetworkSecurityGroup
Add-AzureRmNetworkSecurityRuleConfig
Set-AzureRmNetworkSecurityGroup
我缺乏理解这些步骤并且只是从互联网上复制粘贴导致了我的错误。
当它到达第二个管道时,它会设置尚未更新的安全组(所以我只是按照我拉它的方式推送该组)并给我成功消息。
之后,我
Add
在缓存中创建了新组,这是规则的本地副本,无需发布。所以正确的做法是: