バッチ移行を使用して Exchange 2010 パブリック フォルダーを Exchange 2016 または Exchange 2019 に移行する

パブリック フォルダーを 2010 SP3 RU8 Exchange Serverから同じフォレスト内の 2016or Exchange 2019 Exchange Serverに移行します。

Exchange 2010 SP3 RU8 以降のサーバーを 従来の Exchange サーバーと参照します。

移行を実行するには、 *MigrationBatch コマンドレットとトラブルシューティング用の *PublicFolderMigrationRequest コマンドレットを使用します。 さらに、次の PowerShell スクリプトを使用します。

  • Export-PublicFolderStatistics.ps1: このスクリプトは、フォルダー名とフォルダーサイズのマッピング ファイルを作成します。

  • Export-PublicFolderStatistics.psd1: このサポート ファイルは、Export-PublicFolderStatistics.ps1 スクリプトで使用され、同じ場所にダウンロードする必要があります。

  • PublicFolderToMailboxMapGenerator.ps1: このスクリプトは、パブリック フォルダーからメールボックスへのマッピング ファイルを作成します。

  • PublicFolderToMailboxMapGenerator.strings.psd1: このサポート ファイルは、PublicFolderToMailboxMapGenerator.ps1 スクリプトで使用され、同じ場所にダウンロードする必要があります。

  • Create-PublicFolderMailboxesForMigration.ps1: このスクリプトは、移行対象のパブリック フォルダー メールボックスを作成します。 また、このスクリプトでは、 パブリック フォルダーの制限 で推奨されるパグリック フォルダーのメールボックスごとのユーザー ログオン数に基づいて、予想されるユーザー負荷を処理するために必要なメールボックス数も計算します。

  • Create-PublicFolderMailboxesForMigration.strings.psd1: このサポート ファイルは、Create-PublicFolderMailboxesForMigration.ps1 スクリプトで使用され、同じ場所にダウンロードする必要があります。

「手順 1: 移行スクリプトをダウンロードする」セクションでは、これらのスクリプトをダウンロードする場所の詳細を示します。 すべてのスクリプトを同じ場所にダウンロードしてください。

パブリック フォルダーに関するその他の管理タスクについては、「パブリック フォルダーの手順」を参照してください。

Exchange Serverバージョンでサポートされている移行経路は何ですか?

Exchange では、次のレガシ バージョンの Exchange Server からのパブリック フォルダーの移行をサポートします。

  • Exchange 2010 SP3 RU8 以降

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

  • 一部の手順ではダウンタイムが必要になるため、この手順を始める前に、このトピック全体に目を通してください。

  • Exchange 2010 サーバーでは、Exchange 2010 SP3 RU8 以降が稼働している必要があります。

  • 一度に Exchange 2016 に移行できるパブリック フォルダーの最大数は 500,000 です。

  • Exchange 2016 では、組織の管理役割グループのメンバーである必要があります。 組織の管理役割グループを有効にする方法の詳細については、「役割グループの管理」を参照してください。

  • Exchange 2010 では、組織の管理役割グループまたはサーバーの管理 RBAC 役割グループのメンバーになっている必要があります。 詳細については、「役割グループにメンバーを追加する」を参照してください。

  • 移行する前に、パブリック フォルダーの制限を考慮する必要があります。

  • Exchange 2010 メールボックスを持つユーザーは Exchange 2016 のパブリック フォルダーにアクセスできないため、移行する前にすべてのユーザー メールボックスを Exchange 2016 に移動します。 詳細については、「Exchange Serverでのメールボックスの移動」を参照してください。

  • 移行の完了後、移行済みのメールが有効なパブリック フォルダーに外部の送信者がメールを送信する場合、 [匿名] ユーザーに [アイテムの作成] 以上のアクセス許可が付与されている必要があります。 このアクセス許可の付与を行っていない場合、外部のユーザーは配信失敗の通知を受け取り、メッセージは移行済みのメールが有効なパブリック フォルダーに配信されません。 匿名ユーザーにアクセス許可を設定する方法について詳しくは、「 パブリック フォルダーのメールの有効化またはメールの無効化」を参照してください。

  • すべてのパブリック フォルダーのデータを移行するには、単一の移行バッチを使用する必要があります。 Exchange では、一度に 1 つの移行バッチのみを作成できます。 複数の移行バッチを同時に作成しようとすると、結果はエラーになります。

  • このトピックの手順で使用可能なキーボード ショートカットについては、「Exchange 管理センターのキーボード ショートカット」を参照してください。

