バッチ移行を使用して、従来のパブリック フォルダーを Microsoft 365 または Office 365に移行する

概要: 次の手順を使用して、Exchange 2010 パブリック フォルダーを Microsoft 365 または Office 365に移動します。

このトピックでは、Exchange Server 2010 Service Pack 3 (SP3) の更新プログラム ロールアップ 8 から Microsoft 365 または Office 365 および Exchange Online に、カットオーバーまたは段階的な移行でパブリック フォルダーを移行する方法について説明します。

このトピックでは、Exchange 2010 SP3 RU8 サーバーを従来の Exchange サーバーとして参照します。 また、このトピックの手順は、Exchange Onlineと Microsoft 365 またはOffice 365の両方に適用されます。 このトピックでは用語を同じ意味で使用する場合があります。

Outlook の PST エクスポート機能を使用して、パブリック フォルダーを Microsoft 365 またはOffice 365またはExchange Onlineに移行しないことをお勧めします。 Microsoft 365、Office 365、およびExchange Onlineパブリック フォルダー メールボックスの増加は、パブリック フォルダー メールボックスがサイズ クォータを超えたときに分割する自動分割機能を使用して管理されます。 PST エクスポートを使ってパブリック フォルダーを移行すると、自動分割機能はパブリック フォルダー メールボックスの急激な容量増加に対処できなくなり、自動分割機能によってプライマリ メールボックスからデータが移動されるまで、最大で 2 週間待たなければならない場合があります。 このドキュメントのコマンドレットベースの手順を使用して、パブリック フォルダーを Microsoft 365、Office 365、またはExchange Onlineに移行することをお勧めします。 ただし、PST エクスポートを使用してパブリック フォルダーを移行する場合は、このトピックの後半の「Outlook PST エクスポートを使用してパブリック フォルダーを Microsoft 365 またはOffice 365に移行する」セクションを参照してください。

次の PowerShell スクリプトに加えて、 *-MigrationBatch コマンドレットを使用して移行を実行します。

  • SourceSideValidations.ps1: ソース側検証スクリプトは、ソースにあるパブリック フォルダーをスキャンし、検出された問題と問題を報告して問題を解決するアクションを報告します。 このスクリプトは、従来の Exchange サーバーオンプレミスで実行します。

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

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

  • PublicFolderToMailboxMapGenerator.ps1: このスクリプトは、スクリプトからの出力を使用して、パブリック フォルダーからメールボックスへのマッピング ファイルを Export-PublicFolderStatistics.ps1 作成します。 このスクリプトは、従来の Exchange サーバーで実行します。

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

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

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

  • Sync-MailPublicFolders.ps1: このスクリプトは、ローカル Exchange 展開と Microsoft 365 または Office 365の間でメールが有効なパブリック フォルダー オブジェクトを同期します。 このスクリプトは、従来の Exchange サーバーで実行します。

  • SyncMailPublicFolders.strings.psd1: これはスクリプトによって使用されるサポート ファイルであり、前の Sync-MailPublicFolders.ps1 スクリプトと同じ場所にコピーする必要があります。

手順 1: 移行スクリプトをダウンロードするこのスクリプトは、これらのスクリプトのダウンロード場所に関する詳細を提供します。 すべてのスクリプトは、同じ場所にダウンロードする必要があります。

パブリック フォルダーを Microsoft 365 または Office 365 および Exchange Online に移行するためにサポートされている Exchange のバージョンは何ですか?

Exchange では、パブリック フォルダーを Microsoft 365 または Office 365 に移動し、次のレガシ バージョンのExchange ServerからExchange Onlineできます。

  • Exchange 2010 SP3 RU8 以降

パブリック フォルダーをExchange Onlineに移動する必要があるが、オンプレミス サーバーで Exchange 2010 の最小サポート バージョンが実行されていない場合は、オンプレミス サーバーをアップグレードし、サポートされている唯一のパブリック フォルダー移行方法であるバッチ移行を使用することを強くお勧めします。

