You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

O365 TenantToTenantMigration:Azure AD用户跨租户迁移技术咨询

我来分享下在O365租户到租户迁移场景中,处理Azure AD内部用户、外部用户迁移的实操方案——这些都是我在实际项目里验证过的可行方法,帮你避开常见的坑:

一、Azure AD内部用户迁移方案

方法1:微软官方跨租户迁移工具(最省心)

这是微软专门针对租户到租户迁移推出的工具,支持批量迁移用户及关联数据(邮箱、OneDrive等):

  • 第一步:在两个租户间建立双向跨租户信任。登录Azure AD门户,进入「外部标识」>「跨租户访问设置」,分别在新旧租户中配置允许对方的用户迁移和资源访问权限。
  • 第二步:创建迁移批次。打开Microsoft 365 admin中心,进入「用户」>「迁移」>「跨租户迁移」,新建批次并选择要迁移的用户,同时配置邮箱、OneDrive等数据的同步规则。
  • 第三步:执行渐进式迁移。先跑增量同步确保用户最新数据同步到新租户,确认无误后完成最终迁移,引导用户切换到新租户的登录入口。
  • 收尾:迁移完成后,旧租户的用户账号可以暂时保留作为归档,等确认所有业务都切换到新租户后再清理。

方法2:PowerShell批量迁移(适合自定义需求)

如果需要更灵活的控制(比如自定义用户属性映射),可以用Azure AD PowerShell模块手动操作:

  1. 导出旧租户用户列表:
Connect-AzureAD -TenantId "旧租户ID"
Get-AzureADUser -All $true | Select-Object UserPrincipalName, DisplayName, Mail | Export-Csv -Path "OldTenantUsers.csv" -NoTypeInformation
  1. 在新租户批量创建用户:
Connect-AzureAD -TenantId "新租户ID"
$users = Import-Csv -Path "OldTenantUsers.csv"
foreach ($user in $users) {
    New-AzureADUser -UserPrincipalName $user.UserPrincipalName -DisplayName $user.DisplayName -Mail $user.Mail -AccountEnabled $true
}
  1. 后续单独迁移用户的邮箱、OneDrive数据,比如用Exchange Online PowerShell的邮箱迁移命令。
二、迁移操作会导致旧租户停机吗?

完全不会。租户到租户的迁移是渐进式、非破坏性的:

  • 迁移期间,旧租户的用户可以正常登录、使用所有O365服务,没有任何中断。
  • 你可以分批次迁移:先迁几个测试用户验证流程,再逐步覆盖正式用户,风险可控。
  • 只有当你主动将用户的登录入口切换到新租户后,用户才会使用新身份;旧租户的账号可以保留一段时间作为备份,直到确认迁移100%成功再删除。
三、外部用户迁移并保留原有权限

外部用户本质是Azure AD B2B协作用户,迁移时要同时搞定身份创建和权限恢复,步骤如下:

1. 导出旧租户的外部用户及权限信息

  • 先导出外部用户列表:
Connect-AzureAD -TenantId "旧租户ID"
Get-AzureADUser -Filter "UserType eq 'Guest'" | Select-Object UserPrincipalName, DisplayName, Mail | Export-Csv -Path "OldTenantGuests.csv" -NoTypeInformation
  • 再导出他们的权限(比如SharePoint、Teams的权限),以SharePoint为例:
Connect-SPOService -Url "https://旧租户.sharepoint.com"
Get-SPOSite -Limit All | ForEach-Object {
    Get-SPOUser -Site $_.Url | Where-Object { $_.UserType -eq "Guest" } | Select-Object DisplayName, LoginName, Roles, SiteUrl | Export-Csv -Path "GuestPermissions.csv" -Append -NoTypeInformation
}

2. 在新租户创建外部用户

批量邀请外部用户加入新租户:

Connect-AzureAD -TenantId "新租户ID"
$guests = Import-Csv -Path "OldTenantGuests.csv"
foreach ($guest in $guests) {
    New-AzureADMSInvitation -InvitedUserEmailAddress $guest.Mail -InvitedUserDisplayName $guest.DisplayName -SendInvitationMessage $true -InviteRedirectUrl "https://my.microsoft.com"
}

3. 恢复原有权限

根据之前导出的权限列表,在新租户对应的资源中为外部用户分配相同权限。比如SharePoint的权限恢复:

Connect-SPOService -Url "https://新租户.sharepoint.com"
$permissions = Import-Csv -Path "GuestPermissions.csv"
foreach ($perm in $permissions) {
    Add-SPOUser -Site $perm.SiteUrl -LoginName $perm.LoginName -Group $perm.Roles
}

如果是Teams权限,可以用Microsoft Teams PowerShell模块的Add-TeamUser命令分配对应角色。

额外提示

  • 对于大量外部用户或复杂权限场景,建议用第三方迁移工具(如ShareGate、Metalogix)自动化权限迁移,减少手动操作的误差。
  • 迁移完成后,记得通知外部用户使用新租户的资源链接,旧租户的外部用户权限可以在确认无误后撤销。

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

火山引擎 最新活动