シリアル移行を使用して以前のバージョンから Exchange 2013 にパブリック フォルダーを移行する

 

適用先: Exchange Server 2013

このトピックでは、パブリック フォルダーを Exchange Server 2010 SP3 または Exchange 2007 SP3 RU10 から、同じフォレスト内にある Microsoft Exchange Server 2013 に移行する方法について説明します。

注意

この記事で説明されているシリアル移行方法は廃止される予定であり、Microsoft ではこれをサポートしなくなります。従来のパブリック フォルダーを Exchange 2013 に移行する場合は、バッチ移行方法により行う必要があります。詳細は「バッチ移行を使用して以前のバージョンから Exchange 2013 にパブリック フォルダーを移行する」を参照してください。

注意

このトピックでは、Exchange 2010 SP3 サーバーと Exchange 2007 SP3 RU10 サーバーを レガシ Exchange サーバーと呼びます。

次の PowerShell スクリプトに加えて、*PublicFolderMigrationRequest コマンドレット (移行タスクには Microsoft Exchange Mailbox Replication サービスを使用して実行) を使用することにより移行を実行します。

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

  • Export-PublicFolderStatistics.psd1 このサポート ファイルは、Export-PublicFolderStatistics.ps1 スクリプトで使用されます。同じ場所にダウンロードしてください。

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

  • PublicFolderToMailboxMapGenerator.strings.psd1 このサポート ファイルは、PublicFolderToMailboxMapGenerator.ps1 スクリプトで使用されます。同じ場所にダウンロードしてください。

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

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

パブリック フォルダーを Exchange Online に移行する方法の詳細については、「バッチ移行を使用して、従来のパブリック フォルダーを Office 365 と Exchange Online に移行する」を参照してください。

パブリック フォルダーから Exchange 2013 への移行がサポートされている Exchange のバージョン

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

  • Exchange Server 2010 SP3

  • Exchange Server 2007 SP3 RU10

パブリック フォルダーを Exchange 2003 から直接移行することはできません。組織で Exchange 2003 を実行している場合、すべてのパブリック フォルダー データベースおよびレプリカを Exchange 2007 SP3 RU10 またはそれ以降に移動する必要があります。パブリック フォルダーのレプリカを Exchange 2003 に残すことはできません。

始める前に把握しておくべき情報

  • この手順を実行する際には、あらかじめ次のアクセス許可を割り当てる必要があります。

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

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

    • Exchange 2007 では、Exchange 組織管理者または Exchange サーバー管理者の役割を割り当てられる必要があります。さらに、対象サーバーのパブリック フォルダー管理者の役割およびローカルの Administrators グループを割り当てる必要があります。詳細については、「管理者の役割にユーザーまたはグループを追加する方法」を参照してください。

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

  • パブリック フォルダーの移行が開始された後に作成され、メールが有効にされたパブリック フォルダーは、移行先の組織ではメールは有効になりません。移行が完了したら、これらのパブリック フォルダーのメールを手動で有効にする必要があります。これは、移行を開始する前に存在していたものの、移行開始後にメールが有効にされたパブリック フォルダーにも当てはまります。

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

  • パブリック フォルダーを移行する前に、まずすべてのユーザー メールボックスを Exchange 2013 に移動することを強くお勧めします。従来の Exchange サーバーにあるメールボックスは、Exchange 2013 サーバーのパブリック フォルダーにアクセスできません。詳細については、「Exchange 2013 でのメールボックスの移動」を参照してください。

  • Exchange 2007 サーバー上で、「Windows PowerShell 2.0 および WinRM 2.0 for Windows Server 2008 x64 Edition」へアップグレードします。

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

ヒント

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

実行方法

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

  1. Microsoft Exchange 2013 のパブリック フォルダー移行スクリプト」にある 4 つのスクリプトをすべてダウンロードします。

  2. PowerShell を実行するローカル コンピューターにスクリプトを保存します。たとえば、「C:\PFScripts」とします。

