使用序列遷移公用資料夾從舊版移轉至 Exchange 2013

 

**適用版本:**Exchange Server 2013

**上次修改主題的時間:**2016-12-19

本主題說明如何將公用資料夾從 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 信箱複寫服務執行移轉工作。

  • Export-PublicFolderStatistics.ps1   此指令碼會建立資料夾名稱至資料夾大小的對應檔案。

  • Export-PublicFolderStatistics.psd1   此支援檔案由 Export-PublicFolderStatistics.ps1 指令碼使用,應下載到相同位置。

  • PublicFolderToMailboxMapGenerator.ps1   此指令碼會建立公用資料夾至信箱的對應檔案。

  • PublicFolderToMailboxMapGenerator.strings.psd1   此支援檔案由 PublicFolderToMailboxMapGenerator.ps1 指令碼使用,應下載到相同位置。

步驟 1: 下載移轉指令碼提供關於到哪裡下載這些指令碼詳細資料。

如需與公用資料夾相關的其他管理工作,請參閱 公用資料夾程序

如需如何將公用資料夾遷移至 Exchange Online 的詳細資訊,請參閱使用批次移轉至 Office 365 和 Exchange Online 移轉舊版公用資料夾

哪些版本的 Exchange 支援將公用資料夾移轉至 Exchange 2013?

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 Server 系統管理員角色指派。此外,您必須指派的公用資料夾系統管理員角色和目標伺服器的本機管理員群組。如需詳細資訊,請參閱 <如何新增使用者或系統管理員角色群組

  • 在遷移之前,您應考量公用資料夾的限制

  • 擁有郵件功能的公用資料夾建立之後啟動公用資料夾移轉的不是目的地組織中具有郵件功能。您會需要手動-啟用這些公用資料夾的郵件手動完成移轉後。這也適用於開始移轉之前存在但已啟用郵件功能之後開始遷移的公用資料夾。

  • 開始之前,建議您閱讀本主題全文,因為部分步驟需要停機。

  • 將公用資料夾移轉之前,強烈建議您先將所有使用者信箱都移至 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 OnlineExchange Online Protection

該怎麼做?

步驟 1:下載移轉指令碼

  1. 下載總共四個Microsoft Exchange 2013 公用資料夾移轉指令碼

  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
    

    如果 PublicFoldersLockedforMigrationPublicFolderMigrationComplete 屬性的狀態為 $true,則執行下列命令將值設定為 $false

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

    警告

    重新設定這些屬性之後,您必須等待 Exchange 偵測新的設定。可能會花幾分鐘的時間。.

如需詳細的語法及參數資訊,請參閱下列主題:

Exchange 2013 伺服器上的必要步驟

  1. 請確定目前沒有任何公用資料夾移轉要求。如果有,請清除它們。此步驟是先決條件,不是所有情況都需要。只有在您認為管線中目前可能有移轉要求時才需要。在任何情況下,下列命令不會影響新的移轉。下例示範移除任何現有的公用資料夾移轉要求。

    Get-PublicFolderMigrationRequest | Remove-PublicFolderMigrationRequest -Confirm:$false
    
  2. 若要確定 Exchange 2013 Server 上目前沒有公用資料夾,請執行下列命令。

    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 指令碼以建立資料夾名稱至資料夾大小的對應檔案。該檔案有兩欄:[FolderName] 與 [FolderSize]。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 Server 存取此檔案。如果您僅指定檔案名稱,檔案將在其目前位置產生。

  2. 執行 PublicFolderToMailboxMapGenerator.ps1 指令碼以建立公用資料夾至信箱的對應檔案。此檔案用於在 Exchange 2013 信箱伺服器上建立正確的公用資料夾信箱數目。

    注意事項注意事項:
    如果公用資料夾的名稱包含反斜線 (\),公用資料夾將建立在公用資料夾的上層資料夾中。建議您檢閱 .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 2013 無法辨識舊版系統的公用資料夾,例如 Exchange 2007 中的 OWAScratchPad 和 schema-root 資料夾子樹狀目錄,因此會將之視為損毀的項目。這將導致移轉失敗。您必須指定 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,請進行Step 6: Lock down the public folders on the legacy Exchange server for final migration (downtime required)。

移轉 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,請進行Step 6: Lock down the public folders on the legacy Exchange server for final migration (downtime required)。

如需詳細的語法及參數資訊,請參閱下列主題:

步驟 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-PublicFolderMigrationRequestResume-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
    

如何知道這是否正常運作?

在Step 2: Prepare for the migration中,曾指示您在移轉開始之前,擷取公用資料夾架構、統計資料與權限的快照。下列步驟可在移轉完成後擷取相同快照,協助驗證公用資料夾已成功移轉。然後,您可以比較兩個檔案中的資料以驗證移轉是否成功。

  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