重要

移行を開始する前に、調停メールボックスをターゲット Exchange サーバーに移行してください。 それ以外の場合、移行バッチは開始状態でハング します 。 移行仲裁メールボックスを識別するには、次のコマンドレットを実行します。
Get-Mailbox -Arbitration -Identity Migration.*

手順 1: 移行スクリプトをダウンロードする

  1. パブリック フォルダー移行スクリプト」からすべてのスクリプトとサポート ファイルをダウンロードします。

  2. PowerShell を実行するローカル コンピューターにスクリプトを保存します。 たとえば C:\PFScripts などです。 すべてのスクリプトは同じ場所に保存する必要があります。

手順 2: 移行の準備

移行を開始する前に、以下の前提となる手順を実行します。

Exchange 2010 サーバーの前提条件の手順

  1. 移行の終了時に検証を行うために、まず Exchange 2010 サーバーで次のコマンドを実行して、現在のパブリック フォルダー展開のスナップショットを取得することをお勧めします。

    • 移行元のフォルダー構造のスナップショットを取得するには、次のコマンドを実行します。

      Get-PublicFolder -Recurse | Export-CliXML C:\PFMigration\Legacy_PFStructure.xml
      
    • アイテム数、サイズ、所有者などのパブリック フォルダーの統計情報のスナップショットを取得するには、次のコマンドを実行します。

      Get-PublicFolderStatistics | Export-CliXML C:\PFMigration\Legacy_PFStatistics.xml
      
    • アクセス許可のスナップショットを取得するには、次のコマンドを実行します。

      Get-PublicFolder -Recurse | Get-PublicFolderClientPermission | Select-Object Identity,User -ExpandProperty AccessRights | Export-CliXML C:\PFMigration\Legacy_PFPerms.xml
      
  2. パブリック フォルダーの名前に円記号 ( \ ) が含まれている場合、移行により、移行されたパブリック フォルダーが親パブリック フォルダーに作成されます。 名前にバックスラッシュが含まれるパブリック フォルダーは、移行前に名前を変更することをお勧めします。

    名前に円記号が付いている Exchange 2010 のパブリック フォルダーを見つけるには、次のコマンドを実行します。

    Get-PublicFolderStatistics -ResultSize Unlimited | Where {($_.Name -like "*\*") -or ($_.Name -like "*/*") } | Format-List Name, Identity
    

    パブリック フォルダーが戻された場合、次のコマンドを実行して名前を変更します。

    Set-PublicFolder -Identity <public folder identity> -Name <new public folder name>
    
  3. 次のコマンドを実行して、以前に成功した移行のレコードがないことを確認します。

    Get-OrganizationConfig | Format-List PublicFoldersLockedforMigration, PublicFolderMigrationComplete
    

    以前に成功した移行では、 PublicFoldersLockedforMigration プロパティまたは PublicFolderMigrationComplete プロパティが 値 Trueに設定され、新しい移行要求が失敗します。

    プロパティの値が の場合は True、次のコマンドを実行して、 に False変更します。

    Set-OrganizationConfig -PublicFoldersLockedforMigration $false -PublicFolderMigrationComplete $false
    

    注:

    上記のプロパティをリセットした後は、Exchange が新しい設定を検出するまで待機する必要があります。 この処理が完了するまで最大 2 時間かかる場合があります。

構文およびパラメーターの詳細については、以下のトピックを参照してください。

