You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过PowerShell创建Azure虚拟网络对等互连时资源ID报错如何解决

跨订阅Azure VNet对等创建失败解决方案

报错根因说明

你收到的资源标识符格式无效报错不是$coreVNetID为字符串类型导致的,Azure PowerShell命令本身接受字符串格式的资源ID,报错核心原因是获取远端VNet ID的操作没有返回合法值,要么是空值,要么是不符合规范的资源ID格式。

解决方案

方案1(推荐):无需切换订阅,直接指定订阅参数获取资源ID

Get-AzVirtualNetwork原生支持-SubscriptionId参数,可以直接跨订阅拉取VNet资源,无需来回切换订阅上下文,代码示例:

# 提前定义远端VNet所在的订阅ID
$coreSubscriptionId = "替换为远端VNet所属的订阅ID"
# 直接跨订阅获取VNet资源ID
$coreVNetID = (Get-AzVirtualNetwork -Name $coreVNet -ResourceGroupName $coreRG -SubscriptionId $coreSubscriptionId).Id
# 执行对等创建命令
Add-AzVirtualNetworkPeering -Name $peerNewVNet -VirtualNetwork $vNetObj -RemoteVirtualNetworkId $coreVNetID -UseRemoteGateways

方案2:手动切换订阅上下文操作

如果需要执行多步跨订阅操作,可以先保存当前订阅上下文,操作完成后切回原订阅,规避管道操作不支持的问题,代码示例:

# 保存当前操作的订阅ID
$currentSubId = (Get-AzContext).Subscription.Id
# 定义远端订阅ID
$coreSubscriptionId = "替换为远端VNet所属的订阅ID"

# 切换到远端订阅获取VNet ID
Select-AzSubscription -SubscriptionId $coreSubscriptionId | Out-Null
$coreVNetID = (Get-AzVirtualNetwork -Name $coreVNet -ResourceGroupName $coreRG).Id

# 切回原订阅创建对等互连
Select-AzSubscription -SubscriptionId $currentSubId | Out-Null
Add-AzVirtualNetworkPeering -Name $peerNewVNet -VirtualNetwork $vNetObj -RemoteVirtualNetworkId $coreVNetID -UseRemoteGateways

注意事项

  • 请确保当前登录的Azure账号对两个订阅都拥有至少虚拟网络参与者权限,否则会出现权限不足导致的资源拉取或创建失败
  • 正式创建对等前可执行Write-Output $coreVNetID验证返回的ID格式是否合法,合法的VNet资源ID格式应为:/subscriptions/[订阅ID]/resourceGroups/[资源组名]/providers/Microsoft.Network/virtualNetworks/[VNet名称]
  • 两个VNet的地址段不能存在重叠,否则对等互连会创建失败

内容的提问来源于stack exchange,提问作者sam.solo.works

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 02:45:05