使用az network vnet subnet list获取子网后无法循环删除虚拟网络子网
解决无法循环获取子网并删除的问题
问题出在az network vnet subnet list的返回值处理上:Azure CLI默认输出JSON字符串,而非PowerShell可直接操作的对象,所以你直接调用$subnets.name无法获取到子网名称。
修正后的代码如下:
$rg = "xxxx" $vnet = "dddd" # 将JSON输出转换为PowerShell对象集合 $subnets = az network vnet subnet list --resource-group $rg --vnet-name $vnet | ConvertFrom-Json foreach ($subnet in $subnets) { $subnetName = $subnet.name Write-Host "正在删除子网: $subnetName" az network vnet subnet delete --name $subnetName --resource-group $rg --vnet-name $vnet }
关键说明:
- 使用
ConvertFrom-Json将Azure CLI返回的JSON字符串转换成PowerShell对象,这样就能通过$subnet.name访问子网名称。 - 循环时直接遍历转换后的对象集合,逐个取出子网名称执行删除操作。
- 注意:子网删除操作不可逆,请确认资源组和虚拟网络名称无误后再执行。
内容的提问来源于stack exchange,提问作者learner
相关产品推荐
相关产品推荐