Exchange 2003 または Exchange 2007 からパブリック フォルダーを直接移行することはできません。 organizationで Exchange 2007 以前を実行している場合は、すべてのパブリック フォルダー データベースとレプリカを Exchange 2010 SP3 RU8 以降に移動する必要があります。 Exchange 2007 以前にパブリック フォルダー レプリカを残す必要はありません。 さらに、Exchange 2013 以降のパブリック フォルダー宛てのメールは、Exchange 2003 または Exchange 2007 サーバー経由でルーティングできません。

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

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

  • Microsoft 365 またはOffice 365とExchange Onlineでは、Organization Management ロール グループのメンバーである必要があります。 この役割グループは、Microsoft 365、Office 365、または Exchange Online にサブスクライブした場合に割り当てられるアクセス許可とは異なるものです。 組織の管理役割グループを有効にする方法の詳細については、「Exchange Onlineで役割グループを管理する」を参照してください。

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

  • パブリック フォルダーの移行を開始する前に、organization内の 1 つのパブリック フォルダーが 25 GB を超える場合は、そのフォルダーからコンテンツを削除して小さくすることをお勧めします。 または、パブリック フォルダーのコンテンツを複数の小さなパブリック フォルダーに分割することをお勧めします。 ここで言及している 25 GB の制限はパブリック フォルダーだけに適用され、そのフォルダーに子フォルダーやサブフォルダーがあってもそれらには適用されないのでご注意ください。 これらのオプションがいずれも実行できない場合、パブリック フォルダーを Exchange Online に移動しないことをお勧めします。 詳細については、「Exchange Online の制限」をご覧ください。 : Exchange Onlineの現在のパブリック フォルダー クォータが 25 GB 未満の場合は、Set-OrganizationConfig コマンドレットを使用して、 パラメーターと DefaultPublicFolderProhibitPostQuota パラメーターを使用DefaultPublicFolderIssueWarningQuotaしてそれらを増やすことができます。

ファイアウォールとアクセス制御リスト (ACL) を使用する場合は、Microsoft 365 またはリージョン内のOffice 365で使用される IP 範囲がファイアウォール経由で許可されていることを確認します。

  • Microsoft 365、Office 365、Exchange Onlineでは、最大 1,000 個のパブリック フォルダー メールボックスを作成できます。

  • パブリック フォルダーを移行する前に、まずすべてのユーザー メールボックスを Microsoft 365 または Office 365 および Exchange Onlineに移動することをお勧めします。 詳細については、「複数のメール アカウントを Microsoft 365 またはOffice 365に移行する方法」を参照してください。 ただし、移行を実行する PF 管理者のメールボックスをオンプレミス環境に保持するか、新しい PF 管理者アカウントを作成し、レガシ Exchange サーバーでホストされているメールボックスを割り当てる必要があります。

  • 従来の Exchange サーバーで Outlook Anywhere が有効になっている必要があります。 Exchange 2010 サーバーで Outlook Anywhere を有効にする方法の詳細については、「Outlook Anywhere を有効にする」を参照してください。

  • Exchange 管理センター (EAC) または Exchange 管理コンソール (EMC) を使用して、この手順を実行することはできません。 従来の Exchange サーバーでは、Exchange 管理シェル を使用する必要があります。 Exchange Online の場合、Exchange Online PowerShell を使用する必要があります。 詳細については、「Exchange Online PowerShell への接続」を参照してください。

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

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

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

  • DefaultPublicFolderAgeLimit が organization レベルで構成されているかどうか (Get-OrganizationConfig | Format-List DefaultPublicFolderAgeLimit) または個々のパブリック フォルダーに対して AgeLimit (Get-PublicFolder <FolderPath> | Format-List AgeLimit) が構成されているかどうかを確認して、コンテンツの自動削除を防止してください。

ヒント

問題がある場合は、 Exchange のフォーラムで質問してください。 次のフォーラムにアクセスしてください: 「Exchange Online」または「Exchange Online Protection」。

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

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

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

  3. 以下のファイルを、メールが有効なパブリック フォルダー - ディレクトリ同期スクリプト からダウンロードします。

    • Sync-MailPublicFolders.ps1
    • SyncMailPublicFolders.strings.psd1
  4. ソース側の検証スクリプトのダウンロード元 https://www.microsoft.com/download/confirmation.aspx?id=100414

  5. 手順 2 で行ったのと同じ場所にスクリプトを保存します。 たとえば、「C:\PFScripts」とします。

手順 2:移行の準備

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

注:

メールボックスの役割を持つオンプレミスの Exchange Server2010 からソース側検証スクリプトを実行することを強くお勧めします。 このスクリプトは、移行に時間がかかる原因として知られている問題を、これらの問題を修正するためのガイダンスに沿ってスキャンして報告します。 ここに記載されている例を使用してください。

前提条件となる手順の概要

  • Active Directory 内に孤立したパブリック フォルダー メール オブジェクト (対応する Exchange オブジェクトがない Active Directory 内のオブジェクト) が存在しないことを確認します。
  • Active Directory 内のパブリック フォルダー用に構成された SMTP メール アドレスが、Exchange オブジェクトの SMTP メール アドレスと一致することを確認します。
  • 複数の Active Directory オブジェクトが、メールが有効な同一のパブリック フォルダーを指す状況を回避するため、Active Directory 内に重複するパブリック フォルダー オブジェクトがないことを確認します。

