Microsoft 365 への一括移行に PowerShell を使用する

この記事は、Microsoft 365 Enterprise および Office 365 Enterprise の両方に適用されます。

一括移行を使用して、ユーザー メールボックスの内容をソース メール システムから Microsoft 365 に一度に移行できます。 この記事では、Exchange Online PowerShell を使用した電子メールの一括移行の作業を順を追って説明します。

トピック「 Microsoft 365 への一括メール移行について知っておくべきこと」を確認すると、移行プロセスの概要を確認できます。 記事の内容に満足いただけたら、段階的メール移行を使用して、あるメール システムから別のメール システムへのメールボックスの移行を開始してください。

注:

Exchange 管理センターを使用して、カットオーバー移行を実行することもできます。 「Microsoft 365 へのメールの一括移行を実行する」を参照してください。

はじめに把握しておくべき情報

このタスクの予想所要時間:移行バッチの作成に 2 ~ 5 分。 移行バッチ開始後の移行時間は、バッチ内のメールボックスの数、各メールボックスのサイズ、および使用可能なネットワーク容量によって異なります。 メールボックスを Microsoft 365 に移行するのにかかる時間に影響するその他の要因については、「 移行のパフォーマンス」を参照してください。

この手順を実行する際には、あらかじめアクセス許可が割り当てられている必要があります。 必要なアクセス許可を確認するには、トピック「受信者のアクセス許可」内の表にある「移行」エントリを参照してください。

Exchange Online PowerShell コマンドレットを使用するには、サインインしてコマンドレットをローカルの Windows PowerShell セッションにインポートする必要があります。 手順については、「Exchange Online PowerShell に接続する」を参照してください。

移行コマンドの完全な一覧については、「移動と移行のコマンドレット」を参照してください。

移行の手順

ステップ 1:一括移行を準備する

  • Microsoft 365 組織の承認済みドメインとして、オンプレミスの Exchange 組織を追加します。 移行サービスでは、オンプレミスのメールボックスの SMTP アドレスを使用して、新しい Microsoft 365 メールボックスの Microsoft Online Services ユーザー ID とメール アドレスを作成します。 Exchange ドメインが承認済みドメインまたは Microsoft 365 組織のプライマリ ドメインでない場合、移行は失敗します。 詳細については、「 ドメインの確認」を参照してください。

  • 社内 Exchange サーバーで Outlook Anywhere を構成する。 電子メール移行サービスは、RPC over HTTP または Outlook Anywhere を使用して社内 Exchange サーバーに接続します。 Exchange 2010、Exchange 2007、および Exchange 2003 で Outlook Anywhere をセットアップする方法については、以下のトピックを参照してください。

  • Outlook Anywhere を使用して Exchange 組織に接続できることを確認する。 次のいずれかの方法で、接続設定をテストしてください:

    • 企業ネットワークの外部から Microsoft Outlook を使用して、社内 Exchange メールボックスに接続します。

    • Microsoft Exchange リモート接続アナライザーを使用して接続設定をテストします。 Outlook Anywhere (RPC over HTTP) または Outlook 自動検出テストを使用します。

    • Exchange Online PowerShell で次のコマンドを実行します。

    $Credentials = Get-Credential
    
    Test-MigrationServerAvailability -ExchangeOutlookAnywhere -Autodiscover -EmailAddress <email address for on-premises administrator> -Credentials $credentials
    
  • Exchange 組織のメールボックスへのアクセスに必要なアクセス許可を社内ユーザー アカウントに割り当てる。 オンプレミスの Exchange 組織 (移行管理者とも呼ばれます) への接続に使用するオンプレミス ユーザー アカウントには、Microsoft 365 に移行するオンプレミスのメールボックスにアクセスするために必要なアクセス許可が必要です。 このユーザー アカウントは、社内組織の移行エンドポイントを作成するために使用されます。

    以下の一覧に、一括移行を使用してメールボックスを移行するために必要な管理者権限を示します。 3 つの可能なオプションがあります。

    • 移行管理者は、社内組織の Active Directory の Domain Admins グループのメンバーである必要がある。

      または

    • 移行管理者は、各社内メールボックスへの フル アクセスのアクセス許可が割り当てられている必要がある。

      または

    • 移行管理者は、ユーザーのメールボックスを格納する社内メールボックス データベースへの 受信者アクセス許可が割り当てられている必要がある。

  • ユニファイド メッセージングを無効にする。 移行する社内メールボックスでユニファイド メッセージング (UM) が有効である場合、メールボックスを移行する前にメールボックスで UM を無効にする必要があります。 移行が完了すると、メールボックスで UM を有効にできます。

  • セキュリティ グループとデリゲート電子メール移行サービスは、オンプレミスの Active Directory グループがセキュリティ グループであるかどうかを検出できないため、移行されたグループを Microsoft 365 のセキュリティ グループとしてプロビジョニングすることはできません。 Microsoft 365 テナントにセキュリティ グループを含める場合は、カットオーバー移行を開始する前に、まず Microsoft 365 テナントで空のメールが有効なセキュリティ グループをプロビジョニングする必要があります。 さらに、この移行方法では、メールボックス、メール ユーザー、メール連絡先、およびメールが有効なグループのみを移動します。 Microsoft 365 に移行されていないユーザーなどの他の Active Directory オブジェクトが、移行するオブジェクトにマネージャーまたは委任として割り当てられている場合は、移行する前にオブジェクトから削除する必要があります。

