租户到租户迁移功能允许您将环境从一个租户转移到另一个租户。 此功能支持将多个租户合并为一个租户并促进公司收购等方案。 环境实际上并没有移动,而是链接到另一个租户。 环境仍然存在,但不再是源租户的一部分。 它可以在目标租户下访问和管理。 在此迁移中,不会出现用户界面变化或版本变更。
赛前须知
在开始租户到租户迁移之前,请注意以下事项。
备注
将来,托管环境将支持租户到租户迁移。
- 支持的环境类型:仅支持生产和沙盒环境。
- 不支持的环境类型:不支持默认、开发人员、试用和 Teams 环境。 政府社区云(GCC)与公有云之间的交互不受支持。
- 不支持以下组件:Dynamics 365 Customer Voice、Customer Service 全渠道、组件库、Dynamics 365 Customer Insights - Journeys 和 Dynamics 365 Customer Insights - Data。
- 迁移前和迁移后步骤中列出了 Power Apps、Power Automate、Power Pages 和 Microsoft Copilot Studio 所需的具体步骤。
- 链接到财务和运营组织的 Dataverse 组织不能迁移到其他租户。
- 您可能需要在租户间迁移后重新配置一些应用程序和设置,如 Dynamics 365 for Outlook、服务器端同步、SharePoint 等。
- 创建和配置用户后,必须创建用户映射文件,本文稍后将对此进行介绍。
- 如果映射的用户在目标租户中有邮箱,在迁移过程中会自动配置该邮箱。 对于所有其他用户,需要重新配置邮箱。
- 如果目标租户
test@microsoft.com使用了相同的邮箱,则默认使用该邮箱。 在租户到租户迁移之前,客户需要在目标租户上迁移和配置邮箱。 - 如果您使用的是默认的 onmicrosoft 域 (
test@sourcecompanyname.onmicrosoft.com),迁移后的域名将更改为test@targetcompanyname.onmicrosoft.com。 客户需要重新配置邮箱。 在连接到 Exchange Online 中了解有关配置邮箱的更多信息。
- 如果目标租户
必备条件
在开始迁移过程之前,请务必满足以下先决条件:
- 在目标租户中创建用户,包括:
- 在 Microsoft 365 和 Microsoft Entra ID 中创建用户。
- 分配许可证。
- 您必须具有 Power Platform 或 Dynamics 365 的管理员权限才能执行迁移。
- 面向 Power Platform 管理员的 PowerShell 模块是用于与管理员功能交互的推荐 PowerShell 模块。 了解更多信息,请参阅面向 Power Platform 管理员的 PowerShell 入门。
准备过程
迁移前,为 Power Automate、Power Apps、Copilot Studio 和 Power Pages 完成以下过程。 还必须创建用户映射文件。
准备 Power Automate
如果您的流已在 Dataverse 中定义,则无需额外工作。
任何应该迁移的 Power Automate 流都需要在源环境中将其定义添加到 Dataverse 解决方案中。 更多信息请参阅将现有云端流添加到解决方案中。 可以通过运行 Add-AdminFlowsToSolution cmdlet 来批量添加。
准备 Power Apps
任何 Power Apps 都必须手动导出。 我们不支持客户连接器、连接或网关的迁移。 如果您设置了这些组件中的任何一个,则必须在迁移后手动重新配置它们。
对于解决方案感知应用
对于解决方案感知应用,转到 Power Apps,导航到解决方案页面,然后导出所有应用和解决方案。 您可以单独导出它们,也可以将它们组合到一个解决方案中(如果尚未导出)。
导出后删除环境中的这些解决方案感知应用。
属于托管解决方案的应用只能通过删除解决方案来删除。
可以使用从此环节中删除选项,删除未托管解决方案中的应用程序。
重要提示
迁移之前未从环境中删除的解决方案感知画布应用、自定义页面或组件库在迁移完成后不起作用。
对于非解决方案感知应用程序
转到 Power Apps,然后选择应用。
对于要移动的每个应用,选择更多命令,然后选择导出包(预览版)。
填写执行应用导出所需的详细信息,然后选择导出。 导出完成后,将开始下载。
所生成的文件包含选定的应用包。
重复上述步骤,直到所有应用全部导出。
从环境中删除这些非解决方案感知应用程序
管理员还可以通过完成以下步骤,从管理门户的列表中查看或删除画布应用程序。
- 转到 Power Platform 管理中心,然后从管理选择环境。
- 在资源操作下,选择 Power Apps 查看并将其删除。
准备 Copilot Studio
任何 Copilot Studio 聊天机器人都必须手动导出。 在迁移期间或之后,必须手动重新配置聊天机器人的某些相关组件。 例如,必须在迁移期间或迁移后手动重新配置连接、环境变量和自定义连接器。
聊天机器人可识别解决方案。 转到 Power Apps,导航到解决方案页面,然后导出所有聊天机器人解决方案,单个导出或将它们组合为一个解决方案。 更多信息,请参阅使用解决方案导出和导入机器人。
准备 Power Pages
必须为环境中的每个网站完成以下步骤:
创建用户映射文件
为要传输到目标环境的源环境创建用户映射文件。 请务必注意,每个环境都需要一个单独的映射文件。 请确保用户在原始租户和目标租户中都存在并获得授权,因为这是成功迁移所必需的。 用户的域可能因源和目标而异,前提是它们处于活动状态。
创建名为 usermapping.csv的用户映射文件。
备注
文件名区分大小写。 确保记录用逗号分隔,而不是分号。
准确记录用户的详细信息,包括其源和目标电子邮件 ID。 确保标题前后没有多余的空格。 映射文件应如下所示:
Source 目标 SourceUser@sourcetenant.comDestinationUser@targettenant.com
对于完全访问权限用户
访问源环境。
使用高级查找查找用户。
选择使用保存的视图>完全访问权限用户,然后选择编辑列。
删除全名之外的所有列。
选择添加列>Windows Live ID。
选择确定>结果查看完全访问权限用户的列表。
选择所有记录,在功能区中选择导出用户,然后选择静态工作表。
如有可能,请对目标租户执行上面的步骤 1 到 7。 您现在应该有两个单独的 Excel 工作表 - 一个用于源,一个用于目标租户。
打开 Excel 文件进行编辑。
从源 Excel 工作表开始,将 Windows Live ID 列下的记录复制到记事本中。 不要复制标头。
保存记事本文件。
在相应源 UPN 右侧的同一记事本文档中输入目标 Windows Live ID(UPN)。 请务必用逗号(,)分隔源 UPN 和目标 UPN。
示例:
-
user001@source.com、user001@destination.com -
user002@source.com、user002@destination.com -
user003@source.com、user003@destination.com
-
保存为 CSV 文件。
对于管理员访问权限用户
- 访问源环境。
- 使用高级查找查找用户。
- 选择使用保存的视图>管理员访问权限用户,然后选择结果查看管理员访问权限用户的列表。
- 如果您决定不包括这些用户的任何一个,请跳过以下步骤。 否则,要在映射文件中包含这些用户,请执行以下操作:
在目标租户中找到相应的用户。
确保为目标租户中的目标用户分配了有效的许可证。
备注
如果没有为目标用户分配任何许可证,迁移将失败。
保存映射了完全访问权限用户和管理员访问权限用户的 CSV 文件。
迁移
在继续迁移之前,确保查看并完成准备流程。 完成准备过程后,请完成以下部分进行迁移。
为 Power Platform 管理员(源管理员和目标管理员)安装 PowerShell
面向 Power Platform 管理员的 PowerShell 模块是用于与管理员功能交互的推荐 PowerShell 模块。 有关帮助您开始使用面向 Power Platform 管理员的 PowerShell 模块的信息,请转到面向 Power Platform 管理员的 PowerShell 入门和安装面向 Power Platform 管理员的 PowerShell。
使用以下命令之一安装或更新必要的模块:
Install-Module -Name Microsoft.PowerApps.Administration.PowerShell
Update-Module -Name Microsoft.PowerApps.Administration.PowerShell
在 Windows 上安装 Azure PowerShell(源管理员和目标管理员)
Azure PowerShell 模块是一个汇总模块。 安装 Azure PowerShell 模块将下载正式发布的模块,并使其 cmdlet 可供使用。 更多信息,请参阅在 Windows 上安装 Azure PowerShell。
使用 Install-Module cmdlet 安装 Azure PowerShell 模块:
Install-Module -Name Az -Repository PSGallery -Force
登录 Microsoft Power Platform(源管理员和目标管理员)
登录 Microsoft Power Platform。 此步骤允许管理员验证和访问 Power Platform 环境。
Add-PowerAppsAccount
提交迁移请求(源管理员)
要启动租户到租户的迁移,源租户的 Dynamics 365 或 Power Platform 管理员必须使用以下命令向目标租户提交请求,并提供环境名称 ID 和租户 ID。
您必须具有 Power Platform 管理员或 Dynamics 365 管理员凭据才能完成此步骤。
TenantToTenant-SubmitMigrationRequest –EnvironmentName {EnvironmentId} -TargetTenantID {TenantID}
使用以下命令可以查看状态和 MigrationID:
TenantToTenant-ViewMigrationRequest
备注
记录 MigrationID,该 ID 将用于进一步的迁移命令。 源租户 MigrationID 与目标租户 MigrationID 不同。
查看和批准迁移请求(目标管理员)
目标租户的管理员应运行以下命令来查看所有迁移请求和状态。 管理员可以查看所有迁移请求以及批准或拒绝的选项。
Add-PowerAppsAccount
TenantToTenant-ViewApprovalRequest
TenantToTenant-ManageMigrationRequest -MigrationId {MigrationId from above command to approve or deny}
请求获得批准后,目标租户的管理员可以通知源租户的管理员继续执行下一步的迁移。
上传用户映射文件(源管理员)
此步骤涉及创建 SAS URL,稍后将用于上传用户映射文件。 运行以下 PowerShell 命令,将 EnvironmentId 替换为实际环境 ID,将 FileLocation 替换为实际文件位置。
备注
在传递 FileLocation 值时,必须提供包含用户映射文件名称 (usermapping.csv) 的参数:C:\Filelocation\usermapping.csv。
TenantToTenant-UploadUserMappingFile –EnvironmentName {EnvironmentId} -UserMappingFilePath {FileLocation}
务必复制命令返回的只读 UserMapping 文件 ContainerUri 的值。 此 SAS URI 作为 -ReadOnlyUserMappingFileContainerUri 参数在 TenantToTenant-PrepareMigration 命令中是必需的。
准备环境迁移(源管理)
以下步骤涉及进行全方位的验证,以确保用户映射文件中列出的每个用户均已验证并在目标租户中处于活跃状态。
可以使用源租户中的“TenantToTenant-ViewMigrationRequest”命令查看 MigrationId。
TenantToTenant-PrepareMigration
-MigrationId {MigrationId}
-TargetTenantId {TargetTenantId}
-ReadOnlyUserMappingFileContainerUri {SasUri}
备注
SASUri 的值必须从 TenantToTenant-UploadUserMappingFile 命令的输出中获取。
示例输出
Code : 202
Description : Accepted
此步骤的持续时间因用户映射文件中的用户数而异。 您可以使用下面提供的 TenantToTenant-GetStatus 命令监控此步骤的进度。
检查状态(源管理员)
TenantToTenant-GetMigrationStatus -MigrationId {MigrationId}
示例输出
- 验证租户到租户迁移:正在运行
- 验证租户到租户迁移:已成功
- 验证失败,错误信息在此处的 blob 上更新:SASURI
错误以及如何解决它们
- 如果收到错误信息,显示为租户到租户迁移提供的用户映射文件无效,请检查用户映射文件名是否正确,并确保用户映射文件中具有逗号来分隔各个值。
- 行“{行号}”具有相同的“{电子邮件 ID}”:请确保没有任何重复条目。
-
无效的电子邮件格式“{email ID}”:请确保电子邮件格式正确
testuser@tenantdomain.com。 - 行“{行号}”上的目标与源电子邮件 ID 相同:确保 目标电子邮件 与 源电子邮件不同。
- 每一行必须正好有两列:“{行号}”:确保每一行只有两列:来源列和目的地列。 删除所有多余的逗号。
修复用户映射错误后,需要使用相同的 SAS URI 重新加载用户映射文件。
下载错误报告(源管理员)
如果用户映射文件中存在任何错误,可以选择下载错误报告。 要做到这一点,可以直接复制并粘贴 Tenant-To-Tenant-GetMigrationStatus 命令中提供的 SasUrl 到您的网络浏览器,或者使用以下命令,使用上一步检查状态中的 SAS URI 以及下载错误报告的所需位置。
完成以下步骤:
使用 Windows PowerShell ISE 运行以下命令。
Import-Module Az.Storage # Define the SAS URI of the blob $sasUri = " Update the SAS Uri from previous step " # Define the path where the blob will be downloaded $destinationPath = "C:\Downloads\Failed\" # Split the SAS URI on the '?' character to separate the URL and the SAS token $url, $sasToken = $sasUri -split '\?', 2 $containerName = $url.Split('/')[3] $storageAccountName = $url.Split('/')[2].Split('.')[0] $storageContext = New-AzStorageContext -StorageAccountName $storageAccountName -SasToken $sasToken Get-AzStorageBlobContent -Blob "usermapping.csv" -Container $containerName -Destination $destinationPath -Context $storageContext修复用户映射文件中的问题。
使用上传用户映射文件(源管理员)中的步骤重新上传文件。
成功完成 准备环境迁移(源管理员)后,可以继续 执行迁移环境(源管理员) 过程来迁移环境。 在接下来的 7 天内执行迁移。 如果在接下来的七天内没有完成迁移,则必须重新启动准备环境迁移(源管理员)程序。
迁移环境(源管理)
可以在源租户中使用 TenantToTenant-ViewMigrationRequest 命令查看 MigrationId。
TenantToTenant-MigratePowerAppEnvironment
-MigrationId {MigrationId}
-TargetTenantId {TargetTenantId}
-SecurityGroupId {SecurityGroupId}
获取状态(源管理员)
TenantToTenant-GetMigrationStatus -MigrationId {MigrationId}
示例输出
- 迁移环境:运行
- 迁移环境:成功
备注
如果在运行上述命令时遇到任何问题,请提交支持请求以获得帮助。
迁移后流程
将环境移动到另一个租户后:
- 环境 URL、组织 ID (OrgID) 和名称不会改变。
- 源环境没有 Dataverse。
- 映射文件中不包含的用户在迁移后不会迁移和映射。
为 Power Automate、Power Apps、Copilot Studio 和 Power Pages 完成以下过程。
Power Automate 的迁移后过程
迁移完成后,查看导入的组件并执行以下步骤,确保流和其他资产正常工作:
- 为所有连接引用创建或映射连接。
- 在目标环境中打开解决方案。
- 导航到连接引用,然后重新对每个引用进行身份验证或将每个引用链接到现有连接。
- 启用所有流。
- 导入的流默认处于关闭状态。
- 在启用调用它们的父流之前,请先启动任何子流,以避免错误。
- 更新 HTTP 触发器 URL。
- HTTP 触发的流会在导入后生成新的 URL。
- 更新任何调用应用、父流或外部系统以使用新 URL。
Power Apps 的迁移后过程
对于解决方案感知应用
- 从 Power Apps 中选择新环境并导航到解决方案页面。
- 选择导入,使用文件选择器选择从上述步骤导出的软件包。
- 通过检查迁移环境的解决方案内容,确认导入已成功完成。
对于非解决方案感知应用程序
- 转到 Power Apps。
- 从环境下拉列表中选择新环境。
- 选择应用程序。
- 选择导入画布应用。
- 上载应用包文件。
- 完成所有选择的导入选项,然后选择导入。
- 重复上述步骤,直到所有应用全部导入。
Copilot Studio 的迁移后过程
- 从 Power Apps 中选择新环境并导航到解决方案页面。
- 选择导入,使用文件选择器选择从上述步骤导出的软件包。
- 通过检查迁移环境的解决方案内容,确认导入已成功完成。
Power Pages 的迁移后过程
必须为环境中的每个网站完成以下步骤。
- 登录到环境。
- 打开管理中心。
- 使用相同的门户类型和语言配置网站。
完成上述所有步骤和迁移后,可以验证目标租户中的环境。 之后,可以在 Power Platform 管理中心删除源环境。
常见问题解答
租户间迁移期间是否启用后台操作?
在租户间迁移期间将启用管理模式,因此后台操作不会运行。 了解更多信息,请参阅管理模式。
是否可以迁移 Dataverse 组织的所有用户?
只有在目标环境中存在用户时,我们才能迁移 Dataverse 组织的所有用户。 例如:
user001@source.com、user001@destination.com
user002@source.com、user002@destination.com
支持哪些环境进行迁移?
仅支持生产环境和沙箱环境。 默认环境、开发环境、试用环境和 Teams 环境不支持。
环境是否会在物理上移动到新租户?
号码 环境保持在原地,但 Dataverse 组织将被移动到目标租户。 它不再是源租户的一部分,将在目标租户的新环境中进行管理。
是否有不完全受支持的组件?
在开始了解哪些组件受支持以及哪些组件不受支持 之前 ,请了解详细信息。
邮箱配置会发生什么情况?
如果映射的用户(在用户映射文件中提及)在目标租户中具有邮箱,则会自动配置该邮箱。 否则,需要手动重新配置。
如何启动迁移?
源租户的 Dynamics 365 或 Power Platform 管理员必须使用 PowerShell 命令提交请求,并提供环境名称、ID 和租户 ID。 请参阅上面的命令。
是否有自助式 UI 选项?
否,目前我们不支持通过 Power Platform 管理中心 UI 进行租户到租户的迁移。 它只能通过 PowerShell 来完成。