従来の Exchange サーバー上で前提となる手順

注:

メールボックスの役割を持つオンプレミスの Exchange Server2010 からソース側検証スクリプトを実行することを強くお勧めします。 このスクリプトは、移行に時間がかかる原因として知られている問題を、これらの問題を修正するためのガイダンスに沿ってスキャンして報告します。 ここに記載されている例を使用してください。 このスクリプトは、以下の前提条件をすべて実行します。

  1. 従来の Exchange サーバーで、Microsoft 365 または Office 365 または Exchange Online に存在するメールが有効なパブリック フォルダーへのルーティングは、インターネット上のすべての DNS キャッシュが Microsoft 365、Office 365、または Exchange Online DNS を指すように更新されるまで引き続き動作します。organizationが存在するようになりました。 これを行うには、次のコマンドを実行して、Microsoft 365、Office 365、または Exchange Online ドメインに電子メール メッセージを適切にルーティングする既知の名前で承認済みドメインを構成します。

    New-AcceptedDomain -Name "PublicFolderDestination_78c0b207_5ad2_4fee_8cb9_f373175b3f99" -DomainName <target domain> -DomainType InternalRelay
    

    例:

    New-AcceptedDomain -Name PublicFolderDestination_78c0b207_5ad2_4fee_8cb9_f373175b3f99 -DomainName 'contoso.mail.onmicrosoft.com' -DomainType InternalRelay
    

    オンプレミスの環境に承認済みドメインが既にある場合は、名前を PublicFolderDestination_78c0b207_5ad2_4fee_8cb9_f373175b3f99 に変更し、その他の属性はそのまま保持します。

    オンプレミスの環境に承認済みドメインが既にあるかどうか確認するには、次のように実行します。

    Get-AcceptedDomain | Where {$_.DomainName -eq "<target domain>"}
    

    承認済みドメインの名前を PublicFolderDestination_78c0b207_5ad2_4fee_8cb9_f373175b3f99 に変更するには、次のように実行します。

    Get-AcceptedDomain | Where {$_.DomainName -eq "<target domain>"} | Set-AcceptedDomain -Name PublicFolderDestination_78c0b207_5ad2_4fee_8cb9_f373175b3f99
    

    Exchange Online 内のメールが有効なパブリック フォルダーがインターネットから外部のメールを受信することを想定している場合は、Exchange Online と Exchange Online Protection (EOP) で Directory Based Edge Blocking (DBEB) を無効にする必要があります。 詳細については、「 ディレクトリ ベースのエッジ ブロックを使用して 無効な受信者に送信されたメッセージを拒否する」を参照してください。

    パブリック フォルダーの名前に円記号 ( ) またはスラッシュ ( \/ ) が含まれている場合、移行が発生したときに、パブリック フォルダーが親パブリック フォルダーに作成される可能性があります。 移行する前に、名前に円記号またはスラッシュを含むパブリック フォルダーの名前を変更することをお勧めします。

    Exchange 2010 では、名前にバックスラッシュが含まれているパブリック フォルダーを特定するには、次のコマンドを実行します。

    Get-PublicFolderStatistics -ResultSize Unlimited | Where {($_.Name -like "*\*") -or ($_.Name -like "*/*") } | Format-List Name,Identity
    
  2. パブリック フォルダーが返された場合、次のコマンドを実行することで、名前を変更することができます。

    Set-PublicFolder -Identity <public folder identity> -Name <new public folder name>
    
  3. 過去に正常終了した移行の記録がないことを確認してください。 ある場合は、その値を に設定する $false必要があります。 値が に $true設定されている場合、移行要求は失敗します。

    次の例では、パブリック フォルダーの移行ステータスを確認します。

    Get-OrganizationConfig | Format-List PublicFoldersLockedforMigration,PublicFolderMigrationComplete
    
  4. (この手順は、以前に失敗した移行を再試行する場合にのみ必要であることに注意してください)。 PublicFoldersLockedforMigration プロパティまたは PublicFolderMigrationComplete プロパティの状態が である場合は $true、次のコマンドを実行して値を に $false設定します。

    Set-OrganizationConfig -PublicFoldersLockedforMigration:$false -PublicFolderMigrationComplete:$false
    

    注意

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

  5. 移行終了時に確認できるよう、最初に従来の Exchange サーバーで次の Exchange 管理シェル コマンドを実行して、現在のパブリック フォルダー展開のスナップショットを取得することをお勧めします。

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

    Get-PublicFolder -Recurse -ResultSize Unlimited | Export-CliXML C:\PFMigration\Legacy_PFStructure.xml
    

    アイテム数、サイズ、所有者などのパブリック フォルダーの統計情報のスナップショットを取得するには、次のコマンドを実行します。

    Get-PublicFolderStatistics -ResultSize Unlimited | Export-CliXML C:\PFMigration\Legacy_PFStatistics.xml
    

    アクセス許可のスナップショットを取得するには、次のコマンドを実行します。

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

    移行の最後で比較するために、上記のコマンドから取得した情報を保存します。

  6. Microsoft Entra Connect (Microsoft Entra Connect) を使用してオンプレミスのディレクトリを Microsoft Entra ID と同期する場合は、次の操作を行う必要があります (Microsoft Entra Connect を使用していない場合は、この手順をスキップできます)。

    1. オンプレミス コンピューターで、[接続] Microsoft Entra開き、[構成] を選択します。

    2. [追加のタスク] 画面で、 [同期オプションのカスタマイズ] を選択し、 [次へ] をクリックします。

    3. [Microsoft Entra ID への接続] 画面で、適切な資格情報を入力し、[次へ] をクリックします。 接続したら、 [オプションの機能] 画面が表示されるまで [次へ] をクリックし続けます。

    4. [Exchange メール パブリック フォルダー] が選択されていないことを確認します。 選択されていない場合は、次のセクション「Microsoft 365 の前提条件」、Office 365、またはExchange Onlineに進むことができます。 選択されている場合には、クリックしてチェック ボックスをオフにし、 [次へ] をクリックします。

      注:

      [オプション機能] 画面にオプションとして Exchange メール パブリック フォルダーが表示されない場合は、[接続] Microsoft Entra終了し、次のセクション「Microsoft 365 の前提条件の手順」、「Office 365」、または「Exchange Online」に進むことができます。

  7. [Exchange メール パブリック フォルダー] の選択を解除した後、 [構成の準備完了] 画面が表示されるまで [次へ] をクリックし、 [構成] をクリックします。

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

