テナント間の移行
テナント間移行機能を使用すると、あるテナントから別のテナントに環境を転送できます。 この機能は、複数のテナントを 1 つに統合し、会社の買収を容易にするなどのシナリオをサポートします。 環境は実際に移動するのではなく、別のテナントにリンクされます。 環境は存在しますが、ソース テナントの一部ではなくなります。 アクセスは可能で、移動先のテナントの下で管理されます。 この移行の一環として、ユーザー インターフェイスの変更またはバージョンの変更はありません。
開始する前に
テナント間の移行を開始する前に、次の注意事項に注意してください。
- サポートされている環境の種類: 運用環境とサンドボックスのみ。
- サポートされていない環境の種類: 既定、開発者、試用版、Teams の環境はサポートされていません。 Government Community Cloud (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 組織は、別のテナントに移行できません。
- テナントからテナントに移行後、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 管理者特権が必要です。
- PowerShell for Power Platform Administrators モジュールは、管理者機能と対話するための推奨される PowerShell モジュールです。 詳細については、Power Platform 管理者向けの PowerShell の使用を開始するを参照してください。
移行のプロセス
移行前に Power Automate、 Power Apps、 Copilot Studio、Power Pages に関する次の手順を完了してください。 また、ユーザー・マッピング・ファイルも作成する必要があります。
準備 Power Automate
フローが既に Dataverse で定義されている場合、追加の作業は必要ありません。
移行する必要がある Power Automate のフローは、その定義を移行元環境の Dataverse のソリューションに追加する必要があります。 詳しくは、既存のクラウド フローをソリューションに追加するを参照ください。 これは、Add-AdminFlowsToSolution のコマンドレットを実行することで一括で実行できます。
準備 Power Apps
Power Apps は、手動でエクスポートする必要があります。 お客様のコネクタ、コネクション、ゲートウェイの移行はサポートいたしません。 これらのコンポーネントのいずれかを設定している場合は、移行後に手動で再構成する必要があります。
ソリューション対応アプリの場合:
ソリューション対応アプリの場合は、Power Apps に移動し、ソリューション ページに移動して、すべてのアプリとソリューションをエクスポートします。 これらを個別にエクスポートすることも、1 つのソリューションにグループ化することもできます (まだエクスポートされていない場合)。
これらのソリューション対応アプリは、エクスポート後に環境内で削除してください。
マネージド ソリューションに属するアプリは、ソリューションを削除することによってのみ削除できます。
アンマネージド ソリューション内のアプリは、この環境から削除する オプションを使用して削除できます。
重要
移行前に環境から削除しなかったソリューション対応のキャンバス アプリ、カスタム ページ、またはコンポーネント ライブラリは、移行の完了後に機能しなくなります。
ソリューションに対応していないアプリの場合:
Power Apps に移動してから、アプリを選択します。
移動するアプリごとに、その他のコマンドを選択し、次にパッケージのエクスポート (プレビュー) を選択します。
アプリのエクスポートを実行するために必要な詳細を入力し、エクスポートを選択します。 エクスポートが完了すると、ダウンロードが開始します。
結果のファイルには、選択されたアプリ パッケージが含まれています。
すべてのアプリがエクスポートされるまで、これらの手順を繰り返します。
これらの非ソリューション対応アプリを環境から削除します
管理者は、次の手順を実行して、管理ポータルのリストから キャンバス アプリを表示または削除することもできます。
- Power Platform 管理センター に移動し、管理から環境を選択します。
- リソースアクション で、Power Apps を選択して表示し、削除します。
準備 Copilot Studio
どの Copilot Studio チャットボットも、手動でエクスポートする必要があります。 チャットボットの一部の依存コンポーネントは、移行中または移行後に手動で再構成する必要があります。 たとえば、接続、環境変数、カスタム コネクタは、移行中または移行後に手動で再設定する必要があります。
チャットボットはソリューションに対応しています。 Power Apps にアクセスして、ソリューション ページに移動し、すべてのチャットボットのソリューションを個別に、またはひとつのソリューションにまとめてエクスポートすることができます。 詳細は、ソリューションを使用してボットをエクスポート、インポートするを参照してください。
準備 Power Pages
次の手順は、環境内の Web サイトごとに実行する必要があります。
ユーザー マッピング ファイルの作成
ターゲット環境に転送するソース環境のユーザー マッピング ファイルを作成します。 各環境には個別のマッピング ファイルが必要であることに注意することが重要です。 移行を成功させるにはこれが必要であるため、移行元のテナントと移行先テナントの両方にユーザーが存在し、承認されていることを確認してください。 ユーザーのドメインは、アクティブであれば、ソースとターゲットで異なる場合があります。
usermapping.csv という名前のユーザー マッピング ファイルを作成します。
ヒント
ファイル名は大文字と小文字が区別されます。 レコードはセミコロンではなくコンマで区切ってください。
送信元と送信先の電子メール ID など、ユーザーの詳細を正確に記録します。 ヘッダーの前後に余分なスペースがないことを確認してください。 マッピング ファイルは、次の例のようになります:
Source Destination SourceUser@sourcetenant.com
DestinationUser@targettenant.com
フル アクセスを持つユーザーの場合:
ソース環境にアクセスします。
高度な検索 を使用してユーザーを検索します。
保存されたビューを使用する>フル アクセス ユーザーを選択してから、列の編集を選択します。
姓名列を除くすべての列を削除します。
列の追加 > Windows Live ID を選択します。
OK > 結果を選択して、フル アクセス ユーザーのリストを表示します。
すべてのレコードを選択し、リボンでユーザーのエクスポートを選択してから、静的ワークシート を選択します。
移行先テナントについては、可能であれば上記の手順 1〜7 に従ってください。 以上で、ソーステナント用とターゲットテナント用の 2 つの Excel シートができました。
編集する Excel ファイルを開きます。
ソース Excel シートから始めて、Windows Live ID 列下のレコードをメモ帳へコピーします。 ヘッダーはコピーしないでください。
メモ帳ファイルを保存します。
同じメモ帳ドキュメントで、対応するソース UPN の右側に宛先の Windows Live ID (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 (ソース管理者とターゲット管理者の両方) をインストールする
PowerShell for Power Platform Administrators モジュールは、管理者機能と対話するための推奨される 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 モジュールをインストールすると、一般公開されているモジュールがダウンロードされ、そのコマンドレットを使用できるようになります。 詳細については、Windows に Azure PowerShell をインストールする を参照してください。
Install-Module コマンドレットを使用して、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 を記録します。 移行元テナントの MigrationID が移行先テナントの MigrationID と異なる
移行要求の表示と承認 (ターゲット管理者)
移行先テナントの管理者は、次のコマンドを実行して、すべての移行要求と状態を確認する必要があります。 管理者は、すべての移行要求と、承認または拒否するオプションを確認できます。
Add-PowerAppsAccount
TenantToTenant-ViewApprovalRequest
TenantToTenant-ManageMigrationRequest -MigrationId {MigrationId from above command to approve or deny}
要求が承認されると、移行先テナントの管理者は移行元テナントの管理者に、移行の次のステップに進むように通知できます。
Shared Access Signature (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 で以下のコマンドを実行し、パラメーター SASUri と FileToUpload に環境に関する適切な情報が含まれていることを確認します。 このステップは、ユーザーのマッピングをシステムに正確にアップロードするために重要です。
ヒント
上記のスクリプトを実行するには、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
環境の移行を準備する (ソース管理者)
次の手順では、包括的な検証を実行して、ユーザー マッピング ファイルに一覧表示されているすべてのユーザーが検証され、ターゲット テナント内で現在アクティブであることを確認します。
MigrationId は、ソース テナントで "TenantToTenant-ViewMigrationRequest" コマンドを使用して表示できます。
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 と同じです: 宛先メール が ソースメールと異なることを確認してください。
- 各行には 2 つの列が必要です: '{行番号}': 各行にソース列とターゲット列の 2 つの列のみがあることを確認します。 余分なコンマがある場合は削除します。
ユーザー・マッピング・エラーを修正した後、同じ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
ユーザー マッピング ファイルの問題を修正します。
[ユーザー マッピング ファイルのアップロード (ソース管理者)](#upload-the-user-mapping-file-(source-admin) の手順でファイルを再アップロードします。
環境移行の準備 (ソース管理者) を正常に完了したら、環境の移行 (ソース管理者)の手順に進み、環境を移行できます。 今後 7 日以内に移行を実行してください。 今後 7 日以内に移行を完了しない場合は、環境移行の準備 (ソース管理者) 手順から再度開始する必要があります。
環境を移行する (ソース管理者)
MigrationId は、ソース テナントで TenantToTenant-ViewMigrationRequest コマンドを使用して表示できます。
TenantToTenant-MigratePowerAppEnvironment
-MigrationId {MigrationId}
-TargetTenantId {TargetTenantId}
状態の取得 (ソース管理者)
TenantToTenant-GetMigrationStatus -EnvironmentName {EnvironmentId}
サンプル出力
- 環境の移行: 実行中
- 環境の移行: 成功
ヒント
上記のコマンドの実行中に問題が発生した場合は、サポート リクエストを送信してサポートを受けてください。
移行後のプロセス
環境を別のテナントに移動した後。
- 環境 URL、組織 ID (OrgID)、および名前は変更されません。
- ソース環境には Dataverse がありません。
- マッピング ファイルに含まれていないユーザーは、移行されず、移行後にマッピングされません。
Power Automate、Power Apps、Copilot Studio、Power Pages については、次の手順を実行します。
Power Automate の移行後のプロセス
移行が完了したら、チェックリストとしてコンポーネントのレビューのセクションに進み、フローやその他のコンポーネントを調整し、有効化します。 主要なステップは次の通りです:
- すべての接続参照に対して接続を作成します。
- 親フローの前に子フローを開始することを含め、すべてのフローを開始します。
- HTTP によってトリガーされるフローの場合は、新しい URL を取得し、それを呼び出し元のアプリまたはフローに配置して、それらの参照を更新します。
Power Apps の移行後のプロセス
ソリューション対応アプリの場合:
- Power Apps から新しい環境を選択して、ソリューション ページに移動します。
- インポートを選択して、ファイル セレクターで上記の手順でエクスポートされたパッケージを選択します。
- 移行した環境のソリューションの内容を確認して、インポートが正常に完了したことを確認します。
ソリューションに対応していないアプリの場合:
- Power Apps に移動します。
- 環境ドロップダウン リストから新しい環境を選びます。
- アプリを選択します。
- キャンバス アプリをインポートします。
- アプリ パッケージ ファイルをアップロードします。
- すべてのインポート オプションの選択を完了してから、インポートを選択します。
- すべてのアプリがインポートされるまで、これらの手順を繰り返します。
Copilot Studio の移行後のプロセス
- Power Apps から新しい環境を選択して、ソリューション ページに移動します。
- インポートを選択して、ファイル セレクターで上記の手順でエクスポートされたパッケージを選択します。
- 移行した環境のソリューションの内容を確認して、インポートが正常に完了したことを確認します。
Power Pages の移行後のプロセス
環境内の Web サイトごとに次の手順を完了する必要があります。
- 環境にサインインします。
- 管理センターを開きます。
- 同じポータル タイプと言語で Web サイトをプロビジョニングします。
上記のすべての手順と移行を完了した後、ターゲット テナントで環境を検証し、後で Power Platform 管理センターでソース環境を削除できます。
よく寄せられる質問
テナントからテナントへの移行中にバックグラウンド操作が有効になっていますか? 管理モードはテナントからテナントへの移行中に有効になるため、バックグラウンド操作は実行されません。 詳細情報については、管理モードを参照してください。
Dataverse 組織のすべてのユーザーを移行できますか? ユーザーが移行先テナントに存在する場合にのみ、Dataverse 組織のすべてのユーザーを移行できます。 例:
user001@source.com
、user001@destination.com
user002@source.com
、user002@destination.com