Exchange 2016 サーバーの前提となる手順

  1. 既存のパブリック フォルダーの移行要求がないことを確認します。 要求がある場合、その要求をクリアしないと、自身が行っている移行要求が失敗します。 この手順は、すべての場合に必要なわけではありません。これは、パイプラインに既存の移行要求がある可能性があると思われる場合にのみ必要です。

    重要

    移行要求を削除する前に、既存の要求がなぜ存在するかを理解することが重要です。 次のコマンドを実行して、以前の要求がいつ実行されたかを特定し、発生した可能性がある問題の診断に役立てることができます。 なぜ変更したかを特定するには、場合によって、組織内の他の管理者と連絡を取る必要があります。

    • 次のコマンドを実行して、既存のバッチ移行要求を検出します。

      $batch = Get-MigrationBatch | ?{$_.MigrationType.ToString() -eq "PublicFolder"}
      
    • 次のコマンドを実行して、既存のパブリック フォルダーバッチ移行要求を削除します。

      $batch | Remove-MigrationBatch -Confirm:$false
      
  2. 次のコマンドを実行して、Exchange 2016 サーバーにパブリック フォルダーまたはパブリック フォルダー メールボックスが存在しないことを確認します。

    Get-Mailbox -PublicFolder
    

    コマンドを実行しても、パブリック フォルダー メールボックスが返されなかった場合は、手順 3: .csv ファイルを生成する に進んでください。 上記のコマンドによってパブリック フォルダーが返された場合は、以下のコマンドを使って、パブリック フォルダーが存在するかどうかを確認します。

    Get-PublicFolder
    

    パブリック フォルダーがある場合は、次のコマンドを実行して削除します。 パブリック フォルダーに含まれている情報が保存してあることを確認してください。

    注:

    パブリック フォルダーを削除すると、そこに含まれるすべての情報が完全に削除されます。

    Get-Mailbox -PublicFolder | Where {$_.IsRootPublicFolderMailbox -eq $false} | Remove-Mailbox -PublicFolder -Force -Confirm:$false
    
    Get-Mailbox -PublicFolder | Remove-Mailbox -PublicFolder -Force -Confirm:$false
    

構文およびパラメーターの詳細については、以下のトピックを参照してください。

手順 3: .csv ファイルを生成する

  1. Exchange 2010 サーバーで、スクリプトを Export-PublicFolderStatistics.ps1 実行してフォルダー名とフォルダーサイズのマッピング ファイルを作成します。 このスクリプトは、ローカル管理者が実行する必要があります。 このファイルには、 FolderNameFolderSize の 2 つの列があります。 FolderSize 列の値は、バイト単位で表示されます。 \PublicFolder01,10000 などとなります。

    .\Export-PublicFolderStatistics.ps1 <Folder to size map path> <FQDN of source server>
    
    • FQDN of source server は、パブリック フォルダー階層をホストしているメールボックス サーバーの完全修飾ドメイン名です。

    • マップ パスのサイズを変更するフォルダー は、.csv ファイルを保存するローカルまたはネットワーク共有フォルダーのファイル名とパスと同じです。 このトピックの後半で、Exchange 2016 サーバーからこのファイルにアクセスする必要があります。 ファイル名だけを指定すると、ローカル コンピューター上の現在の PowerShell ディレクトリにファイルが生成されます。

    例 1

    次の例では、スクリプトの実行元と同じフォルダー 内のPFStats.csv という名前のファイルにパブリック フォルダー統計をエクスポートします。

    .\Export-PublicFolderStatistics.ps1 -ExportFile PFStats.csv -PublicFolderServer bat2exch1
    

    例 2

    次の例では、パブリック フォルダー統計を、サーバー Exch2 上の Data という名前のネットワーク共有フォルダー内の PFStats.csv という名前のファイルにエクスポートします。

    .\Export-PublicFolderStatistics.ps1 -ExportFile \\Exch2\data\PFStats.csv -PublicFolderServer exch1
    
  2. スクリプトを PublicFolderToMailboxMapGenerator.ps1 実行して、パブリック フォルダーからメールボックスへのマッピング ファイルを作成します。 このファイルは、Exchange 2016 サーバー上のパブリック フォルダー メールボックスの正しい数を計算するために使用されます。

    注:

    パブリック フォルダーの名前に円記号 **** が含まれている場合、パブリック フォルダーは親パブリック フォルダーに作成されます。 .csv ファイルを見直して、バックスラッシュを含む名前を編集することをお勧めします。

    .\PublicFolderToMailboxMapGenerator.ps1 <Maximum mailbox size in bytes> <Folder to size map path> <Folder to mailbox map path>
    
    • Maximum mailbox size in bytes は、新しいパブリック フォルダー メールボックス用に設定する最大サイズです。 パブリック フォルダー メールボックスのサイズを増やせるように、拡張が可能なサイズを指定する必要があります。

    • マップ パスのサイズを変更するフォルダー は、スクリプトの実行時に作成した.csv ファイルの完全なファイル パスと Export-PublicFolderStatistics.ps1 同じです。

    • Folder to mailbox map path は、この手順で作成するフォルダーからメールボックスへのマッピング .csv ファイルのファイル名とパスです。 ファイル名だけを指定すると、ローカル コンピューター上の現在の PowerShell ディレクトリにファイルが生成されます。

