我得到了下面的代码,它工作正常,但是我检查是否找到vnet配对的方式有点错误。
这就是代码的样子。
$existing_peering = az network vnet peering show -g 'xx' -n 'ccc' --vnet-name 'ccc'
if ($existing_peering) {
write-output 'Peering exists'
}
$existing_peering
的输出如下。
{
"allowForwardedTraffic": true,
"allowGatewayTransit": true,
"allowVirtualNetworkAccess": true,
"doNotVerifyRemoteGateways": false,
"etag": "W/\"xxxxxx\"",
"id": "/subscriptions/fdfd",
"name": "xxxx",
"peeringState": "Disconnected",
"peeringSyncLevel": "FullyInSync",
"provisioningState": "Succeeded",
"remoteAddressSpace": {
"addressPrefixes": [
"10.77.0.0/16"
]
},
"remoteBgpCommunities": null,
"remoteVirtualNetwork": {
"id": "/subscriptions/",
"resourceGroup": "my-rg"
},
"remoteVirtualNetworkAddressSpace": {
"addressPrefixes": [
"10.77.0.0/16"
]
},
"remoteVirtualNetworkEncryption": null,
"resourceGroup": "cccc",
"resourceGuid": "ggggggggggg",
"type": "Microsoft.Network/virtualNetworks/virtualNetworkPeerings",
"useRemoteGateways": false
}
我想得到name
的值和if语句的求值方式,我不确定这是否是正确的方法,有时我发现如果AZ找不到对象,if $existing_peering
的值可能是一个错误消息,而不是预期的返回对象,当IF
语句求值时,它可能做了错误的事情。
1条答案
按热度按时间xcitsw881#
我已经创建了虚拟网络和对等的vnet与名称
vnet1-vnet2
如下:要获取
name
的值,您可以使用以下命令:或者像 Abraham Zinala 建议的那样,你可以使用
ConvertFrom-Json
通过修改如下脚本将其转换为对象:输出: