使用批量迁移将旧公用文件夹迁移到 Microsoft 365 或 Office 365

摘要:使用这些过程将 Exchange 2010 公用文件夹移动到 Microsoft 365 或 Office 365。

本主题介绍如何在直接转换或暂存迁移中将公用文件夹从更新汇总 8 for Exchange Server 2010 Service Pack 3 (SP3) 迁移到 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 服务器上运行此脚本。

  • 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 步:下载迁移脚本详细介绍了从何处可以下载这些脚本。 请确保所有脚本都下载到相同的位置。

哪些 Exchange 版本支持将公用文件夹迁移到 Microsoft 365 或 Office 365 和 Exchange Online?

Exchange 支持将公用文件夹从以下旧版Exchange Server移动到 Microsoft 365 或 Office 365 和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 通过 DefaultPublicFolderIssueWarningQuotaDefaultPublicFolderProhibitPostQuota 参数增加这些配额。

如果使用防火墙和访问控制列表 (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 无处不在。 有关如何在 Exchange 2010 服务器上启用 Outlook 无处不在的详细信息,请参阅启用 Outlook 无处不在

  • 不能使用 Exchange 管理中心 (EAC) 或 Exchange 管理控制台 (EMC) 执行此过程。 在旧版 Exchange 服务器上,需要使用 Exchange 命令行管理程序。 对于 Exchange Online,需要使用 Exchange Online PowerShell。 有关详细信息,请参阅使用远程 PowerShell 连接到 Exchange Online

  • 必须使用单个迁移批处理来迁移所有公用文件夹数据。 Exchange 一次只允许创建一个迁移批处理。 如果尝试同时创建多个迁移批处理,则结果将是错误。

  • 在开始之前,我们建议完整阅读本主题,因为有些步骤需要停机。

  • 有关可能适用于本主题中的过程的键盘快捷方式的信息,请参阅 Exchange 管理中心的键盘快捷方式

  • 请验证是否在组织级别配置了 DefaultPublicFolderAgeLimit (Get-OrganizationConfig | Format-List DefaultPublicFolderAgeLimit) ,或者是否具有为单个公用文件夹配置的任何 AgeLimit (Get-PublicFolder <FolderPath> | Format-List AgeLimit) ,以便防止自动删除内容。

提示

是否有任何疑问? 在 Exchange 论坛中寻求帮助。 访问 Exchange OnlineExchange Online Protection 的论坛。

步骤 1:下载迁移脚本

  1. Public Folders Migration Scripts(公用文件夹迁移脚本)下载所有的脚本和支持文件。

  2. 将脚本保存到将运行 PowerShell 的本地电脑。 例如,C:\PFScripts。 请确保所有的脚本都保存在相同的位置。

  3. Mail-enabled Public Folders - directory sync script(启用邮件的公用文件夹 - 目录同步脚本)下载以下文件:

    • 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 中将存在的已启用邮件的公用文件夹继续运行,直到 Internet 上的所有 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 中已启用邮件的公用文件夹接收来自 Internet 的外部电子邮件,必须禁用 Exchange Online 和 Exchange Online Protection (EOP) 中的基于目录的边缘阻止 (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。 如果该值设置为 $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 ID 同步,则需要执行以下 (如果不使用 Microsoft Entra Connect,则可以跳过此步骤) :

    1. 在本地计算机上,打开“Microsoft Entra Connect”,然后选择“配置”。

    2. 在“ 其他任务” 屏幕上,选择“ 自定义同步选项”,然后单击“ 下一步”。

    3. “连接到Microsoft Entra ID”屏幕上,输入相应的凭据,然后单击“下一步”。 连接后,请继续单击“ 下一步 ”,直到处于 “可选功能 ”屏幕上。

    4. 确保未选择 Exchange 邮件公用文件夹 。 如果未选择它,可以继续学习下一部分:Microsoft 365 中的先决条件步骤、Office 365或Exchange Online。 如果选中,请单击以清除“检查”框,然后单击“下一步”。

      注意

      如果在“可选功能”屏幕上没有看到 Exchange 邮件公用文件夹选项,可以退出Microsoft Entra Connect 并转到下一部分 Microsoft 365 中的先决条件步骤、Office 365或Exchange Online

  7. 清除 Exchange 邮件公用文件夹 选择后,继续单击“ 下一步 ”,直到处于 “准备配置” 屏幕,然后单击“ 配置”。

有关语法和参数的详细信息,请参阅下列主题:

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 脚本以创建文件夹名称到文件夹大小的映射文件。 This script needs to always be run by a local administrator. The file will contain two columns: FolderName and FolderSize. The values for the FolderSize column will be displayed in bytes. 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 中创建公用文件夹邮箱

运行以下命令来创建目标公用文件夹邮箱。 该脚本将通过运行 PublicFoldertoMailboxMapGenerator.ps1 脚本,为前面在步骤 3 中生成的 .csv 文件中的每个邮箱创建一个目标邮箱。

.\Create-PublicFolderMailboxesForMigration.ps1 -FolderMappingCsv Mapping.csv -EstimatedNumberOfConcurrentUsers:<estimate>

Mapping.csv 是由步骤 3 中的脚本生成的 PublicFoldertoMailboxMapGenerator.ps1 文件。 同时浏览某个公用文件夹层次结构的用户连接估计数量通常少于组织中的用户总数。

注意

使用 Exchange Online PowerShell 运行此脚本。 有关详细信息,请参阅使用远程 PowerShell 连接到 Exchange Online

步骤 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 服务器上,获取运行迁移请求所需的以下信息:

    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 无处不在 主机名的 FQDN。 如果您有多个 Outlook 无处不在 实例,我们建议您选择最接近迁移终结点的实例或最接近旧版 Exchange 组织中公用文件夹副本的实例。 以下命令将找到 Outlook 无处不在 的所有实例:

      Get-OutlookAnywhere | Format-Table Identity,ExternalHostName
      
  3. 在 Exchange Online PowerShell 中运行以下命令,将上一步中返回的信息传递给随后将在迁移请求中使用的变量。

    1. 将对旧版 Exchange 服务器具有管理权限的用户的凭据传递到 变量 $Source_Credential中。 Exchange Online 中运行的迁移请求将使用此凭据获取对旧版 Exchange 服务器的访问,以复制内容。

      $Source_Credential = Get-Credential <source_domain\PublicFolder_Administrator_Account>
      
    2. ExchangeLegacyDN使用在步骤 2a 中找到的旧 Exchange 服务器上的迁移用户的 ,并将其传递到变量 $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 中进行查看和管理。 因为 New-MigrationBatch cmdlet 可启动每个公用文件夹邮箱的邮箱迁移请求,你可以使用邮箱迁移页查看这些请求的状态。 您可以转到邮箱迁移页,并通过执行以下操作,生成可以电子邮件方式发送给您的迁移报告:

  1. 登录 Exchange Online 并打开 EAC。

  2. 导航到 “邮箱>迁移”。

  3. Select the migration request that was just created and then click View Details in the Details pane.

有关语法和参数的详细信息,请参阅下列主题:

步骤 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*

迁移批处理) 和 LastSuccessfulSyncTimestamp (有关单个作业的 LastSyncedDate () 应在过去 7 天内。 如果距离太远(例如超过一个月左右),可能需要查看公用文件夹迁移请求,并确保最近同步了所有请求。

确认批处理且所有迁移请求已成功同步后,在旧版 Exchange 服务器上运行以下命令,锁定旧版公用文件夹以供最终确定。

Set-OrganizationConfig -PublicFoldersLockedForMigration:$true

有关语法和参数的详细信息,请参阅 set-OrganizationConfig

如果组织有多个公用文件夹数据库,则需要等待公用文件夹复制完成,以确认所有公用文件夹数据库都已选取 PublicFoldersLockedForMigration 标志,并且用户最近对文件夹所做的任何挂起的更改已在组织中聚合。 这可能需要几个小时。

步骤 7:完成公用文件夹迁移(需要停机时间)

若要完成公用文件夹迁移,请运行以下命令:

Complete-MigrationBatch PublicFolderMigration

重要

完成迁移批处理后,无法从本地 Exchange 服务器同步其他数据,Exchange Online。

完成迁移后,Exchange 将在旧版 Exchange 服务器与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

我如何知道这有效?

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 (分散式邮件流) 路由流量,而不是通过本地环境集中邮件流。 如果选择保持集中式邮件流,则可能导致公用文件夹的传送问题,因为你已从你的本地组织中删除公用文件夹邮箱数据库。

回滚迁移

如果您在迁移过程中遇到问题,并且需要重新激活旧版 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或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 管理中心中将打开浮出控件页,使用租户管理员帐户登录并选择相应的选项。