Partilhar via


A migração de pastas públicas do Exchange para 95% com o erro "Existem [xx] Pastas Públicas que não foi possível ativar o correio"

Sintomas

Quando migra pastas públicas do Microsoft Exchange Server 2010 para o Exchange Online, o processo para nos 95%.

Além disso, quando executar o seguinte comando para rever o relatório de migração:

Get-PublicFolderMailboxMigrationRequest |Get-PublicFolderMailboxMigrationRequestStatistics -IncludeReport

Verá o seguinte erro:

Name                                                              StatusDetail TargetMailbox PercentComplete
----                                                              ------------ ------------- ---------------
PublicFolderMailboxMigrationfb3cdd37-ecf4-4d33-xxxx -fcec86xxxxxx FailedOther  MigP1         95

Captura de ecrã do erro no relatório de migração.

Em seguida, execute o seguinte comando e receba os detalhes do erro:

$p=Get-PublicFolderMailboxMigrationRequest -Status Failed | Get-PublicFolderMailboxMigrationRequestStatistics -IncludeReport;$p[0].report.failures[-1].Message

Detalhes do erro:

FailureType            : FailedToMailEnablePublicFoldersException
Message                : Error: There are 32 Public Folders that could not be mail-enabled. Please, check the migration report starting at date/time for additional details. This may indicate that mail public folder objects in Exchange Online are out of sync with your Exchange deployment. You may need to rerun the script Sync-MailPublicFolders.ps1 on your source Exchange server to update mail-enabled public folder objects in Exchange Online Active Directory.

Nos detalhes do erro, o pedido de migração mostra que falhou ao sincronizar pastas públicas com capacidade de correio a partir do local.

No entanto, todas as pastas públicas com capacidade de correio no local são sincronizadas com Exchange Online. O erro será repetido mesmo que tenha executado o script ".\Sync-MailPublicFolders.ps1" várias vezes.

Além disso, se executar o comando Get-MailPublicFolder no local, este não mostra pastas públicas com capacidade de correio e o pedido de migração continua a falhar com o erro.

Causa

Se uma pasta pública estiver ativada por correio, terá a propriedade MailEnabled definida como Verdadeiro. O comando Disable-MailPublicFolder altera esta propriedade para Falso e remove as entradas correspondentes do contentor Microsoft Exchange System Objects (MESO).

Se o comando Disable-MailPublicFolder não concluir a limpeza corretamente, poderá deixar para trás a propriedade MailEnabled como Verdadeiro. No entanto, irá remover os objetos do contentor MESO.

Neste cenário, o comando Get-MailPublicFolder não listará as pastas descritas na mensagem de erro como pastas públicas com capacidade de correio. No entanto, estas pastas ainda são consideradas de correio ativada. Isto causa a falha de migração.

Solução

Existem duas formas de contornar este problema:

Método 1: Utilizar o script para detetar problemas com pastas públicas com capacidade de correio no local

  1. Transfira e execute o script ValidateMailPublicFolders no Exchange Server no local.

    O script comunica pastas públicas com capacidade de correio órfã e pastas públicas com capacidade de correio encontradas na pasta NON_IPM_Subtree. Também sugere a utilização de um comando para corrigir o problema.

  2. Execute o comando sugerido pelo script.

  3. Depois de corrigir os problemas comunicados pelo script, execute novamente o script e certifique-se de que não é comunicado nenhum problema para pastas públicas com capacidade de correio.

Método 2: Utilizar comandos para detetar problemas com pastas públicas com capacidade de correio no local

  1. Liste as pastas públicas que ainda têm a propriedade MailEnabled definida como Verdadeiro. To do this, run the following command:

    Nota

    Se vir erros no comando de saída para além do erro que indica que a pasta pública não é uma pasta pública com capacidade de correio, ignore os erros.

    $pf=Get-PublicFolder \ -recurse -ResultSize Unlimited | ? { $_.MailEnabled }; ForEach ($i in $pf) {$mesoObj = Get-MailPublicFolder $i.identity; if ($mesoObj -eq $null) {$i }}
    
  2. Execute o seguinte comando para desativar as pastas públicas com capacidade de correio:

    $pf=Get-PublicFolder \ -recurse -ResultSize Unlimited | ? { $_.MailEnabled }; ForEach ($i in $pf) {$mesoObj = Get-MailPublicFolder $i.identity; if ($mesoObj -eq $null) { Disable-MailPublicFolder $i -confirm:$False} }
    
  3. Retomar o lote de migração com falha no Exchange Online.