Solução de problemas de falhas de sincronização de pasta pública habilitada para email ao usar o script do PowerShell
Sintomas
Ao tentar sincronizar objetos MEPF (pasta pública habilitada para email) do local para Exchange Online Active Directory usando Sync-MailPublicFolders.ps1 (Microsoft Exchange Server 2007 e 2010) ou Sync-ModernMailPublicFolders.ps1 (Microsoft Exchange Server 2013, 2016 e 2019), o script falha com um dos seguintes erros:
Erro 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.
O erro sempre ocorre quando o script está executando o comando Definir .
Erro 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
O primeiro problema ocorre porque há um objeto no Exchange Online com o mesmo nome que o MEPF. O objeto conflitante é relatado no próprio erro e pode ser recuperado com o seguinte cmdlet no Exchange Online PowerShell:
Get-Recipient '<Distinguished Name reported in the error>'
Por exemplo:
Get-Recipient 'CN=Marketing,contoso.onmicrosoft.com,OU=Microsoft Exchange Hosted Organizations,DC=APCPR04A003,DC=prod,DC=outlook,DC=com'
O segundo problema ocorre porque o Exchange Online já tem um objeto com o endereço proxy mencionado no erro.
Resolução
Para corrigir o primeiro problema, altere o nome do MEPF no local usando o seguinte cmdlet:
Get-MailPublicFolder <MEPF name> | Set-MailPublicFolder -Name <new name for MEPF>
Por exemplo:
Get-MailPublicFolder \Marketing | Set-MailPublicFolder -Name Marketing_PF
Observação
Alterar o nome do MEPF não afeta o endereço de email ou o nome real da pasta pública à qual ele está associado.
Para corrigir o segundo problema, siga estas etapas:
Descubra objetos que têm o mesmo endereço proxy usando o seguinte cmdlet:
Get-Recipient |?{$_.EmailAddresses -like "<address mentioned in the error>"}
Por exemplo:
Get-Recipient |?{$_.EmailAddresses -like "*X500:/O=BAT2/OU=EXCHANGE ADMINISTRATIVE GROUP (FYDIBOHF23SPDXX)/CN=RECIPIENTS/CN=E1DBD36E5BEF784A97A5CD66299952D8-00008991FDA8*"}
Se o objeto retornado não for um MEPF, remova o objeto se você não quiser mantê-lo.
Se você só vir o objeto MEPF retornado com o mesmo proxy, haverá MEPFs duplicados no local. Encontre os MEPFs duplicados e remova-os. Para localizar os MEPFs duplicados, execute o seguinte cmdlet no local:
Get-MailPublicFolder | ?{ $_.EmailAddresses -like "<email of problem MEPF>"}
Por exemplo:
Get-MailPublicFolder | ?{ $_.EmailAddresses -like "*hr*"}
Se vários objetos forem retornados, verifique se um único objeto será mantido e remova os outros objetos.