手順 4: Exchange 2016 でパブリック フォルダー メールボックスを作成する

次のコマンドを実行し、ターゲットのパブリック フォルダー メールボックスを作成します。 スクリプトは、スクリプトを実行して、手順 3 で前に生成した.csv ファイル内の各メールボックスのターゲット メールボックスを作成します PublicFoldertoMailboxMapGenerator.ps1

.\Create-PublicFolderMailboxesForMigration.ps1 -FolderMappingCsv Mapping.csv -EstimatedNumberOfConcurrentUsers:<estimate>

Mapping.csv は、手順 3 のスクリプトによって PublicFoldertoMailboxMapGenerator.ps1 生成されたファイルです。 通常、パブリック フォルダー階層を参照する同時ユーザー接続の推定値は、組織内のユーザー数の合計より少なくなります。

手順 5: 移行要求を開始する

Exchange 管理シェルでバッチ移行要求を作成した後、要求を表示し、Exchange 管理センター (EAC) で管理できます。

  1. Exchange 2016 サーバーで、次のコマンドを実行します。

    New-MigrationBatch -Name PFMigration -SourcePublicFolderDatabase (Get-PublicFolderDatabase -Server <Source server name>) -CSVData ([System.IO.File]::ReadAllBytes('<Folder to mailbox map path>')) -NotificationEmails <email addresses for migration notifications>
    

    パラメーターは NotificationEmails 省略可能です。

  2. EAC または Exchange 管理シェルで移行を開始します。

    • Exchange 管理シェル で次のコマンドを実行します。

      Start-MigrationBatch PFMigration
      
    • EAC で以下を実行します。

      1. Exchange Online にログインし、EAC を開きます。

      2. [Recipients Migration]\(受信者の移行\>) に移動します。

      3. 作成した移行バッチを選択し、開始ボタンをクリックします。

      EAC の [状態] 列には、初期バッチ状態が [作成済み] として表示されます。 移行中は状態が [同期中] に変わります。 移行要求が完了すると、状態は [同期済み] になります。 バッチをダブルクリックして、バッチに含まれる個々のメールボックスの状態を表示できます。 メールボックスのジョブは [キューに登録済み] の状態で開始します。 ジョブが開始されると、状態は 同期中で、完了すると InitialSync 、状態は [同期済み] と表示されます。

EAC の [受信者>の移行] タブで、移行の進行状況と完了を表示および管理できます。

New-MigrationBatch コマンドレットはパブリック フォルダー メールボックスごとにメールボックス移行要求を開始するため、EAC のメールボックス移行ページを使用してこれらの要求の状態を表示し、電子メールで送信できる移行レポートを作成できます。

  1. Exchange Online にログインし、EAC を開きます。

  2. [Recipients Migration]\(受信者の移行\>) に移動します。

  3. 先ほど作成した移行要求を選択し、[詳細] ウィンドウで [詳細の表示] をクリックします。

構文およびパラメーターの詳細については、以下のトピックを参照してください。

手順 6: 最終的な移行のために Exchange 2010 サーバー上のパブリック フォルダーをロックダウンする (ダウンタイムが必要)

移行のこの時点までは、ユーザーはパブリック フォルダーにアクセスできます。 次の手順では、Exchange 2010 パブリック フォルダーからユーザーをログオフし、移行が最終的な同期を完了している間にフォルダーをロックします。 このプロセスの間、ユーザーはパブリック フォルダーにアクセスできません。 また、メールが有効なパブリック フォルダーに送信されたメールはキューに入れられ、パブリック フォルダーの移行が完了するまで配信されません。