ステップ 2:移行エンドポイントを作成する

メールを正常に移行するには、Microsoft 365 がソースメール システムに接続して通信する必要があります。 これを行うために、Microsoft 365 は移行エンドポイントを使用します。 一括移行用に Outlook Anywhere の移行エンドポイントを作成するには、最初に リモート PowerShell による Exchange への接続を行います。

移行コマンドの完全な一覧については、「移動と移行のコマンドレット」を参照してください。

Exchange Online PowerShell で次のコマンドを実行します。

$Credentials = Get-Credential

この例では、Test-MigrationServerAvailability コマンドレットを使用して、社内の Exchange サーバーへの接続設定を取得およびテストしてから、この接続設定を使用して "CutoverEndpoint" という移行エンドポイントを作成します。

$TSMA = Test-MigrationServerAvailability -ExchangeOutlookAnywhere -Autodiscover -EmailAddress administrator@contoso.com -Credentials $credentials
New-MigrationEndpoint -ExchangeOutlookAnywhere -Name CutoverEndpoint -ConnectionSettings $TSMA.ConnectionSettings

注:

New-MigrationEndpoint コマンドレットで -TargetDatabase オプションを使用することによって、使用するサービスに対してデータベースを指定することができます。 それ以外の場合、データベースは、管理メールボックスが配置されている Active Directory フェデレーション サービス (AD FS) 2.0 サイトからランダムに割り当てられます。

機能していることを確認する

Exchange Online PowerShell で、次のコマンドを実行して "CutoverEndpoint" 移行エンドポイントに関する情報を表示します。

Get-MigrationEndpoint CutoverEndpoint | Format-List EndpointType,ExchangeServer,UseAutoDiscover,Max*

ステップ 3:一括移行バッチを作成する

Exchange Online PowerShell の New-MigrationBatch コマンドレットを使用すると、一括移行の移行バッチを作成できます。 AutoStart パラメーターを含めると、移行バッチを作成して自動的に開始できます。 また、別の方法として、 Start-MigrationBatch コマンドレットを使用することにより、移行バッチを作成して後で手動で開始できます。 この例では、"CutoverBatch" という移行バッチを作成して、前の例で作成した移行エンドポイントを使用します。

New-MigrationBatch -Name CutoverBatch -SourceEndpoint CutoverEndpoint -AutoStart

この例でも、"CutoverBatch" という移行バッチを作成して、前の例で作成した移行エンドポイントを使用します。 AutoStart パラメーターは含まれていないため、移行バッチは移行ダッシュボードで手動で開始するか、Start-MigrationBatch コマンドレットを使用して開始する必要があります。 前述のように、一度に存在できる一括移行バッチは 1 つだけです。

New-MigrationBatch -Name CutoverBatch -SourceEndpoint CutoverEndpoint

機能していることを確認する

一括移行用の移行バッチが正常に作成されたことを確認するには、Exchange Online PowerShell で次のコマンドを実行して、新しい移行バッチに関する情報を表示します。

Get-MigrationBatch | Format-List

ステップ 4:一括移行バッチを開始する

Exchange Online PowerShell で移行バッチを開始するには、次のコマンドを実行します。 そうすると、"CutoverBatch" という移行バッチが作成されます。

Start-MigrationBatch -Identity CutoverBatch

機能していることを確認する

移行バッチが正常に開始されると、移行ダッシュボードのバッチの状態は「同期中」になります。 Exchange Online PowerShell を使用して移行バッチが正常に開始したことを確認するには、次のコマンドを実行します。

