从 Exchange Server 2013 或更高版本中删除公用文件夹部署

将所有本地用户和公用文件夹迁移到Exchange Online后,需要删除本地公用文件夹部署。 执行本地公用文件夹部署的干净删除至关重要,因为不当删除可能会导致孤立的已启用邮件的公用文件夹 (MEPF) ,并在Microsoft Entra ID或Exchange Online中阻止 SMTP 地址。

本文列出了从 Exchange Server 2013 或更高版本的本地部署中安全删除公用文件夹和相关数据的步骤。

先决条件

在开始之前,请确保:

  • 已将本地公用文件夹迁移到Exchange Online。

  • 本地或Exchange Online中没有任何用户连接到或使用本地部署的公用文件夹。

  • 删除之前会备份本地公用文件夹邮箱。

  • 必须使用分配了必要角色的管理员帐户从 Exchange 命令行管理程序执行以下步骤。

禁用用户的公用文件夹访问

  1. 运行以下命令,对用户禁用系统公用文件夹邮箱分配:

    Set-OrganizationConfig -PublicFoldersEnabled None
    
  2. 然后,运行以下命令,删除用户上的任何管理员分配的公用文件夹邮箱:

    Set-ADServerSettings -ViewEntireForest:$true
    Get-Mailbox -ResultSize unlimited | where {$_.DefaultPublicFolderMailbox -ne $Null} | Set-Mailbox -DefaultPublicFolderMailbox $Null 
    
  3. 让 AD 复制和更改生效最多需要一小时。 然后,运行以下命令,确保用户没有公用文件夹邮箱分配:

    Set-ADServerSettings -ViewEntireForest:$true
    Get-Mailbox -ResultSize unlimited |?{$_.DefaultPublicFolderMailbox -ne $Null -OR $_.EffectivePublicFolderMailbox -ne $Null}
    

清理已启用邮件的公用文件夹

使用 Exchange 命令行管理程序运行这些步骤中列出的 PowerShell 命令。

  1. 备份 MEPF 详细信息。 已启用邮件的公用文件夹本身不保存任何数据,而是 Active Directory 中链接到承载实际数据的公用文件夹的对象。 运行:

Set-ADServerSettings -ViewEntireForest:$true 
Get-MailPublicFolder -ResultSize Unlimited| Export-Clixml MEPF.XML
 
  1. 禁用 MEPF。

运行以下命令:

Set-ADServerSettings -ViewEntireForest:$true 
Get-MailPublicFolder -ResultSize Unlimited | Disable-MailPublicFolder 

  1. 验证是否未列出任何 MEPF。 还可以验证本地 AD 中任何Microsoft Exchange 系统对象 OU 中是否不再有类型为“PublicFolder”的对象。

运行:

Get-MailPublicFolder

  1. 验证是否已从“Microsoft Entra连接”工具中清除“Exchange 邮件公用文件夹”复选框。

邮件公用文件夹

  1. 执行Microsoft Entra Connect 同步。

删除公用文件夹邮箱

以下命令锁定用于用户连接的公用文件夹,并指示已在环境中完成公用文件夹迁移:

Set-OrganizationConfig -PublicFolderMailboxesLockedForNewConnections $true -PublicFolderMailboxesMigrationComplete $true 

  1. 删除辅助层次结构 PF 邮箱。
Set-ADServerSettings -ViewEntireForest:$true 

Get-Mailbox -PublicFolder -ResultSize Unlimited |?{$_.IsRootPublicFolderMailbox -ne "True"} | Remove-Mailbox -PublicFolder 

  1. 删除主层次结构 PF 邮箱:

Get-Mailbox -PublicFolder |?{$_.IsRootPublicFolderMailbox -eq "True"} | Remove-Mailbox -PublicFolder