将公用文件夹从 Exchange10 迁移到 Exchange16

第一部分:下载迁移脚本

  1. 下载所有四个 Microsoft Exchange 公用文件夹迁移脚本
  2. 将脚本保存到将运行 Windows PowerShell 的 Exchange 2016 服务器。例如,C:\PFScripts。

第 2 部分:准备用于迁移的 Exchange 2010 服务器和公用文件夹

  1. 打开 Exchange 2010 服务器上的 Exchange 命令行管理程序。
  2. 为了在迁移结束时进行验证,运行以下命令,获取当前公用文件夹部署的快照:
    • 运行以下命令以获取原始源文件夹结构的快照。
      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

    保存上述命令所生成的信息,以供在完成迁移后进行比较。

  3. 如果公用文件夹的名称中包含反斜杠 (\),则在迁移发生时公用文件夹会在父公用文件夹中进行创建。在迁移之前,如果您不想发生此情况,您需要对名称中包含反斜杠的公用文件夹进行重命名。
    • 若要找到名称中包含反斜线的公用文件夹,请运行以下命令。
      Get-PublicFolderStatistics -ResultSize Unlimited | Where {$_.Name -like "*\*"} | Format-List Name, Identity
    • 如果返回任何公用文件夹,您可以通过使用以下命令对它们进行重命名。
      Set-PublicFolder -Identity <public folder identity> -Name <new public folder name>

第 3 部分:生成 CSV 文件

  1. 打开 Exchange 2010 服务器上的 Exchange 命令行管理程序。
  2. 运行以下命令,创建将文件夹名称映射到您要迁移的每个公用文件夹的大小的文件。您需要指定在其中运行由以下命令创建的 CSV 文件的可访问网络共享,还需要指定 Exchange 2010 服务器的 FQDN。
    该命令必须由本地管理员运行,并将创建包含两列的 CSV 文件:FolderName 和 FolderSize。FolderSize 列的值将以字节为单位显示。例如,\PublicFolder01,10000。

    C:\PFScripts\Export-PublicFolderStatistics.ps1  "\\FileServer\Share\FolderSize.csv" "EX2010.corp.contoso.com"
  3. 运行以下命令,创建公用文件夹到邮箱的映射文件。此文件用于计算 Exchange 2016 邮箱服务器上公用文件夹邮箱的正确数量。您需要指定以下参数:
    C:\PFScripts\PublicFolderToMailboxMapGenerator.ps1 20000000000 "\\FileServer\Share\FolderSize.csv" "\\FileServer\Share\PFMailboxes.csv"

第 4 部分:在 Exchange 2016 中创建公用文件夹邮箱

  1. 打开 Exchange 2016 服务器上的 Exchange 命令行管理程序。
  2. 运行以下命令,在 Exchange 2016 邮箱服务器中创建主要公用文件夹邮箱。您创建的第一个公共文件夹将包括整个组织的公用文件夹层次结构。此公用文件夹邮箱的创建位置应位于组织中的所有 Exchange 2016 服务器均可访问的服务器上。
    如果没有大量的公用文件夹,您可以使用公用文件夹到邮箱的映射文件中的第一个条目命名此公用文件夹邮箱。例如,如果将映射文件中的第一个公共文件夹邮箱命名 Mailbox1,将运行以下命令。

    New-Mailbox -PublicFolder "Mailbox1" -HoldForMigration:$true

    如果您有大量的公用文件夹,请将此公用文件夹邮箱专用于仅为公用文件夹层次结构提供服务。要执行此操作,请使用不包含在映射文件中的名称命名公用文件夹邮箱(例如,“Public Folder Hierarchy Only”)。这样操作不会将公用文件夹迁移到此公用文件夹邮箱中,且它的唯一功能就是为公用文件夹层次结构提供服务。例如:

    New-Mailbox -PublicFolder "Public Folder Hierarchy Only" -HoldForMigration:$true
  3. 运行 New-Mailbox cmdlet,创建与上一步中的公用文件夹到邮箱的映射文件中包含的名称匹配的其他邮箱。您需要针对包含在映射文件中的每个公用文件夹邮箱的单独命令。例如,如果映射文件包含两个条目,Mailbox1 和 Mailbox2,您需要运行以下命令。
    New-Mailbox -PublicFolder "Mailbox1"
    New-Mailbox -PublicFolder "Mailbox2"

第 5 部分:启动公用文件夹迁移

