分享方式:


租用戶對租用戶移轉

租用戶到租用戶移轉功能可讓您將環境,從一個租用戶轉移到另一個租用戶。 此功能支援合併多個租用戶為一個、促進公司收購等情境。 環境實際上並沒有移動,而是連結到另一個租用戶。 環境仍然存在,但不再是來源租用戶的一部分。 它可在目標租用戶下存取和管理。 在此移動中沒有使用者介面變更或版本變更。

開始之前

在開始租用戶到租用戶移轉之前,請注意以下事項。

  • 支援的環境類型:僅限實際執行環境和沙箱。
  • 不支援的環境類型:不支援預設、開發人員、試用和團隊環境類型。 不支援 Government Community Cloud (GCC) 到公用雲端以及反之亦然。
  • 不支援的元件包括 Dynamics 365 Customer Voice、全通路客戶服務、元件庫、Dynamics 365 Customer Insights - Journeys 和 Dynamics 365 Customer Insights - Data。
  • 在移轉前和移轉後步驟中列出了 Power Apps、Power Automate、Power Pages 和 Microsoft Copilot Studio 所需的特定步驟。
  • 與財務和營運組織相關聯的 Dataverse 組織不能移轉到其他租用戶。
  • 您可能需要在租用戶到租用戶移轉後重新設定某些應用程式和設定,例如 Microsoft 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 都必須手動匯出。 我們不支援客戶連接器、連接或閘道的移轉。 如果您已設定上述任一元件,則必須在移轉後手動重新設定它們。

對於解決方案感知應用程式:

  1. 對於可感知解決方案的應用程式,請前往 Power Apps,導覽至解決方案頁面,然後匯出所有應用程式和解決方案。 您可以單獨匯出它們,或將它們組合到一個解決方案中 (如果尚未匯出)。

  2. 在匯出之前,請在環境中刪除這些解決方案感知應用程式。

  3. 只有透過刪除解決方案才能刪除屬於受控解決方案的應用程式。

  4. 可以使用從此環境中刪除選項來刪除非受控解決方案中的應用程式。

    重要

    移轉先前未從環境中刪除的解決方案感知畫布應用程式、自訂頁面或元件庫在移轉完成後將無法使用。

對於不具備解決方案感知功能的應用程式:

  1. 前往 Power Apps,然後選擇應用程式

  2. 對於要移動的每個應用程式,選擇更多命令,然後選擇匯出套件 (預覽版)

  3. 輸入執行應用程式匯出所需的詳細資訊,然後選擇匯出。 匯出完成後,下載開始。

    所產生的檔案包含已選取的應用程式套件。

  4. 重複上述步驟,直到所有應用程式都匯出為止。

  5. 從環境中刪除這些不支援解決方案的應用程式

管理員也可以透過完成以下步驟從管理入口網站中的清單中查看或刪除畫布應用程式。

  1. 前往 Power Platform 系統管理中心,然後從管理中選擇環境。
  2. 資源動作下,選擇 Power Apps 以檢視和刪除它們。

準備Copilot Studio

任何 Copilot Studio 聊天機器人都必須手動匯出。 在移轉期間或之後,必須手動重新設定聊天機器人的一些相依性元件。 例如,在移轉期間或之後必須手動重新設定連線、環境變數和自訂連接器。

聊天機器人具有解決方案感知功能。 前往 Power Apps,導覽至解決方案頁面,並匯出所有聊天機器人解決方案 (單獨匯出或將它們組合到一個解決方案中)。 如需進一步了解,請參閱使用解決方案匯出和匯入機器人

準備Power Pages

必須為環境中的每個網站執行以下步驟。

  1. 登入環境。
  2. 開啟系統管理中心
  3. 刪除該網站。

建立使用者對應文件

建立來源環境的使用者對應文件,以便轉移到目標環境。 必須注意的是,每個環境都需要一個單獨的對應檔。 確保使用者在原始租用戶和目標租用戶中都存在並獲得授權,因為這是成功移轉的必要條件。 只要使用者處於活躍狀態,其網域在來源和目標之間可能會有所不同。

  1. 建立一個名為 usermapping.csv 的使用者對應檔。

    注意

    檔案名稱區分大小寫。 確保記錄之間用逗號分隔,而不是分號。

  2. 準確記錄使用者的詳細資訊,包括他們的來源和目標電子郵件 ID。 確保標題前後沒有多餘的空格。 您的對應文件應類似於以下範例:

    Source 目的地
    SourceUser@sourcetenant.com DestinationUser@targettenant.com

