Solución de problemas de sincronización de carpetas públicas habilitadas para correo cuando se utiliza un script de PowerShell

Síntomas

Al intentar sincronizar objetos de carpeta pública habilitada para correo (MEPF) desde el entorno local a Exchange Online Active Directory mediante Sync-MailPublicFolders.ps1 (Microsoft Exchange Server 2007 y 2010) o Sync-ModernMailPublicFolders.ps1 (Microsoft Exchange Server 2013, 2016 y 2019), el script produce uno de los errores siguientes:

Error 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.

El error siempre se produce cuando el script realiza el comando Set .

Error 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.

Causas

El primer problema se produce porque hay un objeto en Exchange Online con el mismo nombre que MEPF. El objeto en conflicto se notifica en el propio error y se puede recuperar con el siguiente cmdlet en Exchange Online PowerShell:

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

Por ejemplo:

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

El segundo problema se produce porque el Exchange Online ya tiene un objeto con la dirección de proxy mencionada en el error.

Solución

Para corregir el primer problema, cambie el nombre de MEPF en el entorno local mediante el siguiente cmdlet:

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

Por ejemplo:

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

Nota:

Cambiar el nombre de MEPF no afecta a la dirección de correo electrónico ni al nombre real de la carpeta pública a la que está asociada.

Para corregir el segundo problema, siga estos pasos:

  1. Descubra los objetos que tienen la misma dirección de proxy mediante el siguiente cmdlet:

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

    Por ejemplo:

    Get-Recipient |?{$_.EmailAddresses -like "*X500:/O=BAT2/OU=EXCHANGE ADMINISTRATIVE GROUP (FYDIBOHF23SPDXX)/CN=RECIPIENTS/CN=E1DBD36E5BEF784A97A5CD66299952D8-00008991FDA8*"}
    
  2. Si el objeto devuelto no es un MEPF, quite el objeto si no desea conservarlo.

  3. Si solo ve el objeto MEPF devuelto con el mismo proxy, hay MEPF duplicados en el entorno local. Busque los MEPF duplicados y, a continuación, quítelos. Para buscar los MEPF duplicados, ejecute el siguiente cmdlet en el entorno local:

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

    Por ejemplo:

    Get-MailPublicFolder | ?{ $_.EmailAddresses -like "*hr*"}
    
  4. Si se devuelven varios objetos, asegúrese de que se conserva un solo objeto y quite los demás objetos.