Microsoft 365、Office 365、またはExchange Onlineの前提条件の手順

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

    重要

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

    次の例では、既存のバッチ移行要求を検出します。

    $batch = Get-MigrationBatch | ?{$_.MigrationType.ToString() -eq "PublicFolder"}
    

    次の例では、既存のパブリック フォルダーのバッチ移行要求を削除します。

    $batch | Remove-MigrationBatch -Confirm:$false
    
  2. Microsoft 365 または Office 365にパブリック フォルダーまたはパブリック フォルダー メールボックスが存在しないことを確認します。

    重要

    Microsoft 365、Office 365、またはExchange Onlineにパブリック フォルダーが表示される場合は、パブリック フォルダーとパブリック フォルダー メールボックスを削除する前に、そのフォルダーが存在する理由と、organizationでパブリック フォルダー階層を開始したユーザーを決定することが重要です。

    1. PowerShell Exchange Onlineで、次のコマンドを実行して、パブリック フォルダーメールボックスが存在するかどうかを確認します。

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

      Get-PublicFolder
      
    3. Microsoft 365、Office 365、またはExchange Onlineにパブリック フォルダーがある場合は、次の PowerShell コマンドを実行して削除します。 Microsoft 365 または Office 365 のパブリック フォルダーにあった情報が保存されていることを確認します。

      注意

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

      Get-MailPublicFolder | where {$_.EntryId -ne $null}| Disable-MailPublicFolder -Confirm:$false
      Get-PublicFolder -GetChildren \ | Remove-PublicFolder -Recurse -Confirm:$false
      
    4. パブリック フォルダ-を削除した後、次のコマンドを実行して、パブリック フォルダー メールボックスをすべて削除します。

