次の方法で共有


バッチ移行を使用して、従来のパブリック フォルダーを 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 ロール グループのメンバーである必要があります。 この役割グループは、最初に登録したときに割り当てられたアクセス許可とは異なります。 組織の管理役割グループを有効にする方法の詳細については、「Exchange Onlineで役割グループを管理する」を参照してください。

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

  • パブリック フォルダーの移行を開始する前に、organization内の 1 つのパブリック フォルダーが 25 GB を超える場合は、そのフォルダーからコンテンツを削除して小さくすることをお勧めします。 または、パブリック フォルダーのコンテンツを複数の小さなパブリック フォルダーに分割することをお勧めします。 ここで挙げた 25 GB の制限はパブリック フォルダーにのみ適用され、子またはサブフォルダーには適用されません。 どちらのオプションも実現できない場合は、パブリック フォルダーをExchange Onlineに移動しないことをお勧めします。 詳細については、「Exchange Online の制限」をご覧ください。

    ヒント

    Exchange Onlineの現在のパブリック フォルダー クォータが 25 GB 未満の場合は、Set-OrganizationConfig コマンドレットを使用して、DefaultPublicFolderIssueWarningQuotaパラメーターとDefaultPublicFolderProhibitPostQuota パラメーターを使用してそれらを増やすことができます。

  • ファイアウォールとアクセス制御リスト (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/details.aspx?id=100414からダウンロードします。

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

手順 2:移行の準備

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

注:

メールボックスの役割がインストールされているオンプレミスの Exchange 2010 サーバーからソース側検証スクリプトを実行することを強くお勧めします。 スクリプトでは、移行が遅くなることがわかっている問題と、これらの問題を解決するためのガイダンスをスキャンして報告します。 ここで説明する例を使用 します

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

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

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

注:

メールボックスの役割がインストールされているオンプレミスの Exchange 2010 サーバーからソース側検証スクリプトを実行することを強くお勧めします。 スクリプトでは、移行が遅くなることがわかっている問題と、これらの問題を解決するためのガイダンスをスキャンして報告します。 ここに記載されている例を使用 します。 スクリプトでは、次のすべての前提条件が実行されます。

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

    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 に設定する必要があります。 それ以外の場合、移行要求は失敗します。

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

    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 メール パブリック フォルダーが選択されていないことを確認します。 選択されていない場合は、次のセクションに進むことができます。 選択されている場合は、[チェック] ボックスをオフにして、[次へ] を選択します。

      注:

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

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

構文とパラメーターの詳細については、次の記事を参照してください。

クラウドでの前提条件の手順

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

    重要

    移行要求を削除する前に、既存の要求があった理由を理解しておくことが重要です。 次のコマンドは、前の要求がいつ行われたかを判断し、発生した可能性のある問題を診断するのに役立ちます。 変更が行われた理由を判断するには、organization内の他の管理者と通信する必要がある場合があります。

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

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

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

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

    重要

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

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

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

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

      注意

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

      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 スクリプトを実行して、フォルダー名とフォルダーサイズのマッピング ファイルを作成します。 ローカル管理者は、このスクリプトを実行する必要があります。 ファイルには、 FolderName と FolderSize の 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に移動しないことをお勧めします。

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

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

注:

スクリプトが実行され、.csv ファイルが生成された後、既存のパブリック フォルダーに対する新しいパブリック フォルダーまたは更新プログラムは収集されません。

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

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

.\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. 「Exchange Online 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. 手順 2a で見つけたレガシ Exchange サーバー上の移行ユーザーの ExchangeLegacyDN を使用し、変数 $Source_RemoteMailboxLegacyDNに渡します。

      $Source_RemoteMailboxLegacyDN = "<paste the value here>"
      
    3. 上記の手順 2b で見つけたパブリック フォルダー サーバーの ExchangeLegacyDN を使用し、変数 $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>
    

    ここで folder_mapping.csv は、「 手順 3: .csv ファイルを生成する」で生成されたマップ ファイルです。

    注:

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

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

    Start-MigrationBatch PublicFolderMigration
    

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

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

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

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

構文とパラメーターの詳細については、次の記事を参照してください。

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

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

注:

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

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

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

Get-MigrationBatch | Where-Object {$_.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:パブリック フォルダーの移行をテストして、ロックを解除する

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

  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 (分散型メール フロー) を介してトラフィックをルーティングすることを強くお勧めします。 オンプレミスのorganizationからパブリック フォルダー メールボックス データベースを削除したので、メール フローを一元化したままにしておくことで、パブリック フォルダーへの配信の問題が発生する可能性があります。

移行のロールバック

移行に関して何らかの問題が発生し、従来の 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 に移行する

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

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

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

  • 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 週間かかる場合があります。 ただし、完全に埋め込まれたパブリック フォルダー メールボックス内のすべてのパブリック フォルダーは、自動分割が完了するまで新しいコンテンツを受信できません。
  • パブリック フォルダー メールボックスを作成し、Mailbox パラメーターを指定して New-PublicFolder コマンドレットを使用して、セカンダリ パブリック フォルダー メールボックスに残りのパブリック フォルダーを作成します。

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

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

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