共用方式為


使用批次移轉將 Exchange 2010 公用資料夾移轉至 Exchange 2016 或 Exchange 2019

將公用資料夾從 Exchange Server 2010 SP3 RU8 移轉至相同樹系內的 Exchange Server 2016or Exchange 2019。

我們將 Exchange 2010 SP3 RU8 或更新版本伺服器稱為 舊版 Exchange 伺服器

您將使用 *MigrationBatch Cmdlet 和 *PublicFolderMigrationRequest Cmdlet 來執行移轉,以進行疑難排解。 此外,您將使用下列 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 2016,因為具有 Exchange 2010 信箱的使用者將無法存取 Exchange 2016 上的公用資料夾。 如需詳細資訊,請參閱信箱在Exchange Server中移動

  • 移轉完成之後,如果您希望外部寄件者將郵件傳送至已啟用郵件功能的公用資料夾,則必須至少授與 匿名 使用者 建立專案 許可權。 如果您未這麼做,外部寄件者會收到傳遞失敗通知,而訊息將不會傳遞至已移轉且啟用郵件功能的公用資料夾。 若要深入了解如何設定匿名使用者的權限,請參閱啟用或停用公用資料夾的郵件功能

  • 您必須使用單一移轉批次來遷移您的所有公用資料夾資料。 Exchange 只允許一次建立一個移轉批次。 如果您嘗試同時建立多個移轉批次,則結果會出現錯誤。

  • 如需適用於此主題中程序的快速鍵相關資訊,請參閱 Exchange 系統管理中心的鍵盤快速鍵

重要事項

開始移轉之前,請務必將仲裁信箱移轉至目標 Exchange 伺服器。 否則,您的移轉批次會停止回應處於 [啟動 ] 狀態。 若要識別您的移轉仲裁信箱,請執行下列 Cmdlet:
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
    

    先前成功的移轉會將 PublicFoldersLockedforMigrationPublicFolderMigrationComplete 屬性設定為 值 True ,這會導致新的移轉要求失敗。

    如果屬性值為 True ,請執行下列命令,將它們變更為 False

    Set-OrganizationConfig -PublicFoldersLockedforMigration $false -PublicFolderMigrationComplete $false
    

    注意事項

    重設這些屬性之後,您必須等候 Exchange 偵測新的設定。 這可能需要兩個小時才能完成。

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

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 腳本來建立資料夾名稱對資料夾大小對應檔案。 此腳本必須由本機系統管理員執行。 The file will contain two columns: FolderName and FolderSize. FolderSize資料行的值會以位元組顯示。 For example, \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 完整檔案路徑。

    • 信箱對應路徑的資料夾 等於您將使用此步驟建立的資料夾對信箱.csv檔的檔案名和路徑。 如果您只指定檔案名,則檔案會在本機電腦目前的 PowerShell 目錄中產生。

步驟 4:在 Exchange 2016 中建立公用資料夾信箱

執行下列命令來建立目標公用資料夾信箱。 腳本會在您先前在步驟 3 PublicFoldertoMailboxMapGenerator.ps1 中產生的.csv檔案中,執行腳本,為每個信箱建立目標信箱。

.\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. 移至[收件者>移轉]

      3. 選取您剛才建立的移轉批次,然後按一下 [開始] 按鈕。

      在 EAC 中, [狀態] 資料行會將初始批次狀態顯示為 [ 已建立]。 移轉期間狀態會變更為 [同步 ]。 當移轉要求完成時,狀態會 是 [同步]。 您可以按兩下批次,以檢視批次內個別信箱的狀態。 信箱作業的開頭為 [已排入佇列]狀態。 當作業開始時,狀態為 [正在同步],一旦 InitialSync 完成,狀態就會顯示 [ 已同步]

您可以在 EAC 的 [收件者> 移轉] 索引標籤中,檢視及管理移轉的進度和完成。

