データの整合性を損なうことなく、スムーズな移行を確保するために、1つのOffice 365環境から別の環境への移行には、注意深い計画と実行が必要です。この包括的なガイドでは、Office 365クロステナントメールボックス移行のステップバイステッププロセスを概説し、重要な段階を強調しています。これらの詳細な手順に従うことで、組織は移行の旅路を合理化し、日々の運用への潜在的な混乱を最小限に抑えることができます。このガイドでは、組み込みのクロステナントユーザーデータ移行ツールを使用した移行プロセスについて説明します。他のツールと同様に、その利点(サードパーティのツールの購入が不要)と欠点(パブリックフォルダの移行をサポートしない、一部のPowerShellスクリプトスキルが必要)があり、小規模および大規模企業の両方に適しています。
さて、Office 365からOffice 365への移行の方法を説明しましょう。
また、以下の記事をお読みください:ExchangeからOffice 365へのメールボックスの移行方法(ガイド)
Office 365からOffice 365への移行方法
1. Office 365からOffice 365への移行の前アセスメント
まず、次の情報を収集することを確認してください:
- Legal holdの使用。ホールドポリシーが適用されたメールボックスとOneDriveアカウントは、別のテナントに移行できません。
- アーカイブが有効なメールボックスをアーカイブします。属性一致中に(以下のアカウントの準備中に表示される)、アーカイブされたメールボックスを持つユーザーは、ソースとターゲットのテナントでExchangeGUIDおよびArchiveGUID属性が一致している必要があります。
- Send on Behalf権限の既存の委任。この権限は移行されず、移行後に再構成する必要があります。委任のリストを評価するためにPowerShellスクリプトを使用する場合は、移行後も同じ属性に変換される属性(たとえば、表示名)に識別名属性(ターゲットテナントでは使用できない)を変換する必要があります。情報を収集するために使用できるスクリプトの例は以下の通りです(実行するには、まずExchange Online PowerShellモジュールに接続してください)。
$delegatedmailboxes = get-mailbox -resultsize unlimited | ?{$_.GrantSendOnBehalfTo -ne $null} | select displayname,GrantSendOnBehalfTo
$FilePath = "C:\output\delegatee.csv" #独自のファイルパスを使用し、フォルダが存在することを確認してください
Add-Content -Value ("Delegator" + "," + "Delegatee") -Path $FilePath
foreach ($delegatedmailbox in $delegatedmailboxes) {
$delegatees = $delegatedmailbox.GrantSendOnBehalfTo
foreach ($delegatee in $delegatees) {
$delegateeName = get-mailbox $delegatee
$delegatedmailbox.Displayname + "," + $delegateeName.Displayname | out-file $FilePath -append
}
}
このスクリプトは、テナント内のSend on Behalf権限のすべての委任に関する情報を含むCSVファイルを作成します。ファイルは移行後に委任を再作成するために使用できます。CSVファイルでは、コンマが区切り文字として使用されるため、会社のユーザーのDisplayName属性にコンマが使用されている場合は、スクリプトを適切に調整してください(たとえば、タブを区切り文字として使用します)。
- 必要なアクセス許可を持っていることを確認してください。初期構成には、組織管理者ロール(組織関係の構成)およびAzure ADでアプリケーションを登録する権限(後の手順で移行アプリケーションを登録するため)が必要です。移行自体には高い特権は必要ありません。移行を行うアカウントにはメールボックスの移動権限が必要です。
- 両方のソースとターゲットのテナントに必要なライセンスがあることを確認してください。移行されるすべてのユーザーには、Microsoft 365ライセンスとクロステナントユーザーデータ移行ライセンスが必要です。移行前にクロステナントユーザーデータ移行ライセンスが割り当てられていることを確認してください。ターゲットテナントでは、Exchange OnlineライセンスがユーザーにExchangeGUID属性とプロキシアドレスが割り当てられる前に割り当てられていないことを確認してください。これは移行の失敗を引き起こします(異なるGUIDが割り当てられたメールボックスが存在するため)。
- 両方のテナントのテナントIDを取得し、メモしてください。これについてはMicrosoft 365テナントIDを見つける記事で説明されています。
また、予想される影響についてエンドユーザーに通知してください。
A note to users
2. Microsoft Entraでの移行アプリケーションの登録
ユーザーを2つのテナント間で移動させるために、対象テナントのMicrosoft Entra(MicrosoftがAzure ADを呼ぶ方法)でアプリケーションを登録し、Mailbox.Migration権限を付与する必要があります。さらに、マイグレーションエンドポイントを作成するためにシークレットの作成が必要です(マイグレーションエンドポイントは外部移行を実行するための設定と資格情報を含む構成エンティティです)。
- Microsoft Entra管理センターに移動し、アプリケーションを登録できるアカウントでログインしてください。
- アプリケーション > アプリケーションの登録に移動し、新しい登録を選択してください。
- 表示されたアプリケーションを登録ウィンドウで、名前(任意の名前で構いません)を入力し、サポートされるアカウントタイプとして組織ディレクトリ内のアカウント(Microsoft Entraディレクトリ – マルチテナント)オプションを選択し、WebリダイレクトURIとしてhttps://office.comを指定し、登録ボタンを押してください。
- 次にCertificates & secrets ページに戻り、新しいSecret IDとパスワードを確認し、将来の使用のために両方を记録してください。.
3. 次に、対象のOffice 365租户の登録アプリに管理者同意を割り当て、その後移行のエンドポイントと組織関係を作成します。
organization relationshipsはExchange Onlineで外部の関係者に内部リソースにアクセスを提供するために使用されます。この機能の最も一般的な用途はパートナー組織にカレンダー情報の読み取りアクセスを与えることで、利用可能性の状態を共有するためですが、他のアクセスタイプにも使用できます。私たちの場合、メールボックスの移動機能を提供します。
- Microsoft Entraの管理者センターでApplications > Enterprise applicationsに移動します。
- アプリケーション一覧で作成した移行アプリを選択します。
- アプリケーションページが表示され、Permissionsタブに移動して[あなたの租户名]の管理者同意を承認するを押します。
- アプリケーションページが表示されたら、アクセス許可タブに移動し、[テナント名]の管理者同意を許可する
- 新しいブラウザウィンドウが開き、許可の付与を受け入れます。
- 移行エンドポイントとターゲットテナントの組織関係を作成するには、PowerShellを開き、Exchange Onlineモジュールに接続します。
- 次に、Exchange組織が脱水状態にあるかどうかを確認します。脱水状態の場合、組織設定のカスタマイズはできません。
Get-OrganizationConfig | select isDehydrated
- 出力がFalseであれば、このステップは無視しても構いません。Trueであれば、Enable-OrganizationCustomizationコマンドレットを実行します。
- 移行エンドポイントを作成します:
$AppId = "[Application ID saved in step 2.5]"
$Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $AppId, `
(ConvertTo-SecureString -String "[secret password saved in step 2.11]" -AsPlainText -Force)
New-MigrationEndpoint -RemoteServer outlook.office.com -RemoteTenant ".onmicrosoft.com" `
-Credentials $Credential -ExchangeRemoteMove:$true -Name "MigrationEndpoint01" -ApplicationId $AppId
“<SourceDomain>.onmicrosoft.com”は、ユーザーを移行する元のドメインです。
- 組織関係を作成します(または既に存在する場合は変更します):
$sourceTenantId="[ID of the source tenant from step 1.6]"
$existingOrgRel = Get-OrganizationRelationship | ?{$_.DomainNames -like $sourceTenantId}
If ($null -ne $existingOrgRel) {
Set-OrganizationRelationship $existingOrgRel.Name -Enabled:$true -MailboxMoveEnabled:$true -MailboxMoveCapability Inbound
}
Else {
New-OrganizationRelationship "SourceTenant" -Enabled:$true -MailboxMoveEnabled:$true -MailboxMoveCapability Inbound -DomainNames $sourceTenantId
}
4. ソースMicrosoft 365テナントの準備
- 元のtenantのMicrosoft Entra管理コンソールにログインします。
- 次のURLにアクセスしてください: https://login.microsoftonline.com/<TargetTenant>.onmicrosoft.com/adminconsent?client_id=[Application ID]&redirect_uri=https://office.com。ここで、<TargetTenant>は移行先のtenantのドメイン名、Application IDは以前保存したものに置き換えてください。
- 表示されるウィンドウで、アプリケーションに権限を承认することに同意してください。
- 元のtenantのExchange Online PowerShellに接続します(同じコンピュータ上で両方のtenantを準備する場合、UserPrincipalNameパラメータで再度Connect-ExchangeOnlineを実行する必要があります)。
- 前節の3.6と3.7の手順を元のtenantで繰り返します。
- 新しいメールを有効にしたセキュリティグループを作成します。ここでは、移行するユーザーを定義します。
$UserGroup="[name of the group]" ; New-DistributionGroup -Type Security -Name $UserGroup
- 次の手順で組織の関係を作成または既存の関係を変更します。
$targetTenantId="[ID of the target tenant saved in step 1.6]"
$AppId="[Application ID]"
$existingOrgRel = Get-OrganizationRelationship | ?{$_.DomainNames -like $targetTenantId}
If ($null -ne $existingOrgRel) {
Set-OrganizationRelationship $existingOrgRel.Name -Enabled:$true -MailboxMoveEnabled:$true `
-MailboxMoveCapability RemoteOutbound -OAuthApplicationId $AppId -MailboxMovePublishedScopes $UserGroup
}
Else {
New-OrganizationRelationship "TargetTenant" -Enabled:$true -MailboxMoveEnabled:$true -DomainNames $targetTenantId `
-MailboxMoveCapability RemoteOutbound -OAuthApplicationId $AppId -MailboxMovePublishedScopes $UserGroup
}
- 3.6步驟で作成したグループに、移行するするすべてのユーザーを追加してください。嵌套グループの使用は推奨されません。
5. 目标tenantのユーザーアカウントの準備
件名を跨tenantに移動するには、目标ドメインで事前にMailUserオブジェクトを作成する必要があります。これらのオブジェクトは、源の件名の属性と一致する属性を持っていなければならず、詳細はこちらをご確認ください。EmailAddresses属性を正しく設定することを確認してください:これは、源の件名のLegacyExchangeDN属性をX500代理アドレスとして含まなければなりません。属性の一致を行う最も簡単な方法はPowerShellを使用することです。
- 源tenantのPowerShell会話で以下のスクリプトを実行して、ユーザー属性をXMLファイルにエクスポートしてください(この場合、XMLがCSVより良いのは、いくつかの属性が配列であるからです)。
$UserAttributes = "C:\output\UserAttributes.xml" #自分用のファイルパスを使用してください。フォルダーの存在を確認してください
Get-DistributionGroupMember -ResultSize Unlimited $UserGroup | ForEach-Object {Get-Mailbox $_.DisplayName}| `
Select-Object PrimarySMTPAddress,Alias,SamAccountName,FirstName,LastName,DisplayName,Name,ExchangeGuid,`
ArchiveGuid,LegacyExchangeDn,EmailAddresses | Export-Clixml $UserAttributes
- MailUserオブジェクトの作成中に、パスワードを指定します。したがって、対象のテナントPowerShellセッションでパスワード生成のためのPowerShell関数を準備します。たとえば、以下の関数は、PowerShell Galleryで利用可能なGet-RandomPassword関数に基づいて作成されています。
$symbols = '!@#$%^&*'.ToCharArray()
$characterList = @([char[]]([char]'a'..[char]'z'), [char[]]([char]'A'..[char]'Z'), [char[]]([char]'0'..[char]'9') + $symbols)
function Get-RandomPassword {
param(
[ValidateRange(12, 256)]
[int]
$length = 16
)
do {
$password = -join (0..$length | ForEach-Object { $characterList | Get-Random })
[int]$hasLowerChar = $password -cmatch '[a-z]'
[int]$hasUpperChar = $password -cmatch '[A-Z]'
[int]$hasDigit = $password -match '[0-9]'
[int]$hasSymbol = $password.IndexOfAny($symbols) -ne -1
}
until (($hasLowerChar + $hasUpperChar + $hasDigit + $hasSymbol) -ge 3)
$password | ConvertTo-SecureString -AsPlainText -Force
}
- 対象のテナントPowerShellセッションで、次のスクリプトを実行してMailUserオブジェクトを作成します。さらに、移行バッチの作成中に使用されるCSVファイルも作成されます。
$MailUsers = Import-Clixml $UserAttributes
$Organization = "@.onmicrosoft.com" #対象テナント名を使用
$CSVData = "C:\output\CSVData.csv" #独自のファイルパスを使用し、フォルダが存在することを確認
Add-Content -Value ("EmailAddress") -Path $CSVData
foreach ($MailUser in $MailUsers) {
$SMTPAddress = $MailUser.Alias + $Organization
$SMTPAddress | out-file $CSVData -append
$Password = Get-RandomPassword
$x500 = "x500:" + $MailUser.LegacyExchangeDn
$UserObject = New-MailUser -MicrosoftOnlineServicesID $SMTPAddress -PrimarySmtpAddress $SMTPAddress `
-ExternalEmailAddress $MailUser.PrimarySmtpAddress -FirstName $MailUser.FirstName -LastName $MailUser.LastName `
-Name $MailUser.Name -DisplayName $MailUser.DisplayName -Alias $MailUser.Alias -Password $Password
$UserObject | Set-MailUser -EmailAddresses @{add = $x500 } -ExchangeGuid $MailUser.ExchangeGuid -ArchiveGuid $MailUser.ArchiveGuid
$ProxyX500 = $MailUser.EmailAddresses | Where-Object { $_ -match "x500" }
$ProxyX500 | ForEach-Object { Set-MailUser $MailUser.Alias -EmailAddresses @{add = "$_" } }
}
- 対象テナントで適切なオブジェクトが作成されていることを確認したら、ユーザーにExchange Onlineライセンスを割り当てます。
- 構成を検証するには、ソーステナントPowerShellセッションから次のコマンドを実行します:
Test-MigrationServerAvailability -EndPoint "MigrationEndpoint01" -TestMailbox "[primary SMTP address of the target user mailbox]"
6. ユーザーアカウントの移動と移行の最終確認
Office 365からOffice 365へのテナント間の移行では、メールボックスは移行バッチを使用して移動されます。移行バッチは、指定されたメールボックスの場所を変更するリクエストです。バッチは、Exchange Online管理センターまたはNew-MigrationBatch PowerShellコマンドレットを使用して作成されます。
- ソーステナントのPowerShellセッションから移行バッチを作成します。以前に作成したCSVファイルへのパスが正しいことを確認してください。
New-MigrationBatch -Name Batch01 -SourceEndpoint "MigrationEndpoint01" -CSVData ([System.IO.File]::ReadAllBytes("C:\output\CSVData.csv"))`
-Autostart -TargetDeliveryDomain .onmicrosoft.com
大量のユーザーを持つバッチの使用はMicrosoftによって推奨されていません。多数のメールボックスを移動する場合は、複数のバッチを作成してください。
- バッチの移動進捗状況は、PowerShell(Get-MigrationStatisticsコマンドレットを使用)またはExchange Online管理センター(https://admin.exchange.microsoft.com/ にログインし、ホーム> 移行バッチに移動)から監視し、エラーや警告を確認してください。
- その後、以前に作成した委任情報のファイルを使用してSend on Behalf権限を再構成します。これを行うには、対象テナントのPowerShellセッションで次のコマンドを実行します。
$delegateelist = Import-Csv "C:\output\delegatee.csv"
foreach ($mailbox in $delegateelist ) {
Set-Mailbox $mailbox.Delegator -GrantSendOnBehalfTo $mailbox.delegatee)
}
すべての手順が完了したら、作成されたマイグレーションエンドポイントと組織の関係を削除してください。
また、以下を読んでください Office 365セキュリティの強化に条件付きアクセスポリシーを使用する方法
手順 – Office 365からOffice 365への移行の結論
Office 365環境間でのメールボックスの成功移行には、徹底した評価と正確な実行が必要です。このガイドでは、ITプロフェッショナルが重要な考慮事項、権限、および移行のセットアップを進めるための包括的なロードマップを提供しています。これらの手順に従うことで、組織はスムーズで効率的なメールボックスの移行プロセスを実施し、最小限のダウンタイムとデータの整合性を確保します。
Source:
https://infrasos.com/how-to-office-365-to-office-365-migration/