手順 2:移行の準備

移行を開始する前に、前提となる次のステップを実行します。

レガシー Exchange サーバー上で前提となる手順

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

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

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

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

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

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

  2. パブリック フォルダーの名前にバックスラッシュ (\) が含まれる場合、そのパブリック フォルダーは、移行時に親パブリック フォルダー内に作成されます。名前にバックスラッシュが含まれるパブリック フォルダーは、移行前に名前を変更することをお勧めします。

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

      Get-PublicFolderStatistics -ResultSize Unlimited | Where {$_.Name -like "*\*"} | Format-List Name, Identity
      
    2. Exchange 2007 では、名前にバックスラッシュが含まれているパブリック フォルダーを特定するには、次のコマンドを実行します。

      Get-PublicFolderDatabase | ForEach {Get-PublicFolderStatistics -Server $_.Server | Where {$_.Name -like "*\*"}}
      
    3. パブリック フォルダーが戻された場合、次のコマンドを実行して名前を変更します。

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

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

    Get-OrganizationConfig | Format-List PublicFoldersLockedforMigration, PublicFolderMigrationComplete
    

    PublicFoldersLockedforMigration プロパティまたは PublicFolderMigrationComplete プロパティの状態が $true の場合は、以下のコマンドを実行して値を $false に設定します。

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

    警告

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

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

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

  1. 既存のパブリック フォルダーの移行要求がないことを確認します。ある場合は、それらをクリアします。この手順は前提条件で、すべてのケースで必要ではありません。これは、パイプラインに既存の移行要求が存在している可能性がある場合にだけ必要です。いずれの場合でも、以下のコマンドは開始しようとしている新しい移行には影響しません。次の例では、既存のパブリック フォルダーの移行要求を削除します。

    Get-PublicFolderMigrationRequest | Remove-PublicFolderMigrationRequest -Confirm:$false
    
  2. Exchange 2013 サーバーに既存のパブリック フォルダーがないことを確認するには、次のコマンドを実行します。

    Get-Mailbox -PublicFolder 
    
    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 サーバーで Export-PublicFolderStatistics.ps1 スクリプトを実行し、フォルダー名からフォルダー サイズへのマッピング ファイルを作成します。このファイルには、2 つの列があります。FolderNameFolderSize です。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 2013 サーバーからアクセスする必要があります。ファイル名だけを指定すると、ファイルは現在の場所に生成されます。

  2. PublicFolderToMailboxMapGenerator.ps1 スクリプトを実行して、パブリック フォルダーとメールボックスとのマッピング ファイルを作成します。このファイルは、Exchange 2013 メールボックス サーバー上に正しい数のパブリック フォルダー メールボックスを作成するために使用されます。

    注意

    パブリック フォルダーの名前にバックスラッシュ (</STRONG>) が含まれる場合、そのパブリック フォルダーは親パブリック フォルダー内に作成されます。.csv ファイルを見直して、バックスラッシュを含む名前を編集することをお勧めします。

    .\PublicFolderToMailboxMapGenerator.ps1 <Maximum mailbox size in bytes> <Folder to size map path> <Folder to mailbox map path>
    
    • Maximum mailbox size in bytes は、新しいパブリック フォルダー メールボックス用に設定する最大サイズです。

      注意

      パブリック フォルダー メールボックスのサイズを増やせるように、拡張が可能なサイズを指定する必要があります。

    • Folder to size map path は、Export-PublicFolderStatistics.ps1 スクリプトを実行したときに作成した .csv ファイルのファイル パスです。

    • Folder To mailbox map path は、この手順で作成するフォルダーからメールボックスへのマッピング .csv ファイルのファイル名とパスです。ファイル名だけを指定すると、ファイルは現在の場所に生成されます。

手順 4:Exchange 2013 サーバーにパブリック フォルダー メールボックスを作成する

警告