此时,您已经准备好启动公用文件夹迁移。以下步骤将创建并启动迁移批处理。根据在公用文件夹中的数据量和网络连接的速度,这可能需要几小时或几天时间。在此阶段期间,用户仍能访问 Exchange 2010 服务器中的公用文件夹和内容。在“第 6 部分:完成公用文件夹迁移(需要停机时间)”中,您需要运行另一个同步,以跟进在公用文件夹中所做的任何更改,并完成迁移。

  1. 打开 Exchange 2016 服务器上的 Exchange 命令行管理程序。
  2. 运行以下命令来新建公用文件夹迁移批处理。请务必更改公用文件夹到邮箱的映射文件的路径。
    New-MigrationBatch -Name PFMigration -SourcePublicFolderDatabase (Get-PublicFolderDatabase -Server EX2010) -CSVData (Get-Content "\\FileServer\Share\PFMailboxes.csv" -Encoding Byte) 
  3. 使用以下命令启动迁移:
    Start-MigrationBatch PublicFolderMigration

    您可以在 EAC 中查看和管理迁移的进度和完成情况。因为 New-MigrationBatch cmdlet 可启动每个公用文件夹邮箱的邮箱迁移请求,所以您可以使用邮箱迁移页查看这些请求的状态。
    “状态”列会将初始批处理状态显示为“已创建”。在迁移期间,此状态会变为“正在同步”。在迁移请求完成后,此状态会变为“已同步”。您可以双击批处理,查看此批处理中各个邮箱的状态。邮箱作业的初始状态为“待运行”。在作业开始后,此状态会变为“正在同步”;当 InitialSync 完成后,此状态会变为“已同步”。

第 6 部分:完成公用文件夹迁移(需要停机时间)

直到此刻之前,用户都能够在迁移过程中访问公用文件夹。后续步骤会使用户注销 Exchange 2010 公用文件夹并在迁移完成最终同步期间锁定这些文件夹。用户将无法在此过程中访问公用文件夹。而且,任何发送到已启用邮件的公用文件夹的邮件都会排队,且在公用文件夹迁移完成前不会传递。
在完成迁移之前,您需要通过以下操作锁定 Exchange 2010 服务器上的公用文件夹,以防止其他任意更改:

  1. 打开 Exchange 2010 服务器上的 Exchange 命令行管理程序。
  2. 运行以下命令锁定旧版公用文件夹,以便完成迁移。
    Set-OrganizationConfig -PublicFoldersLockedForMigration:$true

如果组织具有多个公用文件夹数据库,则需要等到公用文件夹复制完成,才能确保所有公用文件夹数据库都选取了 PublicFoldersLockedForMigration 标志,且用户最近对文件夹进行的任何挂起更改都已在整个组织中进行了复制。这可能需要几个小时。
锁定 Exchange 2010 服务器上的公用文件夹后,您可以执行以下操作完成迁移:

  • 打开 Exchange 2016 服务器上的 Exchange 命令行管理程序。
  • 运行以下命令,将 Exchange 2016 部署类型更改为“远程”。
    Set-OrganizationConfig -PublicFoldersEnabled Remote
  • 运行以下命令完成公用文件夹迁移。
    Complete-MigrationBatch PublicFolderMigration

当您执行以上步骤时,Exchange 会在 Exchange 2010 服务器与 Exchange 2016 之间执行最终同步。如果最终同步成功,则会解除锁定 Exchange 2016 服务器上的公用文件夹,并且迁移批处理的状态会先后变为“正在完成”和“已完成”。

第 7 部分:测试和解锁公用文件夹

完成公用文件夹迁移之后,您应该运行以下测试,以确保迁移成功。这样,您便能够在改为使用 Exchange 2016 公用文件夹之前测试迁移的公用文件夹层次结构。

  1. 打开 Exchange 2016 服务器上的 Exchange 命令行管理程序。
  2. 运行以下命令,指定一些测试邮箱将任何新迁移的公用文件夹邮箱用作默认公用文件夹邮箱。
    Set-Mailbox -Identity <Test User> -DefaultPublicFolderMailbox <Public Folder Mailbox Identity>
  3. 打开 Outlook 2010 或使用之前步骤中确定的测试用户,然后执行以下公用文件夹测试:
    • 查看层次结构
    • 检查权限
    • 创建和删除公用文件夹
    • 发布内容到公用文件夹并从公用文件夹删除内容
  4. 如果一切正常,请运行以下命令解锁所有其他用户的公用文件夹。
    
    
  5. 在 Exchange 2010 服务器中运行以下命令,以指示公用文件夹迁移已完成。
    Set-OrganizationConfig -PublicFolderMigrationComplete:$true
  6. 确认迁移完成后,请运行以下命令。
    Set-OrganizationConfig -PublicFoldersEnabled Local