$hierarchyMailboxGuid = $(Get-OrganizationConfig).RootPublicFolderMailbox.HierarchyMailboxGuid
Get-Mailbox -PublicFolder:$true | Where-Object {$_.ExchangeGuid -ne $hierarchyMailboxGuid} | Remove-Mailbox -PublicFolder -Confirm:$false
Get-Mailbox -PublicFolder:$true | Where-Object {$_.ExchangeGuid -eq $hierarchyMailboxGuid} | Remove-Mailbox -PublicFolder -Confirm:$false

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

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

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

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

    • Folder to size map path は .csv ファイルを保存するネットワーク共有フォルダーのパスとファイル名です。 このトピックでは後ほど、Exchange Online PowerShell を使って、このファイルにアクセスする必要があります。 ファイル名だけを指定すると、ローカル コンピューター上の現在の PowerShellディレクトリにファイルが生成されます。

    • 必要に応じて、処理を続行する前にスクリプトの出力から、メールが有効なシステム フォルダーを削除します。

  2. スクリプトを PublicFolderToMailboxMapGenerator.ps1 実行して、パブリック フォルダーからメールボックスへのマッピング ファイルを作成します。 このファイルは、Exchange Online のパブリック フォルダー メールボックスの適正数を計算するために使用されます。

    .\PublicFolderToMailboxMapGenerator.ps1 <Maximum mailbox size in bytes> <Folder to size map path> <Folder to mailbox map path>
    
    • スクリプトを実行する前に、次のコマンドを使用して、Exchange Online テナントの現在のパブリック フォルダーの制限をチェックします。 次に、パブリック フォルダーの現在のクォータ値をメモします。

      Get-OrganizationConfig | Format-List *quota*
      

      Exchange Onlineでは、既定値は DefaultPublicFolderIssueWarningQuota の場合は 1.7 GB、DefaultPublicFolderProhibitPostQuota の場合は 2 GB です。

    • メールボックスの最大サイズ (バイト単位) は、新しいパブリック フォルダー メールボックスに設定する最大サイズと同じです。 Exchange Onlineでは、パブリック フォルダー メールボックスの最大サイズは 100 GB です。 各パブリック フォルダー メールボックスの容量を増やすために、75 GB の設定を使用することをお勧めします。 パブリック フォルダー メールボックスの数が少ないほど、Outlook クライアントの接続数が少なくなります。これは、パフォーマンスの問題を回避するのに役立つ可能性があります。ユーザーの場合、情報がホストされている場所は透過的であり、クライアント側には同じ階層がさらに表示されます。 Exchange Onlineの既定のパブリック フォルダー "禁止投稿" クォータは 2 GB です。 2 GB を超える個々のパブリック フォルダーがある場合は、次のいずれかのオプションを使用してこの問題を解決できます。

    • 移行バッチを開始する前に、次のコマンドを実行して、既定のパブリック フォルダー "禁止投稿" クォータを増やします。

      Set-OrganizationConfig -DefaultPublicFolderProhibitPostQuota <size value> -DefaultPublicFolderIssueWarningQuota <size value>
      
    • 移行バッチを開始する前に、パブリック フォルダーのコンテンツを削除して、コンテンツのサイズを 2 GB 以下に減らします。

    • 移行バッチを開始する前に、パブリック フォルダーをそれぞれ 2 GB 以下の複数のパブリック フォルダーに分割します。

      注:

      パブリック フォルダーが 30 GB を超え、コンテンツを削除したり、複数のパブリック フォルダーに分割したりできない場合は、パブリック フォルダーをExchange Onlineに移動しないことをお勧めします。

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

    • フォルダーからメールボックスへのマップ パス は、この手順で作成したフォルダーからメールボックスへの .csv ファイルのファイル名とパスと同じです。 ファイル名のみを指定すると、ローカル コンピューターの現在の PowerShell ディレクトリにファイルが生成されます。

注:

スクリプトが実行され、.csv ファイルが生成されると、新しいパブリック フォルダーや既存のパブリック フォルダーの更新は収集されません。

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

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

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

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

注:

このスクリプトExchange Online実行するには、PowerShell を使用します。 詳細については、「Exchange Online PowerShell への接続」を参照してください。

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

  1. Exchange サーバーで次の手順を実行して、 Sync-MailPublicFolders.ps1 スクリプトを実行するための前提条件を満たします。

    1. エンタープライズ管理者のアクセス許可を持つアカウントでサインインします。

    2. EXO PowerShell をインストールします。 EXO PowerShell のインストール方法については、 こちらを参照してください

    3. 管理者モードで PowerShell を起動します。

    4. 次のコマンドを実行して同期を開始します。

      Add-PSSnapin *exchange* | .\Sync-MailPublicFolders.ps1 -CsvSummaryFile:sync_summary.csv
      
    5. メッセージが表示されたら、Microsoft 365 テナント管理者アカウントの資格情報を入力します。

  2. 従来の Exchange サーバーで、移行要求を実行するために必要な以下の情報を取得します。

    1. LegacyExchangeDNパブリック フォルダー管理者ロールのメンバーであるユーザーのアカウントの を見つけます。 これは、この手順の手順 3 で資格情報が必要だったユーザーと同じユーザーです。

      注:

      使用するアカウントは、オンプレミスのExchange Serverでメールボックスが有効になっている必要があります。 パブリック フォルダー管理者アカウントが存在しない場合は、新しいオンプレミス メールボックスを作成します。

      Get-Mailbox <PublicFolder_Administrator_Account> | Select-Object LegacyExchangeDN
      
    2. パブリック フォルダー データベースを LegacyExchangeDN 持つメールボックス サーバーの を検索します。

      Get-ExchangeServer <public folder server> | Select-Object -Expand ExchangeLegacyDN
      
    3. Outlook Anywhere ホスト名の FQDN を検索します。 Outlook Anywhere に複数のインスタンスが存在する場合、従来の Exchange 組織で移行エンドポイントに一番近いインスタンスか、パブリック フォルダー レプリカに一番近いインスタンスのいずれかを選択します。 次のコマンドを実行すると、Outlook Anywhere のすべてのインスタンスが検索されます。

      Get-OutlookAnywhere | Format-Table Identity,ExternalHostName
      
  3. PowerShell Exchange Onlineで、次のコマンドを実行して、前の手順で返された情報を、移行要求で使用される変数に渡します。

    1. 従来の Exchange サーバーに対する管理アクセス許可を持つユーザーの資格情報を変数 $Source_Credentialに渡します。 Exchange Online で実行される移行要求では、この資格情報を使って、コンテンツをコピーするために従来の Exchange サーバーにアクセスします。

      $Source_Credential = Get-Credential <source_domain\PublicFolder_Administrator_Account>
      
    2. ExchangeLegacyDN手順 2a で見つけたレガシ Exchange サーバー上の移行ユーザーの を使用し、変数 $Source_RemoteMailboxLegacyDNに渡します。

      $Source_RemoteMailboxLegacyDN = "<paste the value here>"
      
    3. ExchangeLegacyDN上記の手順 2b で見つけたパブリック フォルダー サーバーの を使用し、変数 $Source_RemotePublicFolderServerLegacyDNに渡します。

      $Source_RemotePublicFolderServerLegacyDN = "<paste the value here>"
      
    4. 上記の手順 2c で見つけた Outlook Anywhere の外部ホスト名を使用し、変数 $Source_OutlookAnywhereExternalHostNameに渡します。

      $Source_OutlookAnywhereExternalHostName = "<paste the value here>"
      
  4. 最後に Exchange Online PowerShell で次のコマンドを実行し、移行要求を作成します。

    注:

    次の例の認証方法は、Outlook Anywhere の設定と一致する必要があります。 使用しない場合、コマンドは失敗します。

    $PfEndpoint = New-MigrationEndpoint -PublicFolder -Name PublicFolderEndpoint -RPCProxyServer $Source_OutlookAnywhereExternalHostName -Credentials $Source_Credential -SourceMailboxLegacyDN $Source_RemoteMailboxLegacyDN -PublicFolderDatabaseServerLegacyDN $Source_RemotePublicFolderServerLegacyDN -Authentication Basic
    $bytes = [System.IO.File]::ReadAllBytes('folder_mapping.csv')
    New-MigrationBatch -Name PublicFolderMigration -CSVData $bytes -SourceEndpoint $PfEndpoint.Identity -NotificationEmails <email addresses for migration notifications>
    

    手順 3: .csv ファイルを生成するで生成されたマップ ファイルを指定folder_mapping.csvします。

    注:

    上記のコマンドがエラー "メールボックス GUID を持つ受信者を見つけることができません" エラーで失敗し、EXO のパブリック フォルダー メールボックスの GUID が示されている場合があります。 これは、AD レプリケーションの待機時間が原因で発生する可能性があります。 このような場合は、1 時間待ってからコマンドをもう一度やり直してください。

  5. 次のコマンドを使用して移行を開始します。

    Start-MigrationBatch PublicFolderMigration
    

バッチ移行は Exchange 管理シェル で New-MigrationBatch コマンドレットを使用して作成する必要がありますが、移行の進行と完了は EAC で表示および管理できます。 New-MigrationBatch コマンドレットは、各パブリック フォルダー メールボックスのメールボックス移行要求を開始するので、メールボックスの移行ページを使用してこれらの要求の状態を表示することができます。 以下の手順により、メールボックス移行ページにアクセスして、メールで受信可能な移行レポートを作成することができます。

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

  2. [メールボックスの移行] > に移動します

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

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

手順 6: 従来の Exchange サーバーでパブリック フォルダーを最後の移行用にロック ダウンする (ダウンタイムが必要)

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

注:

最終的な同期には、ソース環境に加えられた変更、パブリック フォルダーの展開のサイズ、サーバー容量などに応じて、かなりの時間がかかる場合があります。フォルダー階層に多数の破損した ACL があり、移行を開始する前に ACL がクリーンアップされなかった場合、完了に大幅な遅延が発生する可能性があります。 最終的な同期が完了するまで、少なくとも 48 時間のダウンタイムを計画することをお勧めします。

移行バッチと個々の移行要求が正常に同期されていることを確認します。

Exchange Online PowerShell で次のコマンドを実行して、詳細を取得します。

