使用批次移轉將舊版公用資料夾移轉至 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 匯出來移轉公用資料夾時,自動分割無法處理公用資料夾信箱的突然成長,而且您可能必須等候最多兩周,自動分割才能將資料從主要信箱移動。 建議您使用本檔中的 Cmdlet 型指示,將公用資料夾移轉至 Microsoft 365、Office 365 或 Exchange Online。 不過,如果您選擇使用 PST 匯出移轉公用資料夾,請參閱本主題稍後的使用Outlook PST 匯出將公用資料夾移轉至 Microsoft 365 或Office 365一節。

除了下列 PowerShell 腳本之外,您還會使用 *-MigrationBatch Cmdlet 來執行移轉:

  • SourceSideValidations.ps1:來源端驗證腳本會掃描來源的公用資料夾,並報告找到的問題,以及修正問題的動作。 您將在舊版 Exchange Server On-Premises 上執行此腳本。

  • Export-PublicFolderStatistics.ps1:此腳本會建立資料夾名稱對資料夾大小對應檔案。 您將在舊版 Exchange Server 上執行此腳本。

  • Export-PublicFolderStatistics.psd1:腳本會使用這個支援檔案, Export-PublicFolderStatistics.ps1 而且應該下載到相同的位置。

  • PublicFolderToMailboxMapGenerator.ps1:此腳本會使用腳本的輸出來建立公用資料夾對信箱對 Export-PublicFolderStatistics.ps1 應檔案。 您將在舊版 Exchange Server 上執行此腳本。

  • PublicFolderToMailboxMapGenerator.strings.psd1:腳本會使用這個支援檔案, PublicFolderToMailboxMapGenerator.ps1 而且應該下載到相同的位置。

  • Create-PublicFolderMailboxesForMigration.ps1:此腳本會建立移轉的目標公用資料夾信箱。 此外,此腳本會根據公用資料夾 限制中建議的每個公用資料夾信箱使用者登入數目指導方針,計算處理估計使用者負載所需的信箱數目。

  • Create-PublicFolderMailboxesForMigration.strings.psd1:這個支援檔案是由 Create-PublicFolderMailboxesForMigration.ps1 腳本使用,應該下載到相同的位置。

  • Sync-MailPublicFolders.ps1:此腳本會同步處理本機 Exchange 部署與 Microsoft 365 或 Office 365 之間啟用郵件功能的公用資料夾物件。 您將在舊版 Exchange Server 上執行此腳本。

  • 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 移轉公用資料夾。 如果您在組織中執行 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 中,您必須是組織管理角色群組的成員。 此角色群組與您訂閱 Microsoft 365、Office 365 或 Exchange Online 時指派給您的許可權不同。 如需如何啟用組織管理角色群組的詳細資訊,請參閱在Exchange Online中管理角色群組

  • 在 Exchange 2010 中,您必須是組織管理或伺服器管理 RBAC 角色群組的成員。 如需詳細資訊,請參閱將成員新增至角色群組

  • 開始公用資料夾移轉之前,如果您組織中的任何單一公用資料夾大於 25 GB,建議您刪除該資料夾中的內容,使其變小。 或者,我們建議您將公用資料夾的內容分割成多個較小的公用資料夾。 請注意,這裡所說的 25 GB 限制僅適用於公用資料夾,可能有問題的任何子系或子資料夾不在此限。 如果這些方式都不可行,建議您不要將公用資料夾移至 Exchange Online。 如需詳細資訊,請參閱<Exchange Online 限制>(機器翻譯)。 注意:如果您目前在 Exchange Online 中的公用資料夾配額小於 25 GB,您可以使用Set-OrganizationConfig Cmdlet 來使用 和 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 Server 上的信箱。

  • 需要在舊版 Exchange Server 上啟用 Outlook Anywhere。 如需在 Exchange 2010 伺服器上啟用 Outlook Anywhere 的詳細資訊,請參閱 啟用 Outlook Anywhere

  • 您無法使用 Exchange 系統管理中心 (EAC) 或 Exchange 管理主控台 (EMC) 執行此程序。 在舊版 Exchange 伺服器上,您需要使用 Exchange 管理命令介面。 對於 Exchange Online,您必須使用 Exchange Online PowerShell。 如需詳細資訊,請參閱<連線至 Exchange Online PowerShell>。

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

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

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

  • 請確認 DefaultPublicFolderAgeLimit 是否已在組織層級 () Get-OrganizationConfig | Format-List DefaultPublicFolderAgeLimit 上設定,或您是否有針對個別公用資料夾設定任何 AgeLimit (Get-PublicFolder <FolderPath> | Format-List AgeLimit) ,以便防止自動刪除內容。