如果是完整存取權的使用者:

  1. 存取來源環境。

  2. 使用進階尋找來尋找使用者。

  3. 選擇使用已儲存的檢視 > 完整存取權的使用者,然後選擇編輯資料行

  4. 移除完成名稱資料行之外的所有資料行。

  5. 選擇新增資料行 > Windows Live ID

  6. 選擇確定 > 結果以查看「完整存取權的使用者」清單。

  7. 選取 [所有記錄],在功能區中選取匯出使用者,然後選擇靜態工作表

  8. 如果可能,請對目的地租用戶進行上述的 1-7 步驟。 現在您應該有兩個單獨的 Excel 表:一個用於來源租用戶,一個用於目標租用戶。

  9. 開啟 Excel 文件進行編輯。

  10. 從來源 Excel 工作表開始,將 Windows Live ID 資料行底下的記錄複製到 [記事本]。 請勿複製標題。

  11. 儲存記事本檔案。

  12. 在相同記事本文件中,在對應來源 UPN 的右側輸入目標 Windows Live ID (UPN)。 請務必使用逗號 (,) 分隔來源 UPN 和目標 UPN。

    範例:

    • user001@source.comuser001@destination.com
    • user002@source.comuser002@destination.com
    • user003@source.comuser003@destination.com
  13. 將檔案儲存為 CSV 格式。

如果是管理存取使用者:

  1. 存取來源環境。
  2. 使用進階尋找來尋找使用者。
  3. 選擇使用已儲存的檢視>管理存取使用者,然後選擇結果以查看管理存取使用者清單。
  4. 如果您決定不包含任何使用者,請略過以下步驟。 否則,要將這些使用者包含在對應檔案中,請執行下列操作:
    1. 在目的地租用戶中尋找相應的使用者。
    2. 確保已向目標租用戶中的目標使用者指派有效的授權。

      注意

      如果目標使用者未指派任何授權,則移轉失敗。

    3. 儲存對應了完整存取權的使用者和管理存取使用者的 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 與目標租用戶移轉 ID 不同

查看並核准移轉請求 (目標管理員)

目標租用戶的管理員應執行以下命令以查看所有移轉請求和狀態。 管理員可以審查所有移轉請求以及核准或拒絕的選項。

Add-PowerAppsAccount

TenantToTenant-ViewApprovalRequest

TenantToTenant-ManageMigrationRequest -MigrationId {MigrationId from above command to approve or deny}

一旦請求被核准,目標租用戶的管理員可以通知來源租用戶的管理員繼續進行移轉的下一步。

產生共用存取簽章 (SAS) URL (來源管理員)

此步驟涉及建立 SAS URL,稍後用於上傳使用者對應檔案。 執行下列 PowerShell 指令,將 EnvironmentId 替換為實際環境 ID。

GenerateResourceStorage-PowerAppEnvironment –EnvironmentName {EnvironmentId}

重要

確保環境處於管理員模式,並且使用者在環境中指派了基本使用者角色。

範例輸出

