メールボックスを 1 つの Microsoft 365 または Office 365 組織から別の組織へ移行する方法

重要

2022 年 12 月から、従来の Exchange 管理 センターは世界中のお客様向けに非推奨になります。 Microsoft では、まだ使用していない場合は、新しい Exchange 管理 センターを使用することをお勧めします。

ほとんどの機能は新しい EAC に移行されていますが、一部の機能は他の管理センターに移行され、残りの機能は間もなく新しい EAC に移行されます。 新しい EAC にまだ存在しない機能は、 その他の機能 で検索するか、グローバル検索を使用して、新しい EAC 間を移動するのに役立ちます。

注:

この記事では、サードパーティの移行ツールを使用した移行について詳しくは、こちらの記事をご覧ください。 テナント間メールボックスの移行にファースト パーティの移行オプションを使用することに関心があり、Microsoft とEnterprise Agreementがある場合は、「テナント間メールボックスの移行」のプロセスを確認できます。 この製品を使用するにはアドオン ライセンスが必要であり、EA 経由でのみ購入できます。

この記事では、メールボックスとサービス設定を 1 つの Microsoft 365 またはOffice 365 organizationから別の Microsoft 365 またはビジネス合併シナリオのOffice 365 organizationに移行する方法について説明します。 移行するユーザーが 500 人を超える場合、または大量の SharePoint データがある場合は、 Microsoft ソリューション プロバイダーと連携することをお勧めします。

この記事のシナリオは、2 つの個別のOffice 365組織を使用する 2 つの架空の企業 (Contoso.com と Fabrikam.com) に基づいています。 Contoso は Fabrikam を購入し、Fabrikam ユーザーとデータを contoso.com Office 365 organizationに移動しています。

ドメイン テナント 1 (ターゲット) テナント 2 (ソース)
ユーザー定義の電子メール ドメイン: contoso.com fabrikam.com
Office 365 の初期ドメイン: contoso.onmicrosoft.com fabrikam.onmicrosoft.com

シナリオ: サードパーティの移行ツールを使って移行する

このシナリオでは、Fabrikam Company のユーザー、グループ、およびその他のオブジェクトが、Office 365で手動で作成され、スクリプトを介してポータルにインポートされるか、Active Directory Domain Services (AD DS) 統合によって Contoso Active Directory にマージされることを前提としています。

完了すると、すべての Fabrikam アカウントが Contoso.com Office 365 organizationに存在し、すべて UPN に使用@fabrikam.comされます。 最終的なアドレス指定スキームは、わかりやすく簡潔にするために選択されましたが、要件を満たすように変更できます。

メールボックスを 1 つの Microsoft 365 または Office 365 組織から別の組織へ移行させる方法。

計画作成: 移行の 2 週間前

ユーザーを移行するためのサードパーティ移行ツールを使う場合は、移行に必要なライセンスを購入します。

クライアントの考慮事項

Outlook 2010 以降の場合は、Outlook ユーザー プロファイルを削除し、もう一度作成する必要があります。

Outlook 2007 と Outlook 2010 の場合、クライアントを再起動するときに自動検出によってクライアントが構成され、 が再構築されます。OST ファイル。

Skype for Business クライアントの場合、移行が完了したら、プロセスによって新しいプロファイルが作成されるため、連絡先を追加する必要があります。

テナントの準備とライセンス

ソース テナントは、ユーザーとデータを移行する Fabrikam Office 365 organizationです。 ターゲット テナントは、移行先の Contoso Office 365 organizationです。

  1. 移行元テナントから移行するすべてのメールボックスに対応するために、ターゲット Office 365 organizationでライセンスを増やします。

  2. Office 365から別のOffice 365に移行するためのソース テナントとターゲット テナントに管理者アカウントを作成します。 一部の移行ツールでは、データのスループットを最適化するために、移行元テナントに複数の管理者アカウントを作成することが必要になります。

ターゲット テナントにおけるルーム、リソース、配布グループ、およびユーザー オブジェクトの作成