提示

有問題嗎? 在 Exchange 論壇中尋求協助。 請造訪論壇:Exchange OnlineExchange 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 中沒有孤立的公用資料夾郵件物件,這表示 Active Directory 中的物件沒有對應的 Exchange 物件。
  • 確認在 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 為止, 若要這樣做,請執行下列命令,以使用已知名稱設定可正確地將電子郵件訊息路由傳送至 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) 中停用「目錄架構邊緣封鎖 (DBEB)」。 如需詳細資訊,請參閱 使用目錄型 Edge 封鎖 來拒絕傳送給無效收件者的訊息。

    如果公用資料夾的名稱包含反斜線 ( ) \ 或正斜線 ( ) / ,則發生移轉時,可能會在父公用資料夾中建立公用資料夾。 移轉之前,建議您重新命名名稱中有反斜線或正斜線的任何公用資料夾。

    在 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. (請注意,只有當您重新嘗試先前失敗的移轉時,才需要此步驟。) 如果 PublicFoldersLockedforMigrationPublicFolderMigrationComplete 屬性的狀態為 $true ,請執行下列命令將值設定為 $false

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

    注意

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

  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識別碼同步處理內部部署目錄,則如果您不是使用 Microsoft Entra Connect,則必須執行下列 (,您可以略過此步驟) :

    1. 在內部部署電腦上,開啟 Microsoft Entra Connect],然後選取 [設定]

    2. 在 [其他工作] 畫面中,選取 [自訂同步處理選項],然後按 [下一步]

    3. 在 [連線到Microsoft Entra標識符] 畫面上,輸入適當的認證,然後按 [下一步]。 連線之後,請繼續按 [ 下一步 ],直到您在 [ 選用功能 ] 畫面上。

    4. 請確定未選取 [Exchange 郵件公用資料夾]。 如果未選取,您可以繼續進行下一節:Microsoft 365 中的必要條件步驟、Office 365或Exchange Online。 如果已選取該選項,請按一下以清除核取方塊,然後按 [下一步]

      注意事項

      如果您在 [選用功能] 畫面上看不到[Exchange Mail 公用資料夾] 選項,您可以結束 [連線Microsoft Entra並繼續進行下一節:Microsoft 365 中的必要條件步驟、Office 365或Exchange Online

  7. 清除 [Exchange Mail 公用資料夾 ] 選取專案之後,請繼續按 [ 下一步 ],直到您在 [ 準備 設定] 畫面上,然後按一下 [設定 ]

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

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中看到公用資料夾,請務必先判斷其存在的原因,以及貴組織中的誰已啟動公用資料夾階層,再移除公用資料夾和公用資料夾信箱。

    1. 在 Exchange Online PowerShell 中,執行下列命令,以查看是否有任何公用資料夾信箱存在:

      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 腳本來建立資料夾名稱對資料夾大小對應檔案。 此腳本必須一律由本機系統管理員執行。 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 等於主控公用資料夾階層的信箱伺服器之完整網域名稱。

    • 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 PublicFoldertoMailboxMapGenerator.ps1 中產生的 .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. 安裝 EXO PowerShell。 如需如何安裝 EXO PowerShell 的資訊,請參閱 這裡

    3. 以系統管理員模式啟動 PowerShell。

    4. 執行下列命令以啟動同步處理:

      Add-PSSnapin *exchange* | .\Sync-MailPublicFolders.ps1 -CsvSummaryFile:sync_summary.csv
      
    5. 出現提示後,輸入 Microsoft 365 租使用者系統管理員帳戶的認證。

  2. 在舊版 Exchange Server 上,取得執行移轉要求所需的下列資訊:

    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. 在 Exchange Online PowerShell 中,執行下列命令,將上一個步驟中傳回的資訊傳遞至將在移轉要求中使用的變數。

    1. 將具有舊版 Exchange Server 系統管理許可權之使用者的認證傳遞至 變數 $Source_Credential 。 在 Exchange Online 中執行的移轉要求會使用此認證來取得舊版 Exchange 伺服器的存取權,以複製內容。

      $Source_Credential = Get-Credential <source_domain\PublicFolder_Administrator_Account>
      
    2. ExchangeLegacyDN在您在步驟 2a 中找到的舊版 Exchange Server 上使用移轉使用者的 ,並將它傳遞至變數 $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>
    

    其中 folder_mapping.csv步驟 3:產生 .csv 檔中產生的對應檔案。

    注意事項

    您可能會注意到上述命令失敗,並出現錯誤「找不到具有信箱 GUID 的收件者」錯誤,以及 EXO 中公用資料夾信箱的 GUID。 這可能會因為 AD 複寫延遲而發生。 在這種情況下,請等候一小時,然後再次重試命令。

  5. 使用下列命令開始移轉:

    Start-MigrationBatch PublicFolderMigration
    

雖然必須使用 Exchange 管理命令介面中的 New-MigrationBatch Cmdlet 來建立批次移轉,但可以在 EAC 中檢視和管理移轉的進度和完成。 Because the New-MigrationBatch cmdlet initiates a mailbox migration request for each public folder mailbox, you can view the status of these requests using the mailbox migration page. 您可以前往信箱移轉頁面,並建立可透過電子郵件傳送給您的移轉報告,方法是執行下列動作:

  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 天內。 如果太過遠,例如超過一個月,您可能想要查看公用資料夾移轉要求,並確保所有要求最近都已同步處理。

確認批次且所有移轉要求都已成功同步處理之後,請在舊版 Exchange 伺服器上執行下列命令來鎖定舊版公用資料夾以進行完成。

Set-OrganizationConfig -PublicFoldersLockedForMigration:$true

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

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

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

若要完成公用資料夾移轉,請執行下列命令:

Complete-MigrationBatch PublicFolderMigration

重要事項

在移轉批次完成之後,就無法同步處理 Exchange 伺服器內部部署與 Exchange Online 的額外資料。

當您完成移轉時,Exchange 會在舊版 Exchange Server 與 Exchange Online 之間執行最終同步處理。 如果最終同步處理成功,Exchange Online中的公用資料夾將會解除鎖定,且移轉批次的狀態會變更為 [已完成]。 移轉批次的狀態通常會在切換至 [正在完成] 之前保持「已同步」數小時。 針對涉及大量目標信箱的移轉,如果沒有任何基礎公用資料夾移轉要求失敗或遭到隔離,則正常情況是看到狀態維持「同步處理」狀態超過 24 小時。

如果您已在內部部署 Exchange 伺服器與 Microsoft 365 或 Office 365 之間設定混合式部署,則在移轉完成後,您必須在 Exchange Online PowerShell 中執行下列命令:

Set-OrganizationConfig -RemotePublicFolderMailboxes $Null -PublicFoldersEnabled Local

步驟 8:測試並解除鎖定公用資料夾移轉

完成公用資料夾移轉後,應該執行下列測試以確定移轉成功。 這可讓您在切換至使用 Microsoft 365、Office 365 或Exchange Online公用資料夾之前,先測試已移轉的公用資料夾階層。

  1. 在 Exchange Online PowerShell 中,指派一些測試信箱,以使用任何新移轉的公用資料夾信箱作為預設公用資料夾信箱。

    Set-Mailbox -Identity <Test User> -DefaultPublicFolderMailbox <Public Folder Mailbox Identity>
    
  2. 使用在上一個步驟中識別的測試使用者登入 Outlook 2010 或更新版本,然後執行下列公用資料夾測試:

    • 檢視階層。
    • 檢查權限。
    • 建立與刪除公用資料夾。
    • 張貼內容至公用資料夾以及刪除公用資料夾的內容。
  3. 如果您遇到任何問題,請參閱本文稍後 的復原移 轉。 如果公用資料夾內容和階層可接受且如預期般運作,請繼續進行下一個步驟。

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

    Set-OrganizationConfig -PublicFolderMigrationComplete:$true
    
  5. 確認移轉完成之後,請在 Exchange Online PowerShell 中執行下列命令,以確定Set-OrganizationConfig上的PublicFoldersEnabled參數已設定為 Local

    Set-OrganizationConfig -PublicFoldersEnabled Local
    

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

Set-Mailbox

Get-Mailbox

Set-OrganizationConfig

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

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

  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 Server 上,執行下列命令,將 旗標設定 PublicFolderMigrationComplete$false

    Set-OrganizationConfig -PublicFolderMigrationComplete:$False
    

使用 Outlook PST 匯出將公用資料夾移轉至 Microsoft 365 或Office 365

如果您的內部部署公用資料夾階層大於 30 GB,建議您不要使用 Outlook 的 PST 匯出功能將公用資料夾移轉至 Microsoft 365、Office 365或Exchange Online。 Microsoft 365 和 Office 365 線上公用資料夾信箱成長是使用自動分割功能來管理,此功能會在超過大小配額時分割公用資料夾信箱。 當您使用 PST 匯出來移轉公用資料夾時,自動分割無法處理公用資料夾信箱的突然成長,而且您可能必須等候最多兩周,自動分割才能將資料從主要信箱移動。 此外,在使用 Outlook PST 將公用資料夾匯出至 Microsoft 365、Office 365 或 Exchange Online 之前,請考慮下列事項:

  • 在此程式期間,公用資料夾許可權將會遺失。 在移轉之前擷取目前的許可權,並在移轉完成後手動將其新增回來。

  • 如果您使用複雜的許可權或有許多要移轉的資料夾,建議您使用 Cmdlet 方法進行移轉。

  • 在 PST 匯出移轉期間對來源公用資料夾所做的任何專案和資料夾變更都將遺失。 因此,如果此匯出和匯入程式需要很長的時間才能完成,建議您使用 Cmdlet 方法。

如果您仍然想要使用 PST 檔案移轉公用資料夾,請遵循下列步驟來確保移轉成功。

  1. 使用 步驟 1:下載移轉腳本 中的指示來下載移轉腳本。 您只需要下載 PublicFolderToMailboxMapGenerator.ps1 檔。

  2. 遵循 步驟 3:產生 .csv 檔案 的步驟 2,以建立公用資料夾到信箱的對應檔案。 此檔案用於計算 Exchange Online 中正確的公用資料夾信箱數目。

  3. 根據對應檔案,建立您需要的公用資料夾信箱。 如需詳細資訊,請參閱建立公用資料夾信箱

  4. 使用 New-PublicFolder Cmdlet,使用 Mailbox 參數,在每個公用資料夾信箱中建立最上層的公用資料夾。

  5. 使用 Outlook 匯出及匯入 PST 檔案。

  6. 使用 EAC 設定公用資料夾的許可權。 如需詳細資訊,請參閱 步驟 3:將許可權指派給公用資料夾

注意

如果您已開始進行 PST 移轉,並遇到主要信箱已滿的問題,您有兩個復原 PST 移轉的選項。 第一個選項是等候自動分割從主要信箱移動資料。 這最多可能要花兩個星期的時間。 但完全已滿的公用資料夾信箱中,所有公用資料夾在自動分割完成之前將無法收到新的內容。 另一個選項是 建立公用資料夾信箱 ,然後使用 New-PublicFolder Cmdlet 搭配 Mailbox 參數,在次要公用資料夾信箱中建立剩餘的公用資料夾。

針對公用資料夾移轉進行疑難排解

針對公用資料夾移轉期間的常見問題,選取下列按鈕:

飛出視窗頁面會在Microsoft 365 系統管理中心中開啟,使用您的租使用者系統管理員帳戶登入,然後選取適當的選項。