Get-MigrationBatch |?{$_.MigrationType -like "*PublicFolder*"} | Format-Table *last*sync*
Get-PublicFolderMailboxMigrationRequest | Get-PublicFolderMailboxMigrationRequestStatistics | Format-Table targetmailbox,*last*sync*

LastSyncedDate (移行バッチ時) と LastSuccessfulSyncTimestamp (個々のジョブの場合) は、過去 7 日以内にする必要があります。 1 か月以上前のように、あまりに遠すぎる場合は、パブリック フォルダーの移行要求を確認し、すべての要求が最近同期されていることを確認することをお勧めします。

バッチとすべての移行要求が正常に同期されたことを確認したら、レガシ Exchange サーバーで次のコマンドを実行して、レガシ パブリック フォルダーをロックしてファイナライズします。

Set-OrganizationConfig -PublicFoldersLockedForMigration:$true

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

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

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

パブリック フォルダーの移行を完了するには、次のコマンドを実行します。

Complete-MigrationBatch PublicFolderMigration

重要

移行バッチが完了すると、オンプレミスの Exchange サーバーとExchange Onlineから追加のデータを同期することはできません。

移行を完了すると、Exchange は、従来の Exchange サーバーと Exchange Online との間で最終的な同期を実行します。 最終的な同期が成功すると、Exchange Onlineのパブリック フォルダーがロック解除され、移行バッチの状態が [完了] に変わります。 移行バッチの状態は、完了に切り替わる前に、数時間 "同期済み" のままであることが一般的です。 多数のターゲット メールボックスを含む移行の場合、基になるパブリック フォルダーの移行要求に失敗または検疫されていない場合、状態は 24 時間を超えて "同期済み" 状態のままになるのが通常です。

オンプレミスの Exchange サーバーと Microsoft 365 または Office 365の間でハイブリッド展開を構成した場合は、移行が完了した後、PowerShell Exchange Onlineで次のコマンドを実行する必要があります。

Set-OrganizationConfig -RemotePublicFolderMailboxes $Null -PublicFoldersEnabled Local

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

パブリック フォルダーの移行の最終処理の後、次のテストを実行して移行が正常に実行されたことを確認してください。 これにより、Microsoft 365、Office 365、またはパブリック フォルダーの使用に切り替える前に、移行されたパブリック フォルダー階層Exchange Onlineテストできます。

  1. PowerShell Exchange Onlineで、新しく移行されたパブリック フォルダー メールボックスを既定のパブリック フォルダー メールボックスとして使用するように、いくつかのテスト メールボックスを割り当てます。

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

    • 階層の表示
    • アクセス許可のチェック
    • パブリック フォルダーの作成と削除
    • パブリック フォルダーに対する内容の追加と削除
  3. 問題が発生した場合は、この記事の後半の 「移行をロールバックする 」を参照してください。 パブリック フォルダーのコンテンツと階層が許容され、期待どおりに機能する場合は、次の手順に進みます。

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

    Set-OrganizationConfig -PublicFolderMigrationComplete:$true
    
  5. 移行が完了したことを確認したら、PowerShell Exchange Onlineで次のコマンドを実行して、Set-OrganizationConfigPublicFoldersEnabled パラメーターが にLocal設定されていることを確認します。

    Set-OrganizationConfig -PublicFoldersEnabled Local
    

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

Set-Mailbox

Get-Mailbox

Set-OrganizationConfig

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

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

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

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

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

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

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

移行が完了して Exchange Online パブリック フォルダーが想定どおりに動作することを確認したら、従来の Exchange サーバーのパブリック フォルダー データベースを削除する必要があります。

重要

すべてのメールボックスは、パブリック フォルダーの移行前に Microsoft 365 またはOffice 365に移行されているため、オンプレミス環境を通じて一元化されたメール フローではなく、Microsoft 365 または Office 365 (分散型メール フロー) を介してトラフィックをルーティングすることを強くお勧めします。 一元的なメール フローのままにすることを選択した場合、オンプレミス組織からパブリック フォルダーのメールボックス データベースを削除しているため、パブリック フォルダーへの配信に問題が発生する可能性があります。

移行のロールバック

移行に関して何らかの問題が発生し、従来の Exchange パブリック フォルダーを再度アクティブにする必要がある場合は、次の手順を実行します。

注意