作成するパブリック フォルダー メールボックスの名前はマッピング ファイルの TargetMailbox の名前です。マッピング ファイルの TargetMailbox 名は組織の命名規則に合わせて編集できます。

  1. Exchange 2013 メールボックス サーバーで最初にパブリック フォルダー メールボックスを作成する場合は、次のコマンドを実行します。パブリック フォルダーのメールボックスにはパブリック フォルダーの階層情報が含まれるのに対して、パブリック フォルダーには実際のコンテンツが含まれます。作成する最初のパブリック フォルダーのメールボックスは、マスター階層メールボックスになります。最初のパブリック フォルダー メールボックスは HoldForMigration モードで作成する必要があります。

    New-Mailbox -PublicFolder <Name> -HoldForMigration:$true
    
  2. PublicFoldertoMailboxMapGenerator.ps1 スクリプトで生成された .csv ファイルに基づいて、追加のパブリック フォルダー メールボックスを作成する場合は、次のコマンドを実行します。例えば, .csv ファイルを開くとパブリック フォルダーは、Mailbox1、Mailbox2 のように名前付けされていたとします。ここで最後のパブリック フォルダーの名前が Mailbox13 だった場合、13 のパブリック フォルダー メールボックスを作成する必要があります。

    複数のパブリック フォルダー メールボックスを作成する必要がある場合は、スクリプトを作成してプロセスを自動化することができます。この例では、25 個のパブリック フォルダー メールボックスを作成します。

    $numberOfMailboxes = 25; 
    
    for($index =1 ; $index -le $numberOfMailboxes ; $index++)
    
    {
    
        $PFMailboxName = "Mailbox"+$index; 
     if($index -eq 1) {New-Mailbox -PublicFolder $PFMailboxName -HoldForMigration:$true -IsExcludedFromServingHierarchy:$true;}
    else
    {New-Mailbox -PublicFolder $PFMailboxName -IsExcludedFromServingHierarchy:$true}
    }
    

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

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

Exchange 2007 のパブリック フォルダーを移行する手順は、Exchange 2010 のパブリック フォルダーを移行する手順とは異なります。正しい手順に従っているかどうか確認してください。

Exchange 2007 のパブリック フォルダーの移行

  1. Exchange 2007 の OWAScratchPad フォルダーや スキーマ ルート フォルダーのサブツリーなど、レガシ システムのパブリック フォルダーは、Exchange 2013 では認識されず、無効なアイテムとして処理されます。これにより移行は失敗します。移行要求の一部として、BadItemLimit パラメーターの値を指定する必要があります。この値は、保有するパブリック フォルダー データベースの数によって異なります。次のコマンドでは、保有しているパブリック フォルダー データベースの数を決定し、移行要求に対して BadItemLimit を計算します。

    $PublicFolderDatabasesInOrg = @(Get-PublicFolderDatabase)
    
    $BadItemLimitCount = 5 + ($PublicFolderDatabasesInOrg.Count -1)
    
  2. Exchange 2013 メールボックス サーバーから、次のコマンドを実行します。

    New-PublicFolderMigrationRequest -SourceDatabase (Get-PublicFolderDatabase -Server <Source server name>) -CSVData (Get-Content <Folder to mailbox map path> -Encoding Byte) -BadItemLimit $BadItemLimitCount
    
  3. 移行が正しく開始できたことを確認するには、次のコマンドを実行します。

    Get-PublicFolderMigrationRequest | Get-PublicFolderMigrationRequestStatistics -IncludeReport | Format-List
    

    移行要求の状態が QueuedInProgress になれば、コマンドは正常に開始しています。パブリック フォルダー内のデータ量によっては、このコマンドの完了までに時間がかかることがあります。移行先サーバーの負荷に合わせて移行を調節していない場合、データ コピー速度は、通常、毎時 2 GB から 3 GB です。

  4. 上記のコマンドを定期的に実行して、移行要求の状態を確認することができます。この状態が AutoSuspended になった場合、手順 6:レガシー Exchange サーバーでパブリック フォルダーを最後の移行用にロック ダウンする (ダウンタイムが必要)に移ることができます。