ターゲット (Contoso) テナントのリソースを作成するには:

  1. Microsoft Entra Connect ツールを使用して Contoso Active Directory Domain Services (AD DS) のすべてのオブジェクトを同期する場合は、統合を通じてソース (Fabrikam) テナント AD DS のオブジェクトをターゲット テナント (Contoso) AD DS に作成する必要があります。

    1. AD DS 統合を実行するには、さまざまな AD DS ツールが使用されます。 統合には、移行プロジェクトの前に完了するオブジェクトの数に応じて、追加の時間と計画が必要になる場合があります。

    2. ディレクトリ同期を使って、すべての新しいユーザーとグループが Contoso.com 移行先テナントと同期していることを確認します。 Fabrikam ドメインは現時点では移動されていないため、オブジェクトは新しいテナントのように表示されます user@contoso.onmicrosoft.com 。 ユーザーとグループのプライマリ メール アドレスは、ドメインの移動が完了した後に に@fabrikam.com更新できます。

  2. ディレクトリ同期が使用されていない場合、またはソース テナントのMicrosoft 365 管理センターで会議室、リソース、グループ、またはユーザーが管理されている場合は、これらのオブジェクトをターゲット テナントに作成する必要があります。 オブジェクトは、Microsoft 365 管理センターで手動で作成することも、大きな数値の場合は、Microsoft 365 管理センターの一括追加機能を使用するか、Windows PowerShellを使用して CSV ファイルをインポートできます。

エンドユーザーとのコミュニケーション

組織内のエンドユーザーに移行を連絡するには:

  1. コミュニケーション計画を作成し、予定されている移行とサービスの変更についてユーザーに通知を始めます。

  2. 移行後、すべての Outlook クライアントでオートコンプリート リスト (ニックネーム キャッシュとも呼ばれます) をクリアする必要があります。 Outlook 2010 以降のオートコンプリート リストからすべての受信者を削除するには、「オートコンプリートを利用した宛先、Cc、Bcc ボックスの入力候補表示を管理する」を参照してください。

  3. 移行後に問題が発生した場合に備えて、新しいサインオン情報を使用してOutlook on the web (旧称 Outlook Web App) に接続する方法をユーザーに認識してもらいます。

準備と移行前のアクティビティ: 移行の 3 日前

ドメインの準備

移行用にドメインを準備するには、次の手順を実行します。

  1. Fabrikam.com メール ドメインのターゲット (Contoso) テナントでドメイン検証プロセスを開始します。

  2. contoso.com Microsoft 365 管理センターで、Fabrikam.com ドメインを追加して、ドメイン ネーム システム (DNS) で検証用 TXT レコードを作成します。

    注:

    ドメインが他のテナントによって引き続き使用されているため、検証は失敗します。

    この手順を実行すると、DNS レコードの時間が伝達できるようになり、最大 72 時間かかることがあります。 最終的な検証は、プロセスの後半で行われます。

移行のスケジュール設定

移行のスケジュールを設定するには:

  1. 移行するユーザー メールボックスのメイン一覧を作成します。

  2. 使用しているサード パーティの移行ツールのメールボックス マッピング .CSV ファイルを作成します。 このマッピング ファイルは、移行が発生したときに移行元メールボックスとターゲット テナント メールボックスを照合するために移行ツールによって使用されます。 カスタム電子メール ドメインは絶えず変化しているため、ソース アカウントのマッピングには *.onmicrosoft.com 'initial' ドメインを使用することをお勧めします

1 つの Office 365 組織から別の組織にメールボックスのデータを移行するために使用される CSV ファイル。

メール エクスチェンジャー レコード (MX レコード) の Time To Live (TTL) テスト

次に、TTL テストをスケジュールします。

  1. DNS で、転送するプライマリ メール ドメインの MX レコードの TTL 値を少数 (つまり 5 分) に変更します。 TTL を 5 分に下げることができない場合は、最小値を書き留めます。 たとえば、最小値が 4 時間の場合、移行が開始される 4 時間前に MX レコードを変更する必要があります。

  2. Mx Lookup を使用して、MX と DNS の変更を確認できます。

ソース テナントでディレクトリ同期を無効にする

ソース テナント Microsoft 365 管理センターで、ディレクトリ同期を無効にします。このプロセスには 24 時間以上かかる場合があるため、移行前に実行する必要があります。 ポータルで無効化された後、ソース テナント AD DS に対するいかなる変更も Office 365 組織に同期されなくなります。 既存のユーザーとグループのプロビジョニング プロセスを適宜調整します。

移行: 移行当日

これらは、移行を実行する日に必要な手順です。

MX レコードの変更 - 受信メール フローの停止