以下で説明するようにコマンドを実行する PublicFoldersLockedForMigration 前に、すべてのジョブが 同期 状態であることを確認してください。 これを行うには、 コマンドを Get-PublicFolderMailboxMigrationRequest 実行します。 すべてのジョブの状態が 同期済みであることを確認した後にのみ、この手順を続行します。

Exchange 2010 サーバーで、次のコマンドを実行して、最終処理のためにパブリック フォルダーをロックします。

Set-OrganizationConfig -PublicFoldersLockedForMigration:$true

構文およびパラメーターの詳細については、「Set-OrganizationConfig」を参照してください。

組織に複数のパブリック フォルダー データベースがある場合は、パブリック フォルダーのレプリケーションが完了するまで待って、すべてのパブリック フォルダー データベースがプロパティ値を取得 PublicFoldersLockedForMigration し、最近フォルダーに加えられた保留中の変更が組織全体に集約されていることを確認する必要があります。 この処理には数時間かかる場合があります。

手順 7:パブリック フォルダーの移行の終了処理をする (ダウンタイムが必要)

最初に、次のコマンドレットを実行して、Exchange 2016 の展開の種類を リモートに変更します。

Set-OrganizationConfig -PublicFoldersEnabled Remote

完了したら、次のコマンドを実行して、パブリック フォルダーの移行を実行できます。

Complete-MigrationBatch PFMigration

または EAC で [この移行バッチの完了] をクリックして、移行を完了できます。

移行を完了するときに、Exchange は、Exchange 2010 サーバーと Exchange 2016 の間での最終的な同期を実行します。 最終的な同期が成功した場合は、Exchange 2016 サーバー上のパブリック フォルダーのロックが解除され、移行バッチの状態が [完了中] に変わり、そして [完了] になります。 一般的に、移行バッチの状態が 同期済みから 完了処理中に変わるまでに数時間かかり、この時点で最終的な同期が開始されます。

注:

何らかの理由で移行バッチ ファイルが終了しない場合 ( PublicFolderMigrationComplete プロパティの値は False) Exchange 2010 サーバーで Information Store (IS) を再起動します。

手順 8:パブリック フォルダーの移行をテストして、ロックを解除する

パブリック フォルダーの移行を完了した後、次のテストを実行して移行が成功したことを確認します。 これで Exchange 2016 パブリック フォルダーの使用に切り替える前に、移行済みのパブリック フォルダー階層をテストすることができます。

  1. PowerShell で次のコマンドを実行してテスト メールボックスをいくつか割り当て、新規に移行済みのいずれかのパブリック フォルダー メールボックスを既定のパブリック フォルダー メールボックスとして使用します。

    Set-Mailbox -Identity <Test User> -DefaultPublicFolderMailbox <Public Folder Mailbox Identity>
    
  2. 前の手順で識別されたテスト ユーザーを使って Outlook 2007 以降にログオンし、次のパブリック フォルダー テストを実行します。

    • 階層の表示

    • アクセス許可のチェック

    • パブリック フォルダーの作成と削除

    • パブリック フォルダーに対する内容の追加と削除

  3. 問題がある場合は、このトピックで後述する「移行のロールバック」を参照してください。 パブリック フォルダーのコンテンツと階層に特に問題がなく期待通りに機能している場合には、次のコマンドを実行して他のすべてのユーザーが使えるようにパブリック フォルダーをロック解除します。

    Get-Mailbox -PublicFolder | Set-Mailbox -PublicFolder -IsExcludedFromServingHierarchy $false
    

    重要

    このパラメーターは Exchange の自動負荷分散サービスによって使用されるため、初期移行検証が完了した後は IsExcludedFromServingHierarchy パラメーターを使用しないでください。

  4. Exchange 2010 サーバーで、次のコマンドを実行して、パブリック フォルダーの移行が完了したことを示します。

    Set-OrganizationConfig -PublicFolderMigrationComplete:$true
    
  5. 移行が完了したことを確認したら、Exchange 2016 サーバーで次のコマンドを実行します。

    Set-OrganizationConfig -PublicFoldersEnabled Local
    
  6. 最後に、移行済みのメールが有効なパブリック フォルダーに外部の送信者がメールを送信する場合、 [匿名] ユーザーに [アイテムの作成] 以上のアクセス許可が付与されている必要があります。 このアクセス許可の付与を行っていない場合、外部のユーザーは配信失敗の通知を受け取り、メッセージは移行済みのメールが有効なパブリック フォルダーに配信されません。

    Exchange 管理シェルまたは Outlook を使用して、匿名ユーザーに対するアクセス許可を設定できます。 匿名ユーザーにアクセス許可を設定する方法について詳しくは、「パブリック フォルダーのメールの有効化またはメールの無効化」を参照してください。