Get-MigrationBatch -Identity CutoverBatch |  Format-List Status

手順 5: メールを Microsoft 365 にルーティングする

電子メール システムでは、電子メールを配信する場所を知るために、MX レコードと呼ばれる DNS レコードを使用します。 電子メールの移行プロセス中、MX レコードの宛先は移行元の電子メール システムでした。 Microsoft 365 への電子メールの移行が完了したら、次は Microsoft 365 で MX レコードをポイントします。 これにより、メールが Microsoft 365 メールボックスに確実に配信されます。 MX レコードを移動することによって、準備ができたら古い電子メール システムをオフにすることもできます。

多くの DNS プロバイダーについては、MX レコードを変更するための具体的な手順があります。 使用している DNS プロバイダーが含まれていない場合、または一般的な手順を知りたい場合は、 「MX レコードの一般的な手順」も参照してください。

使用している DNS プロバイダーが含まれていない場合や、一般的な手順を知りたい場合は、MX レコードの一般手順も参照してください。 次のタスクに進む前に少なくとも 72 時間待ちます。 手順 6: カットオーバー移行バッチを削除します

ステップ 6: 一括移行バッチを削除する

MX レコードを変更し、すべてのメールが Microsoft 365 メールボックスにルーティングされていることを確認したら、メールが Microsoft 365 に送られていることをユーザーに通知します。 その後、一括移行バッチを削除できます。 移行バッチを削除する前に、次の点を確認します。

  • すべてのユーザーが Microsoft 365 メールボックスを使用しています。 バッチが削除されると、オンプレミスのExchange Server上のメールボックスに送信されたメールは、対応する Microsoft 365 メールボックスにコピーされません。

  • Microsoft 365 メールボックスは、メールが直接送信され始めた後、少なくとも 1 回同期されました。 これを行うには、移行バッチの [最終同期時刻] ボックスの値が、メールが Microsoft 365 メールボックスに直接ルーティングされ始めた時点よりも新しいことを確認します。

Exchange Online PowerShell で "CutoverBatch" 移行バッチを削除するには、次のコマンドを実行します。

Remove-MigrationBatch -Identity CutoverBatch

セクション 7:ユーザー ライセンスの割り当て

ライセンスを割り当てることで、移行されたアカウントの Microsoft 365 ユーザー アカウントをアクティブ化します。 ライセンスを割り当てないと、猶予期間が終了したとき (30 日) にメールボックスが無効になります。 Microsoft 365 管理センターでライセンスを割り当てるには、「ライセンスの割り当てまたは割り当てを解除する」を参照してください。

ステップ 8:移行後のタスクを完了する

  • ユーザーが各自のメールボックスに簡単にアクセスできるように、自動検出 DNS レコードを作成します。 オンプレミスのすべてのメールボックスが Microsoft 365 に移行されたら、Microsoft 365 組織の自動検出 DNS レコードを構成して、ユーザーが Outlook およびモバイル クライアントを使用して新しい Microsoft 365 メールボックスに簡単に接続できるようにします。 この新しい自動検出 DNS レコードでは、Microsoft 365 組織で使用しているのと同じ名前空間を使用する必要があります。 たとえば、クラウドベースの名前空間が cloud.contoso.com の場合、作成する必要のある自動検出 DNS レコードは autodiscover.cloud.contoso.com となります。

    Exchange Serverを保持する場合は、Outlook クライアントが正しいメールボックスに接続できるように、移行後に自動検出 DNS CNAME レコードが内部 DNS と外部 DNS の両方で Microsoft 365 を指すようにする必要もあります。

    注:

    Exchange 2007、Exchange 2010、および Exchange 2013 では、 Set-ClientAccessServer AutodiscoverInternalConnectionURINull に設定する必要もあります。

    Microsoft 365 では、CNAME レコードを使用して、Outlook およびモバイル クライアント用の自動検出サービスを実装します。 自動検出 CNAME レコードには以下の情報が含まれている必要があります。

  • 社内の Exchange サーバーの使用を停止します。 すべてのメールが Microsoft 365 メールボックスに直接ルーティングされていることを確認し、オンプレミスのメール組織を維持する必要がなくなったか、シングル サインオン (SSO) ソリューションの実装を計画していない場合は、サーバーから Exchange をアンインストールし、オンプレミスの Exchange 組織を削除できます。

    詳細については、以下を参照してください。