排查使用 PowerShell 脚本时启用邮件的公用文件夹同步失败问题

症状

尝试使用Sync-MailPublicFolders.ps1(Microsoft Exchange Server 2007 和 2010) 或Sync-ModernMailPublicFolders.ps1(Microsoft Exchange Server,将已启用邮件的公用文件夹 (MEPF) 对象从本地同步到 Exchange Online Active Directory 2013、2016 和 2019) ,脚本失败并出现以下错误之一:

错误 1:

Active Directory operation failed on PU1PR04A03DC006.APCPR04A003.prod.outlook.com. The object 'CN=Marketing,OU=contoso.onmicrosoft.com,OU=Microsoft Exchange Hosted Organizations,DC=APCPR04A003,DC=prod,DC=outlook,DC=com' already exists.

当脚本执行 Set 命令时,始终会发生错误。

错误 2:

The proxy address "X500:/O=BAT2/OU=EXCHANGE ADMINISTRATIVE GROUP (FYDIBOHF23SPDLT)/CN=RECIPIENTS/CN=E1DBD36E5BEF784A97A5CD66292252D8-00008991FDA8" is already being used by the proxy addresses or LegacyExchangeDN of "HR". Please choose another proxy address.

原因

出现第一个问题是因为Exchange Online中有一个对象与 MEPF 同名。 冲突对象在错误本身中报告,可以在 PowerShell Exchange Online使用以下 cmdlet 进行检索:

Get-Recipient '<Distinguished Name reported in the error>'

例如:

Get-Recipient 'CN=Marketing,contoso.onmicrosoft.com,OU=Microsoft Exchange Hosted Organizations,DC=APCPR04A003,DC=prod,DC=outlook,DC=com'

出现第二个问题是因为Exchange Online已具有错误中提到的代理地址的对象。

解决方案

若要解决第一个问题,请使用以下 cmdlet 更改本地 MEPF 的名称:

Get-MailPublicFolder <MEPF name> | Set-MailPublicFolder -Name <new name for MEPF>

例如:

Get-MailPublicFolder \Marketing | Set-MailPublicFolder -Name Marketing_PF

注意

更改 MEPF 的名称不会影响电子邮件地址或与之关联的公用文件夹的实际名称。

若要解决第二个问题,请执行以下步骤:

  1. 使用以下 cmdlet 找出具有相同代理地址的对象:

    Get-Recipient |?{$_.EmailAddresses -like "<address mentioned in the error>"}
    

    例如:

    Get-Recipient |?{$_.EmailAddresses -like "*X500:/O=BAT2/OU=EXCHANGE ADMINISTRATIVE GROUP (FYDIBOHF23SPDXX)/CN=RECIPIENTS/CN=E1DBD36E5BEF784A97A5CD66299952D8-00008991FDA8*"}
    
  2. 如果返回的对象不是 MEPF,请删除该对象(如果不想保留该对象)。

  3. 如果只看到使用同一代理返回的 MEPF 对象,则本地存在重复的 MEPF。 找到重复的 MEPF,然后将其删除。 若要查找重复的 MEPF,请在本地运行以下 cmdlet:

    Get-MailPublicFolder | ?{ $_.EmailAddresses -like "<email of problem MEPF>"}
    

    例如:

    Get-MailPublicFolder | ?{ $_.EmailAddresses -like "*hr*"}
    
  4. 如果返回多个对象,请确保保留单个对象并删除其他对象。