設定が適用されたことを確認する方法

Step 2: Prepare for the migration」で、移行を開始する前にパブリック フォルダー構造、統計、アクセス許可のスナップショットを取得しました。 以下の手順では、移行完了後に同じスナップショットを取得して、パブリック フォルダーの移行が正しく行われたことを確認します。 両方のファイルのデータを比較して、移行が正しく行われたことを確認します。

  1. 新しいフォルダー構造のスナップショットを取得するには、次のコマンドを実行します。

    Get-PublicFolder -Recurse | Export-CliXML C:\PFMigration\Cloud_PFStructure.xml
    
  2. アイテム数、サイズ、所有者などのパブリック フォルダーの統計情報のスナップショットを取得するには、次のコマンドを実行します。

    Get-PublicFolderStatistics -ResultSize Unlimited | Export-CliXML C:\PFMigration\Cloud_PFStatistics.xml
    
  3. アクセス許可のスナップショットを取得するには、次のコマンドを実行します。

    Get-PublicFolder -Recurse | Get-PublicFolderClientPermission | Select-Object Identity,User -ExpandProperty AccessRights | Export-CliXML  C:\PFMigration\Cloud_PFPerms.xml
    

Exchange 2010 サーバーからパブリック フォルダー データベースを削除する

移行が完了し、Exchange 2016 または Exchange 2019 のパブリック フォルダーが期待どおりに動作していることを確認したら、Exchange 2010 サーバー上のパブリック フォルダー データベースを削除する必要があります。

Exchange 2010 サーバーからパブリック フォルダー データベースを削除する方法の詳細は、「パブリック フォルダ データベースの削除」を参照してください。

移行のロールバック

移行で問題が発生し、Exchange 2010 パブリック フォルダーを再アクティブ化する必要がある場合は、次の手順を実行します。

注意

移行を Exchange 2010 サーバーにロールバックすると、メールが有効なパブリック フォルダーまたは移行後に Exchange 2016 または Exchange 2019 のパブリック フォルダーに投稿されたコンテンツに送信されたメールは失われます。 このコンテンツを保存するには、パブリック フォルダーの内容を .pst ファイルにエクスポートし、ロールバックが完了したら Exchange 2010 パブリック フォルダーにインポートする必要があります。

  1. Exchange 2010 サーバーで、次のコマンドを実行して、移行されたパブリック フォルダーのロックを解除します。 この処理には数時間かかる場合があります。

    Set-OrganizationConfig -PublicFoldersLockedForMigration $false
    
  2. Exchange 2016 サーバーで、次のコマンドを実行してパブリック フォルダー メールボックスを削除します。

    Get-Mailbox -PublicFolder | Where {$_.IsRootPublicFolderMailbox -eq $false} | Remove-Mailbox -PublicFolder -Force -Permanent $true -Confirm:$false
    
    Get-Mailbox -PublicFolder | Remove-Mailbox -PublicFolder -Force -Permanent $true -Confirm:$false
    
  3. Exchange 2010 サーバーで、次のコマンドを実行してプロパティ値を PublicFolderMigrationCompleteFalse設定します。

    Set-OrganizationConfig -PublicFolderMigrationComplete $false
    
  4. Exchange 2016 サーバーで、次のコマンドを実行してパブリック フォルダー メールボックスを削除します。

    Set-OrganizationConfig -PublicFoldersEnabled Remote -RemotePublicFolderMailboxes <ProxyMailbox1>,<ProxyMailbox2>,...,<ProxyMailboxN>
    

    このコマンドで使用する必要があるリモートパブリック フォルダー メールボックスの詳細については、「 ユーザー メールボックスが Exchange 2013 サーバー上にある従来のパブリック フォルダーを構成する」を参照してください。