Code        :
Description :
Headers     :
Error       :
Errors      :
Internal    : @{sharedAccessSignature=https://dynamics.blob.core.windows.net/20240604t000000z73e18df430fe40059290dsddc25d783?sv=2018-03-28&sr=c&si=SASpolicyXXRRRX}

上傳使用者對應檔案 (來源管理員)

下一步涉及將使用者對應檔案傳輸到先前建立的 SAS URL。 為此,請在 Windows PowerShell ISE 中執行以下命令,確保參數 SASUriFileToUpload 包含有關您環境的適當資訊。 此步驟對於在系統中準確上傳使用者的地圖至關重要。

注意

執行上述指令碼需要安裝 Azure 模組。 使用 Windows PowerShell ISE 完成以下步驟。

$SASUri ="Update the SAS Uri from previous step”
$Uri = [System.Uri] $SASUri
 
$storageAccountName = $uri.DnsSafeHost.Split(".")[0]
$container = $uri.LocalPath.Substring(1)
$sasToken = $uri.Query
 
# File to upload
# Note that the file name should be usermapping.csv (case sensitive) with comma separated values.
$fileToUpload = 'C:\filelocation\usermapping.csv'
 
# Create a storage context
$storageContext = New-AzStorageContext -StorageAccountName $storageAccountName -SasToken $sasToken
 
# Upload the file to Azure Blob Storage
Set-AzStorageBlobContent -File $fileToUpload -Container $container -Context $storageContext -Force

準備環境移轉 (來源管理員)

以下步驟涉及進行全面驗證,以確保使用者對映檔案中列出的每個使用者都經過驗證並且目前在目標租用戶內處於活動狀態。

可在來源租用戶中使用「TenantToTenant-ViewMigrationRequest」指令查看MigrationId。

TenantToTenant-PrepareMigration 
-MigrationId {MigrationId} 
-TargetTenantId {TargetTenantId} 
-ReadOnlyUserMappingFileContainerUri {SasUri}

注意

在傳遞 SASUri 值時,必須提供以下參數:https://dynamics.blob.core.windows.net/20240604t000000z73e18df430fe40059290dsddc25d783

範例輸出

Code        : 202
Description : Accepted

此步驟的持續時間取決於使用者對應檔案中的使用者數量。 您可以使用下面提供的 TenantToTenant-GetStatus 命令監控此步驟的進度。

檢查狀態 (來源管理員)

TenantToTenant-GetMigrationStatus -MigrationId {MigrationId}

範例輸出

  • 驗證租用戶到租用戶移轉:正在執行
  • 驗證租用戶到租用戶移轉:成功
  • 驗證失敗,錯誤已在此處的 Blob 上更新:SASURI

錯誤及其解決方法

  • 如果收到錯誤訊息,指出為租用戶到租用戶移轉提供的使用者對應檔案無效,請檢查使用者對應檔案名稱是否正確,以及使用者對應檔案是否有逗號分隔值。
  • 行 '{行號}'具有相同的 '{emailID}':確保沒有任何重複的項目。
  • 電子郵件格式無效 '{emailid}':請確保 testuser@tenantdomain.com 的電子郵件格式正確。
  • 行 '{linenumber}' 上的目標與來源 emailId 相同:確保目的地電子郵件來源電子郵件不同。
  • 每行必須恰好有兩個資料行:'{行號}':確保每行只有兩資料行:來源資料行和目標資料行。 刪除多餘的逗號 (如果有)。

修復使用者對應錯誤後,您需要使用相同的 SAS URI 重新上傳使用者對應檔案。

下載錯誤報告 (來源管理員)

如果使用者對應檔案中有任何錯誤,可以選擇下載錯誤報告。 這可以透過直接複製和貼上 Tenant-To-Tenant-GetMigrationStatus 命令中提供的 SasUrl 來完成,或使用以下命令,這些命令使用上一步檢查狀態中的 SAS URI 和下載錯誤報告的所需位置。

完成下列步驟。

  1. 使用 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 
    
  2. 修復使用者對應檔案中的問題。

  3. 使用[上傳使用者對應檔案 (來源管理員)](#upload-the-user-mapping-file-(source-admin) 中的步驟重新上傳檔案。

成功完成準備環境移轉 (來源管理員) 後,您可以繼續移轉環境 (來源管理員) 程序來移轉環境。 在接下來的七天內完成移轉。 如果您未在接下來的七天內完成移轉,則必須重新開始準備環境移轉 (來源管理員) 程序

移轉環境 (來源管理員)

可以在來源租用戶中使用 TenantToTenant-ViewMigrationRequest 指令查看 MigrationId

TenantToTenant-MigratePowerAppEnvironment
-MigrationId {MigrationId}
-TargetTenantId {TargetTenantId}

取得狀態 (來源管理員)

TenantToTenant-GetMigrationStatus -EnvironmentName {EnvironmentId}

範例輸出

  • 移轉環境:正在執行
  • 移轉環境:成功

注意

如果您在執行上述命令時遇到任何問題,請提交支援請求以取得協助。

移轉後程序

移動環境至其他租用戶:

  • 環境 URL、組織識別碼 (OrgID) 和名稱不會變更。
  • 來源環境沒有 Dataverse。
  • 未包含在對應檔案中的使用者將不會被移轉,也不會在移轉後進行對應。

完成 Power Automate、Power Apps、Copilot Studio、Power Pages 的以下步驟。

Power Automate 的移轉後流程

移轉完成後,請逐步檢查審查元件區段以檢查清單,以調整和啟動流程和其他元件。 關鍵步驟如下:

  1. 為所有連線參考建立連接。
  2. 啟動所有流程,包括在啟動父流程之前啟動子流程。
  3. 對於任何 HTTP 觸發的流程,擷取新的 URL 並將其放置在任何呼叫應用程式或流程中以重新整理這些參考。

Power Apps 的移轉後流程

對於解決方案感知應用程式:

  1. Power Apps 中選擇新環境,然後瀏覽至解決方案頁面。
  2. 選擇匯入,然後使用檔案選擇器選擇從上述步驟匯出的套件。
  3. 檢查移轉環境的解決方案內容,確認匯入已成功完成。

對於不具備解決方案感知功能的應用程式:

  1. 移至 Power Apps
  2. 從環境下拉式清單中選擇新環境。
  3. 選取應用程式
  4. 選取匯入畫布應用程式
  5. 下載應用程式套件檔案。
  6. 完成所有 [匯入] 選項選擇,然後選取匯入
  7. 重複上述步驟,直到所有應用程式都匯入為止。

Copilot Studio 的移轉後流程

  1. Power Apps 中選擇新環境,然後瀏覽至解決方案頁面。
  2. 選擇匯入,然後使用檔案選擇器選擇從上述步驟匯出的套件。
  3. 檢查移轉環境的解決方案內容,確認匯入已成功完成。

Power Pages 的移轉後流程

必須為環境中的每個網站完成以下步驟。

  1. 登入環境。
  2. 開啟系統管理中心
  3. 使用相同的入口網站類型和語言佈建入口網站。

完成上述所有步驟和移轉後,您可以在目標租用戶中驗證環境,稍後可以在 Power Platform 系統管理中心刪除來源環境。

常見問題

租用戶到租用戶移轉期間是否會啟用背景作業? 在租用戶到租用戶移轉期間會啟用管理模式,因此不會執行背景作業。 如需進一步了解,請參閱管理模式

我們可以移轉 Dataverse 組織的所有使用者嗎? 只有當目標租用戶中存在使用者時,我們才能移轉 Dataverse 組織的所有使用者。 例如:

user001@source.comuser001@destination.comuser002@source.comuser002@destination.com