无需设置Az上下文,通过指定资源组获取对应订阅ID
多订阅环境下无需切换上下文获取资源组所属订阅ID
直接通过遍历租户内所有订阅,结合Get-AzResourceGroup的-Subscription参数指定订阅查询,无需切换全局上下文即可找到目标资源组对应的订阅信息,具体脚本如下:
# 定义目标资源组名称 $resourceGroupName = "abcd" # 遍历所有订阅,查询目标资源组所在订阅 $targetSubInfo = Get-AzSubscription | ForEach-Object { $subId = $_.Id try { # 指定订阅ID查询资源组,不存在则抛出异常 Get-AzResourceGroup -Name $resourceGroupName -Subscription $subId -ErrorAction Stop | Out-Null # 找到后返回订阅ID和名称 [PSCustomObject]@{ 资源组名称 = $resourceGroupName 订阅ID = $subId 订阅名称 = $_.Name } } catch { # 资源组不在当前订阅,跳过 continue } } # 输出结果 $targetSubInfo
说明
Get-AzSubscription会获取当前租户下所有你有权限访问的订阅Get-AzResourceGroup的-Subscription参数允许直接指定订阅ID查询资源组,全程无需修改全局上下文- 脚本通过异常捕获跳过不存在目标资源组的订阅,最终返回所有包含该资源组的订阅信息
内容的提问来源于stack exchange,提问作者MarwanE
相关产品推荐
相关产品推荐

