使用批量迁移将旧公用文件夹迁移到 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 步:下载迁移脚本详细介绍了从何处可以下载这些脚本。 请确保所有脚本都下载到相同的位置。

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

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 中,你需要是“组织管理”角色组的成员。 此角色组不同于首次注册时分配给你的权限。 有关如何启用组织管理角色组的详细信息,请参阅在 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/details.aspx?id=100414下载源端验证脚本。

  5. 将脚本保存到与步骤 2 操作相同的位置。 例如,C:\PFScripts。

步骤 2:准备迁移

在开始迁移之前,执行以下先决条件步骤。

注意

强烈建议从安装了邮箱角色的本地 Exchange 2010 服务器运行源端验证脚本。 该脚本扫描并报告已知会导致迁移速度缓慢的问题,以及解决这些问题的指南。 使用 此处所述的示例。

一般先决条件步骤

  • 请确保 Active Directory 中没有孤立的公用文件夹邮件对象,表示 Active Directory 中的对象没有对应的 Exchange 对象。
  • 确认为 Active Directory 中的公用文件夹配置的 SMTP 电子邮件地址与 Exchange 对象上的 SMTP 电子邮件地址匹配。
  • 请确保 Active Directory 中没有重复的公用文件夹对象,以避免两个或多个 Active Directory 对象 指向相同的启用邮件的公用文件夹这种情况。

旧版 Exchange 服务器上的先决条件步骤

注意

强烈建议从安装了邮箱角色的本地 Exchange 2010 服务器运行源端验证脚本。 该脚本扫描并报告已知会导致迁移速度缓慢的问题,以及解决这些问题的指南。 使用 此处所述的示例。 该脚本满足以下所有先决条件。

  1. 在旧版 Exchange 服务器上,确保继续路由到云中已启用邮件的公用文件夹,直到通过 Internet 更新所有 DNS 缓存,以指向组织现在所在的云 DNS。 运行以下命令,使用将电子邮件正确路由到云域的已知名称配置接受的域。

    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。 否则,迁移请求将失败。

    下面的示例检查公用文件夹迁移状态。

    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 邮件公用文件夹 。 如果未选择它,可以继续下一部分。 如果选中,请清除“检查”框,然后选择“下一步”。

      注意

      如果在“可选功能”屏幕上看不到“Exchange 邮件公用文件夹”选项,则可以退出Microsoft Entra Connect 并转到下一部分。

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

有关详细的语法和参数信息,请参阅以下文章:

云中的先决条件步骤

  1. 请确保没有现有的公用文件夹迁移请求。 如果有,请清除它们,否则您自己的迁移请求将会失败。 并非所有情况下都需要此步骤:仅当你认为管道中可能存在现有迁移请求时,才需要它。

    重要

    在删除迁移请求之前,请务必了解存在迁移请求的原因。 以下命令确定上一个请求的发出时间,并帮助你诊断可能发生的任何问题。 可能需要与组织中的其他管理员通信,以确定更改的原因。

    以下示例发现任何现有的批量迁移请求:

    $batch = Get-MigrationBatch | Where-Object {$_.MigrationType.ToString() -eq "PublicFolder"}
    

    下面的示例展示了如何删除任何现有的公用文件夹批处理迁移请求。

    $batch | Remove-MigrationBatch -Confirm:$false
    
  2. 确认云中不存在公用文件夹或公用文件夹邮箱。

    重要

    如果在云中看到公用文件夹,请务必确定它们存在的原因,以及谁在删除公用文件夹和公用文件夹邮箱之前启动了公用文件夹层次结构。

    1. 在 Exchange Online PowerShell 中,运行以下命令以查看是否存在任何公用文件夹邮箱:

      Get-Mailbox -PublicFolder
      
    2. 如果该命令没有返回任何公用文件夹邮箱,请继续进行步骤 3:生成 .csv 文件。 如果该命令返回了所有公用文件夹邮箱,则运行以下命令,看看是否存在任何公用文件夹:

      Get-PublicFolder
      
    3. 如果云中有任何公用文件夹,请在 Exchange Online PowerShell 中运行以下命令以将其删除。 请确保已保存基于云的公用文件夹中的任何信息。

      警告

      删除公用文件夹时,将永久删除公用文件夹中包含的所有信息。

      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 脚本以创建文件夹名称到文件夹大小的映射文件。 本地管理员需要运行此脚本。 该文件包含两列: FolderNameFolderSizeFolderSize 列以字节为单位显示。 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,如安装和维护 Exchange Online 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 Anywhere 的所有实例:

      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. 选择刚刚创建的迁移请求,然后在 “详细信息 ”窗格中选择“查看 详细信息 ”。

有关详细的语法和参数信息,请参阅以下文章:

步骤 6:锁定旧版 Exchange 服务器上的公用文件夹以进行最终迁移(需要停机时间)

在迁移过程中,用户仍然可以访问公用文件夹。 后续步骤将断开用户与旧公用文件夹的连接,并在迁移完成最终同步时锁定文件夹。 在此过程中,用户无法访问公用文件夹。 此外,发送到已启用邮件的公用文件夹的任何邮件将排队,在公用文件夹迁移完成之前不会传递。

注意

最终同步可能需要大量时间,具体取决于对源环境所做的更改、公用文件夹部署的大小、服务器容量等。在开始迁移之前,不清理文件夹层次结构中大量损坏的 ACL 可能会导致明显延迟。 建议计划至少 48 小时的停机时间,以便完成最终同步。

确保迁移批处理和单个迁移请求已成功同步。

在 Exchange Online PowerShell 中运行以下命令以获取详细信息:

Get-MigrationBatch | Where-Object {$_.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:测试和解锁公用文件夹迁移

完成公用文件夹迁移之后,您应该运行以下测试,确保迁移成功。 这允许在切换到使用云中的公用文件夹之前测试迁移的公用文件夹层次结构。

  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 联机公用文件夹邮箱增长使用自动拆分功能进行管理,该功能在超过大小配额时拆分公用文件夹邮箱。 使用 PST 导出迁移公用文件夹时,自动拆分无法处理公用文件夹邮箱的突然增长,并且可能需要等待长达两周才能自动拆分以从主邮箱移动数据。 此外,在使用 Outlook PST 将公用文件夹导出到云之前,请考虑以下事项:

  • 在此过程中,公用文件夹权限将丢失。 在迁移之前捕获当前权限,并在迁移完成后手动将其添加回去。

  • 如果您使用复杂权限或有很多文件夹要迁移,我们建议使用 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 管理中心中打开,使用租户管理员帐户登录并选择适当的选项。