Exchange 2010 のパブリック フォルダーの移行

  1. Exchange 2013 メールボックス サーバーから、次のコマンドを実行します。

    New-PublicFolderMigrationRequest -SourceDatabase (Get-PublicFolderDatabase -Server <Source server name>) -CSVData (Get-Content <Folder to mailbox map path> -Encoding Byte)
    
  2. 移行が正しく開始できたことを確認するには、次のコマンドを実行します。

    Get-PublicFolderMigrationRequest | Get-PublicFolderMigrationRequestStatistics -IncludeReport | Format-List
    

    移行要求の状態が QueuedInProgress になれば、コマンドは正常に開始しています。パブリック フォルダー内のデータ量によっては、このコマンドの完了までに時間がかかることがあります。移行先サーバーの負荷に合わせて移行を調節していない場合、データ コピー速度は、通常、毎時 2 GB から 3 GB です。

  3. 上記のコマンドを定期的に実行して、移行要求の状態を確認することができます。この状態が AutoSuspended になった場合、手順 6:レガシー Exchange サーバーでパブリック フォルダーを最後の移行用にロック ダウンする (ダウンタイムが必要)に移ることができます。

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

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

警告

必要なダウンタイムの長さは、移行が AutoSuspended 状態になってから新しいコンテンツがどれだけ生成されたかによって異なります。移行要求が AutoSuspended 状態になってから移行の最終処理が可能になるまでに長時間が経過した場合には、当初の同期以後に発生した変更を反映するように、次のコマンドを実行することを推奨します。これを行うと、移行の最終処理にに必要となるダウンタイムの長さが短縮されます。
Resume-PublicFolderMigrationRequest \PublicFolderMigration

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

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

Set-OrganizationConfig -PublicFoldersLockedForMigration:$true

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

組織に複数のパブリック フォルダー データベースがある場合、パブリック フォルダーのレプリケーションが完了するまで待ち、すべてのパブリック フォルダー データベースの PublicFoldersLockedForMigration フラグが解除されたこと、およびフォルダーに対して最近実行した保留中の変更が組織全体で統合されたことを確認する必要があります。この処理には数時間かかる場合があります。

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

既定では、Set-PublicFolderMigrationRequest コマンドレットを実行する場合、PreventCompletion フラグを削除してから移行要求を再開しない限り、このコマンドレットは完了しません。

Set-PublicFolderMigrationRequest -Identity \PublicFolderMigration -PreventCompletion:$false

Resume-PublicFolderMigrationRequest -Identity \PublicFolderMigration

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

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

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

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

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

    1. 階層の表示

    2. アクセス許可のチェック

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

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

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

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

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

    Set-OrganizationConfig -PublicFoldersEnabled Local
    

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

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

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

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

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

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

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

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

移行のロールバック

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

警告

移行が完了すると、メールが有効なパブリック フォルダーへのメール、パブリック フォルダーのアクセス許可または階層への変更、またはパブリック フォルダーへのコンテンツの投稿で、Exchange 2013 への移行後に発生したものは失われます。結果として、もし移行をロールバックすると、Exchange 2013 サーバーのパブリック フォルダーのデータや変更が失われる可能性があります。このコンテンツを保存するには、この手順を実行する前にパブリック フォルダーのコンテンツを .pst ファイルにエクスポートし、ロールバックの後にこの .pst ファイルをレガシ パブリック フォルダーへインポートします。

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

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

    Get-Mailbox -PublicFolder | Where{$_.IsRootPublicFolderMailbox -eq $false} | Remove-Mailbox -PublicFolder -Force -Confirm:$false
    
    
    Get-Mailbox -PublicFolder | Remove-Mailbox -PublicFolder -Force -Confirm:$false
    
    
  3. レガシ Exchange サーバーで、次のコマンドを実行して、PublicFolderMigrationComplete フラグを $false に設定します。

    Set-OrganizationConfig -PublicFolderMigrationComplete:$False