プライマリ MX レコードを Office 365 から到達できないドメイン ("unreachable.example.com" に変更します。 新しいメール キューを配信しようとしているインターネット メール サーバーは、メールをキューに入れ、24 時間再配信を試みます。 この方法を使用すると、サーバーが電子メールを配信しようとしている場合に応じて、一部の電子メールから配信不能レポート (NDR) が返される場合があります。 これが問題の場合は、MX レコード バックアップ サービスを使用します。 メールを数日または数週間キューに入れるサード パーティのサービスは多数あります。 移行が完了すると、これらのサービスはキューに登録されたメールを新しいOffice 365 organizationに配信します。

ヒント

TTL が短い場合は (5 分など)、大きな中断を引き起こさないようにするため、この手順を稼働日の終了時に実行することができます。 TTL が大きい場合は、TTL の有効期限が切れるように MX レコードを事前に変更する必要があります。 たとえば、午後 6 時に移行を開始する予定の場合は、午後 2 時より前に 4 時間の TTL を変更する必要があります。

必要な場合は、MX と DNS の変更を確認してください。 MX と DNS の変更を確認するには、Nslookup または MxToolbox などのサービスを使用できます。

ソース テナントの準備

ドメインをターゲット テナントに移動する前に、ソース テナントのすべてのオブジェクトからプライマリ メール ドメイン (fabrikam.com) が削除されている必要があります。

  1. SharePoint Online パブリック Web サイトを使用してドメインを設定した場合、ドメインを削除する前に、最初に Web サイトの URL を初期ドメインに戻す必要があります。

  2. Lync 管理ポータルを使用して、ソース テナント内のユーザーからすべての Lync ライセンスを削除します。 これにより、Fabrikam.com に接続されている Lync Sip アドレスが削除されます。

  3. Office 365 のソース メールボックスにある既定の電子メール アドレスを、初期ドメイン (fabrikam.onmicrosoft.com) にリセットします。

  4. すべての配布リスト、会議室、リソースの既定のメール アドレスを、ソース テナントの初期ドメイン (fabrikam.onmicrosoft.com) にリセットします。

  5. をまだ使用 @fabrikam.comしているユーザー オブジェクトから、すべてのセカンダリ メール (プロキシ アドレス) を削除します。

  6. ソース テナントの既定のドメインをルーティング ドメイン fabrikam.onmicrosoft.com に設定します (管理ポータルで、右上隅にある会社名を選択します)。

  7. Microsoft Graph PowerShell コマンド Get-MgUser -All | Where-Object {$_.UserPrincipalName -like "*Fabrikam.com"} を使用して、ドメインを引き続き使用し、削除をブロックしているすべてのオブジェクトの一覧を取得します。

  8. よくあるドメイン削除の問題については、「Office 365 からドメインを削除するとエラー メッセージが表示される 」を参照してください。

ターゲット テナントの準備

contoso.com テナントで、Fabrikam.com ドメインの確認を完了します。 古いテナントからドメインを削除した後、場合によっては 1 時間待機する必要があります。

  1. 自動検出 CNAME (内部/外部) をオプションで構成します。

  2. AD FS を使用している場合は、AD FS のターゲット テナントで新しいドメインを構成します。

  3. contoso.com テナントでメールボックスのアクティベーションを開始します。>すべての新しいユーザー アカウントにライセンスを割り当てます。

  4. Fabrikam.com メール ドメインを新しいユーザーのプライマリ アドレスとして設定します。 これを行うには、ポータルでライセンスのない複数のユーザーを選択または編集するか、Windows PowerShellを使用します。

  5. パスワード ハッシュ同期機能、パススルー認証、または AD FS を使用していない場合は、ターゲット (Contoso) テナント内のすべてのメールボックスにパスワードを設定します。 共通パスワードを使用していない場合は、新しいパスワードをユーザーに通知します。

  6. メールボックスにライセンスが付与されてアクティブ化されたら、メール ルーティングを切り替えます。 Fabrikam MX レコードを Office 365 ターゲット (Contoso) テナントにポイントします。 MX TTL の有効期限が切れると、メールが新しい空のメールボックスに流れ込み始めます。 MX バックアップ サービスを使用している場合は、メールを新しいメールボックスにリリースできます。

  7. ターゲット テナントで、新しいメールボックスにおける送受信のメール フローの検証テストを実行します。

  8. Exchange Online Protection (EOP) を使用している場合: ターゲット テナントで、ソース テナントからメール フロー ルール (トランスポート ルールとも呼ばれます)、コネクタ、ブロックリスト、許可リストなどを再作成します。

移行の開始

ダウンタイムとユーザーの不便を最小限に抑えるために、最適な移行方法を決定します。

  • ユーザー数が 500 人以下の場合: ターゲット テナントのメールボックスにメール、予定表、連絡先データを移行します。 可能であれば、メールの移行を日付で制限します。たとえば、過去 6 か月間のデータなどです。

  • 500 人以上のユーザーの移行: すべてのユーザーに対して連絡先、予定表、および 1 週間のメールのみを移行し、成功した日または数週間に複数のパスを実行して古いメール データをメールボックスに入力するマルチパス アプローチを使用します。

サードパーティの移行ツールでメールの移行を開始します。

  1. ベンダーから提供されたツールを使用して、移行の進捗を監視します。 管理と移行チームへの移行中に定期的な進行状況レポートを送信します。

  2. すべての移行が完了した後、2 番目または 3 番目のパスの移行を行います (省略可能)。

移行の終了時に、Outlook 2007 と 2010 はユーザーごとにメールボックス全体を同期し、各メールボックスに移行したデータの量に応じてかなりの帯域幅を消費します。 Outlook 2013 では、既定では 12 か月分のデータのみがキャッシュされます。 この設定は、多かれ少なかれデータに構成できます。たとえば、3 か月分のデータのみであり、帯域幅の使用量を減らすことができます。

移行後: クリーンアップ

移行された電子メール メッセージに返信するときに、ユーザーが NDR を受信する場合があります。 Outlook オートコンプリートリスト (ニックネームキャッシュとも呼ばれる) は、クリアする必要があります。 Outlook 2010 以降のオートコンプリート リストからすべての受信者を削除するには、「オートコンプリートを利用した宛先、Cc、Bcc ボックスの入力候補表示を管理する」を参照してください。 あるいは、すべてのユーザーに従来の DN を x.500 プロキシ アドレスとして追加します。

サンプル Windows PowerShell スクリプト

独自のスクリプトを作成するための足掛かりとして、以下のサンプル Windows PowerShell スクリプトをご利用ください。

Office 365 一括パスワード リセット

  1. password.csv という名前の CSV ファイルを作成します。

  2. このファイルに "upn" 列と "newpassword" 列を挿入します (例: johnsmith@contoso.com、Password1)

  3. 次の Windows PowerShell コマンドを使用します:

    Import-Csv password.csv| |%{Reset-MgUserAuthenticationMethodPassword -UserId $_.upn -AuthenticationMethodId "28c10230-6103-485e-b985-444c60001490" -NewPassword $_.newpassword}
    

ヒント

パラメーター -AuthenticationMethodId 値 (例: "28c10230-6103-485e-b985-444c60001490" を取得するには、Microsoft Graph PowerShell コマンド を使用します Get-MgUserAuthenticationPasswordMethod -UserId user@Fabrikam.com認証方法の詳細については、こちらを参照してください

特定のプロキシ アドレスを持つすべての Office 365 アカウントを CSV ファイルにコピーする

##########################################################################
# Script: showproxies.ps1
# Copies all accounts in Microsoft 365 that contain/don't contain a specific
# proxyaddress to a .CSV file (addresses.csv)
#
# Change the following variable to the proxy address string you want to find:
# $proxyaddr = "onmicrosoft.com"
################################################################################
$proxyaddr = "onmicrosoft.com"
# Create an object to hold the results
$addresses = @()
# Get every mailbox in the Exchange Organization
$Mailboxes = Get-Mailbox -ResultSize Unlimited
# Loop through the mailboxes
ForEach ($mbx in $Mailboxes) {
    # Loop through every address assigned to the mailbox
    Foreach ($address in $mbx.EmailAddresses) {
       # If it contains XXX,  Record it
        if ($address.ToString().ToLower().contains($proxyaddr)) {
            # This is an email address. Add it to the list
            $obj = "" | Select-Object Alias,EmailAddress
            $obj.Alias = $mbx.Alias
            $obj.EmailAddress = $address.ToString() #.SubString(10)
            $addresses += $obj
      }
    }
}
# Export the final object to a csv in the working directory

$addresses | Export-Csv addresses.csv -NoTypeInformation
# Open the csv with the default handler
Invoke-Item addresses.csv

##### END OF SHOWPROXIES.PS1

Microsoft 365 で会議室メールボックスを一括作成する

注:

  • 次のスクリプトを実行する前に、Exchange Online PowerShell モジュールをインストールする必要があります。 手順については、「Exchange Online PowerShell モジュールのインストールと保守」を参照してください。 モジュールでは、先進認証が使用されます。

  • Microsoft 365 または Microsoft 365 GCC 組織の場合は、通常、スクリプト as-is を使用できます。 Office 365 Germany、Microsoft 365 GCC High、または Microsoft 365 DoD 組織の場合、スクリプトの Connect-ExchangeOnline 行を編集する必要があります。 具体的には、ExchangeEnvironmentName パラメーターと、所属組織の種類に適した値を使用する必要があります。 詳細については、「Exchange Online PowerShell に接続する」を参照してください。

################################################################################
# Script: create-rooms.ps1
# Description:*** RUN THIS SCRIPT FROM A WINDOWS POWERSHELL SESSION ***
# This script creates room mailboxes in Microsoft 365.
# Syntax:Create-Rooms.ps1 -InputFile "file name.csv"
#
# Dependencies: Input file should contain 3 columns: RoomName, RoomSMTPAddress, RoomCapacity
#
################################################################################
param( $inputFile )
Function Usage
{
$strScriptFileName = ($MyInvocation.ScriptName).substring(($MyInvocation.ScriptName).lastindexofany("\") + 1).ToString()
@"
NAME:
$strScriptFileName
EXAMPLE:
C:\PS> .\$strScriptFileName -InputFile `"file name.csv`"
"@
}
If (-not $InputFile) {Usage;Exit}

If ($ExchRemoteCmdlets.State -ne "Opened")
{
Write-Host
Write-Host Connecting to Exchange Online PowerShell...
Write-Host
Import-Module ExchangeOnlineManagement
Connect-ExchangeOnline
$Global:ExchRemoteCmdlets = Get-PSSession -Name ExchangeOnlineInternalSession*
}
# Import the CSV file in Exchange Online
$csv = Import-CSV $inputfile
# Create Rooms contained in the CSV file in Exchange Online
$csv | foreach-object{
New-Mailbox -Name $_.RoomName -Room -PrimarySmtpAddress $_.RoomSMTPAddress -ResourceCapacity $_.RoomCapacity
}
##### END OF CREATE-ROOMS.PS1

セカンダリ メール アドレスをメールボックスから一括削除する

注:

  • 次のスクリプトを実行する前に、Exchange Online PowerShell モジュールをインストールする必要があります。 手順については、「Exchange Online PowerShell モジュールのインストールと保守」を参照してください。 モジュールでは、先進認証が使用されます。

  • Microsoft 365 または Microsoft 365 GCC 組織の場合は、通常、スクリプト as-is を使用できます。 Office 365 Germany、Microsoft 365 GCC High、または Microsoft 365 DoD 組織の場合、スクリプトの Connect-ExchangeOnline 行を編集する必要があります。 具体的には、ExchangeEnvironmentName パラメーターと、所属組織の種類に適した値を使用する必要があります。 詳細については、「Exchange Online PowerShell に接続する」を参照してください。

##########################################################################
#      Script:  remove-proxy.ps1
# Description:*** RUN THIS SCRIPT FROM A WINDOWS POWERSHELL SESSION ***
# This script will remove a secondary email address from many users
#
# Syntax:remove-proxy.ps1 -InputFile "filename.csv"
#
# Dependencies:Input file should contain 2 columns: Username, Emailsuffix
#               Example:  Username=tim, Emailsuffix=fabrikam.com
# Script will remove the address tim@fabrikam.com from the mailbox for Tim.
# NOTE: Address must be secondary; it will not remove primary email address.
#
################################################################################
param( $inputFile )
Function Usage
{
$strScriptFileName = ($MyInvocation.ScriptName).substring(($MyInvocation.ScriptName).lastindexofany
("\") + 1).ToString()
@"
NAME:
$strScriptFileName
EXAMPLE:
C:\PS> .\$strScriptFileName -inputfile `"file name.csv`"
"@
}
If (-not $inputFile) {Usage;Exit}

If ($ExchRemoteCmdlets.State -ne "Opened")
{
Write-Host
Write-Host Connecting to Exchange Online PowerShell...
Write-Host
Import-Module ExchangeOnlineManagement
Connect-ExchangeOnline
$Global:ExchRemoteCmdlets = Get-PSSession -Name ExchangeOnlineInternalSession*
}
# Import the CSV file and change primary smtp address in Exchange Online
$csv = Import-CSV $inputfile
$csv | foreach-object{
# Set variable for email address to remove in Exchange Online
$removeaddr = $_.username + "@" + $_.emailsuffix
Write-Host ("Processing User: " + $_.UserName +" - Removing " + $removeaddr)
Set-Mailbox $_.Username -EmailAddresses @{Remove=$removeaddr}
}
##### END OF REMOVE-PROXY.PS1