由於 New-MigrationBatch Cmdlet 會起始每個公用資料夾信箱的信箱移轉要求,因此您可以使用 EAC 中的信箱移轉頁面來檢視這些要求的狀態,而且您可以建立可透過電子郵件傳送給您的移轉報告。

  1. 登入Exchange Online並開啟 EAC。

  2. 移至[收件者>移轉]

  3. 選取您剛才建立的移轉要求,然後按一下 [詳細資料] 窗格中的 [檢視詳細資料]。

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

步驟 6:鎖定 Exchange 2010 伺服器上的公用資料夾,以進行最終移轉 (需要停機)

到了移轉的這個階段,使用者已經可以存取公用資料夾。 後續步驟會將使用者從 Exchange 2010 公用資料夾登出,並在移轉完成其最終同步處理時鎖定資料夾。 使用者將無法在此程序期間存取公用資料夾。 另外,所有傳送到擁有郵件功能之公用資料夾的郵件都將排入佇列,直到公用資料夾移轉完成後才進行遞送。

在您如下所述執行 PublicFoldersLockedForMigration 命令之前,請先確定所有的工作皆為 Synced 狀態。 您可以執行 Get-PublicFolderMailboxMigrationRequest 命令來進行確認。 只有在確認過所有工作都是 Synced 狀態後,才繼續這個步驟。

在 Exchange 2010 伺服器上,執行下列命令來鎖定公用資料夾以進行完成。

Set-OrganizationConfig -PublicFoldersLockedForMigration:$true

如需詳細的語法及參數資訊,請參閱 Set-OrganizationConfig

如果您的組織有多個公用資料夾資料庫,您必須等到公用資料夾複寫完成,以確認所有公用資料夾資料庫都已挑選 PublicFoldersLockedForMigration 屬性值,而且使用者最近對資料夾所做的任何擱置變更都已聚合整個組織。 可能會花幾小時的時間。

步驟 7:完成公用資料夾移轉 (需要停機)

首先,執行下列 Cmdlet,將 Exchange 2016 部署類型變更為 Remote

Set-OrganizationConfig -PublicFoldersEnabled Remote

完成之後,您可以執行下列命令來完成公用資料夾移轉:

Complete-MigrationBatch PFMigration

或者,在 EAC 中,您可以按一下 [ 完成此移轉批次] 來完成移轉。

當您完成移轉時,Exchange 會在 Exchange 2010 伺服器與 Exchange 2016 之間執行最終同步處理。 如果最終同步處理成功,Exchange 2016 伺服器上的公用資料夾將會解除鎖定,且移轉批次的狀態會變更為 [ 正在完成],然後變更為 [ 已完成]。 移轉批次通常會在數小時之後,其狀態才從已同步處理變更為正在完成,此時會開始最後的同步處理。

注意事項

如果因為任何原因,移轉批次檔未完成 (PublicFolderMigrationComplete 屬性值) False 重新開機 Exchange 2010 伺服器上的資訊存放區 (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
    

    重要事項

    初始移轉驗證完成之後,請勿使用 IsExcludedFromServingHierarchy 參數,因為 Exchange 的自動化負載平衡服務會使用此參數。

  4. 在 Exchange 2010 伺服器上,執行下列命令以指出公用資料夾移轉已完成:

    Set-OrganizationConfig -PublicFolderMigrationComplete:$true
    
  5. 確認移轉完成之後,請在 Exchange 2016 伺服器上執行下列命令:

    Set-OrganizationConfig -PublicFoldersEnabled Local
    
  6. 最後,如果您想要讓外部寄件者將郵件傳送至已移轉的擁有郵件功能的公用資料夾,則至少必須授與 匿名 使用者 建立專案 許可權。 如果您未這麼做,外部寄件者會收到傳遞失敗通知,而訊息將不會傳遞至已移轉且啟用郵件功能的公用資料夾。

    您可以使用 Exchange 管理命令介面或 Outlook 來設定匿名使用者的許可權。 若要深入了解如何設定匿名使用者的權限,請參閱啟用或停用公用資料夾的郵件功能

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

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

  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 伺服器上