azure 在订阅上下文中设置变量

azure 在订阅上下文中设置变量

我正在尝试使用 编写 powershell 脚本(Az latest)现有的 vnet 对等配置add-azvirtualnetworkpeering。这两个 vnet 位于不同的订阅中。看来我必须为virtualnetworkremotenetwork开关使用一个变量。我可以将我的订阅上下文设置为 1 并应用get-azvirtualnetwork将其分配给$vnet1,然后将上下文切换到另一个订阅上下文并分配第二个值。但是当我运行命令(从任一订阅上下文)时,它给了$vnet2add-azvirtualnetworkpeering找不到与参数“virtualnetwork”或“remotenetwork”匹配的参数取决于我所处的环境。参见此处的示例 2https://docs.microsoft.com/en-us/powershell/module/az.network/add-azvirtualnetworkpeering?view=azps-1.6.0除了 RG 已经创建,并且我使用 代替 ,get-azvirtualnetwork因为new-azvirtualnetwork它们已经存在。代码如下所示:

PS C:\>set-azcontext (get-azsubscription -subscriptionname "1")
PS C:\>$vnet1 = get-azvirtualnetwork -name "vnet1"
PS C:\>set-azcontext (get-azsubscription -subscriptionname "2")
PS C:\>$vnet2 = get-azvirtualnetwork -name "vnet2"
PS C:\>add-azvirtualnetworkpeering -name "vnet1tovnet2" -virtualnetwork $vnet1 -remotenetwork $vnet2.id -AllowForwardedTraffic

我收到此错误:

Add-AzVirtualNetworkPeering : A parameter cannot be found that matches parameter name 'remotenetwork'.
At line:1 char:99
+ ... vnet1tovnet2" -virtualnetwork $vnetfrom -remotenetwork $vnet2 ...
+                                                    ~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Add-AzVirtualNetworkPeering], ParameterBindingException
    + FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.Azure.Commands.Network.AddAzureVirtualNetworkPeeringCommand

答案1

如果您的 vNet 位于同一个租户中,那么使用 set-azcontext 就太过分了,只需使用 select-azsubscription 来更改您正在使用的订阅,这不会影响您的任何变量。

但是,你的参数也是错误的。请查看文档添加 azvirtualnetworkpeering参数是 VirtualNetwork 和远程虚拟网络 ID

相关内容