従来の Exchange サーバーに移行をロールバックすると、移行後にメール対応パブリック フォルダーに送信されたすべての電子メール、またはパブリック フォルダーに投稿された内容がすべて失われます。 この内容を保存するには、パブリック フォルダーの内容を .pst ファイルにエクスポートして、ロールバック終了後に従来のパブリック フォルダーにインポートする必要があります。

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

    Set-OrganizationConfig -PublicFoldersLockedForMigration:$False
    
  2. Exchange Online PowerShell で次のコマンドを実行し、Exchange Online パブリック フォルダーをすべて削除します。

    $hierarchyMailboxGuid = $(Get-OrganizationConfig).RootPublicFolderMailbox.HierarchyMailboxGuid
    Get-Mailbox -PublicFolder:$true | Where-Object {$_.ExchangeGuid -ne $hierarchyMailboxGuid} | Remove-Mailbox -PublicFolder -Confirm:$false -Force
    Get-Mailbox -PublicFolder:$true | Where-Object {$_.ExchangeGuid -eq $hierarchyMailboxGuid} | Remove-Mailbox -PublicFolder -Confirm:$false -Force
    
  3. 従来の Exchange サーバーで、次のコマンドを実行してフラグを PublicFolderMigrationComplete$false設定します。

    Set-OrganizationConfig -PublicFolderMigrationComplete:$False
    

Outlook の PST エクスポートを使ってパブリック フォルダーを Microsoft 365 または Office 365 に移行する

Outlook の PST エクスポート機能を使用して、オンプレミスのパブリック フォルダー階層が 30 GB を超える場合は、パブリック フォルダーを Microsoft 365、Office 365、またはExchange Onlineに移行しないことをお勧めします。 Microsoft 365 および Office 365 オンライン パブリック フォルダー メールボックスの増加は、サイズ クォータを超えたときにパブリック フォルダー メールボックスを分割する自動分割機能を使用して管理されます。 PST エクスポートを使ってパブリック フォルダーを移行すると、自動分割機能はパブリック フォルダー メールボックスの急激な容量増加に対処できなくなり、自動分割機能によってプライマリ メールボックスからデータが移動されるまで、最大で 2 週間待たなければならない場合があります。 さらに、Outlook PST を使用してパブリック フォルダーを Microsoft 365、Office 365、またはExchange Onlineにエクスポートする前に、次の点を考慮してください。

  • パブリック フォルダーのアクセス許可は、この処理の実行中に失われます。 移行の前に、現在のアクセス許可をキャプチャし、移行の完了後に手動で追加します。

  • 複雑なアクセス許可を使用している場合や移行するフォルダーが多い場合は、コマンドレットを使って移行する方法をお勧めします。

  • PST エクスポートでの移行中に行われた元のパブリック フォルダーに対するアイテムやフォルダーの変更は失われます。 したがって、エクスポートとインポート処理の完了に時間がかかる場合は、コマンドレットを使用する方法をお勧めします。

PST ファイルを使ってパブリック フォルダーを移行する場合は、移行を正常に実行するため以下の手順に従ってください。

  1. 手順 1: 移行スクリプトをダウンロードする」の手順に従って、移行スクリプトをダウンロードします。 ファイルをダウンロード PublicFolderToMailboxMapGenerator.ps1 するだけで済みます。

  2. 手順 3: .csv ファイルを生成する」の手順 2 に従って、パブリック フォルダーとメールボックスとのマッピング ファイルを作成します。 このファイルは、Exchange Online のパブリック フォルダー メールボックスの適正数を計算するために使用されます。

  3. マッピング ファイルに基づいて、必要なパブリック フォルダー メールボックスを作成します。 詳細については、「 パブリック フォルダー メールボックスの作成」を参照してください。

  4. New-PublicFolder コマンドレットで、Mailbox パラメータを使って各パブリック フォルダー メールボックスの最上位のパブリック フォルダーを作成します。

  5. Outlook を使って、PST ファイルをエクスポートし、インポートします。

  6. EAC を使って、パブリック フォルダーのアクセス許可を設定します。 詳細については、「 手順 3: パブリック フォルダーにアクセス許可を割り当てる」を参照してください

注意

PST の移行を既に開始していて、プライマリ メールボックスがいっぱいの問題が発生した場合は、PST 移行を回復するための 2 つのオプションがあります。 最初のオプションは、自動分割がプライマリ メールボックスからデータを移動するのを待つ方法です。 最大で 2 週間かかる場合があります。 ただし、パブリック フォルダー メールボックスが完全にいっぱいになると、自動分割が完了するまで、そのすべてのパブリック フォルダーは新しいコンテンツを受信できません。 もう 1 つのオプションは、パブリック フォルダー メールボックスを作成してから、Mailbox パラメーターを指定して New-PublicFolder コマンドレットを使用して、セカンダリ パブリック フォルダー メールボックスに残りのパブリック フォルダーを作成することです。

パブリック フォルダーの移行のトラブルシューティング

パブリック フォルダーの移行中の一般的な問題については、次のボタンを選択します。

Microsoft 365 管理センターにポップアップ ページが開き、テナント管理者アカウントでログインし、適切なオプションを選択します。