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

修改PowerShell脚本:仅迁移租户根组内特定配额ID的Azure订阅

修改后的Azure订阅迁移脚本

脚本功能

仅将**属于租户根管理组(Tenant Root Group)**且拥有指定配额ID的Azure订阅,迁移至目标管理组;已处于其他管理组的订阅将被直接忽略。

修改后代码

Connect-AzAccount

# 配置核心参数
$targetManagementGroupId = "Target Management Group"
$targetQuotaId = "MSDN_2014-09-01"

# 获取租户根管理组ID
$rootManagementGroup = Get-AzManagementGroup -GroupName "/"
$rootMgmtGroupId = $rootManagementGroup.Id

# 获取当前租户下所有订阅
$subscriptions = Get-AzSubscription

foreach ($subscription in $subscriptions) {
    # 提取订阅的配额ID信息
    $subscriptionDetails = Get-AzSubscription -SubscriptionId $subscription.Id | Select-Object -ExpandProperty ExtendedProperties
    $quotaId = $subscriptionDetails.SubscriptionPolices | ConvertFrom-Json | Select-Object -ExpandProperty quotaId

    # 仅处理符合条件的订阅:配额ID精确匹配 + 当前处于根管理组
    if ($quotaId -eq $targetQuotaId -and $subscription.ManagementGroupId -eq $rootMgmtGroupId) {
        try {
            # 执行迁移操作
            New-AzManagementGroupSubscription -GroupId $targetManagementGroupId -SubscriptionId $subscription.Id
            Write-Host "订阅 '$($subscription.Name)' 已成功迁移至管理组 '$targetManagementGroupId'."
        } catch {
            Write-Error "处理订阅 '$($subscription.Name)' 时出错: $($_.Exception.Message)"
        }
    } else {
        # 输出明确的跳过原因
        if ($quotaId -ne $targetQuotaId) {
            Write-Host "跳过订阅 '$($subscription.Name)': 配额ID不匹配."
        } else {
            Write-Host "跳过订阅 '$($subscription.Name)': 未处于租户根管理组."
        }
    }
}

关键修改说明

  • 新增根组识别逻辑:通过Get-AzManagementGroup -GroupName "/"精准获取租户根管理组ID,确保只筛选处于根组的订阅
  • 简化判断条件:仅保留「配额ID精确匹配」和「当前属于根管理组」两个核心判断,直接排除所有已在其他管理组的订阅
  • 细化提示信息:针对不同跳过场景输出明确原因,便于快速排查问题
  • 参数化配置:将目标配额ID设为独立变量,后续调整无需修改核心逻辑

内容的提问来源于stack exchange,提问作者Jayrokie

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 13:42:33