La migrazione delle cartelle pubbliche di Exchange si arresta al 95% con l'errore "Sono presenti [xx] Cartelle pubbliche che non possono essere abilitate per la posta elettronica"

Sintomi

Quando si esegue la migrazione delle cartelle pubbliche da Microsoft Exchange Server 2010 a Exchange Online, il processo si arresta al 95%.

Inoltre, quando si esegue il comando seguente per esaminare il report sulla migrazione:

Get-PublicFolderMailboxMigrationRequest |Get-PublicFolderMailboxMigrationRequestStatistics -IncludeReport

Viene visualizzato l'errore seguente:

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

Screenshot dell'errore nel report di migrazione.

Eseguire quindi il comando seguente e ricevere i dettagli dell'errore:

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

Dettagli errore:

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.

Dai dettagli dell'errore, la richiesta di migrazione mostra che non è riuscita a sincronizzare le cartelle pubbliche abilitate per la posta elettronica dall'ambiente locale.

Tuttavia, tutte le cartelle pubbliche abilitate per la posta locale vengono sincronizzate con Exchange Online. L'errore si ripeterà anche se lo script ".\Sync-MailPublicFolders.ps1" è stato eseguito più volte.

Inoltre, se si esegue il comando Get-MailPublicFolder in locale, non vengono visualizzate cartelle pubbliche abilitate per la posta elettronica e la richiesta di migrazione continua a non riuscire con l'errore.

Causa

Se una cartella pubblica è abilitata alla posta elettronica, la proprietà MailEnabled sarà impostata su True. Il comando Disable-MailPublicFolder modifica questa proprietà in False e rimuove le voci corrispondenti dal contenitore MESO (Microsoft Exchange System Objects).

Se il comando Disable-MailPublicFolder non completa correttamente la pulizia, la proprietà MailEnabled potrebbe essere impostata su True. Ma rimuoverà gli oggetti dal contenitore MESO.

In questo scenario, il comando Get-MailPublicFolder non elenca le cartelle descritte nel messaggio di errore come cartelle pubbliche abilitate per la posta elettronica. Tuttavia, queste cartelle sono ancora considerate abilitate per la posta elettronica. Questo causa l'errore di migrazione.

Soluzione alternativa

Esistono due modi per risolvere questo problema:

Metodo 1: Usare lo script per rilevare i problemi relativi alle cartelle pubbliche abilitate per la posta elettronica locale

  1. Scaricare ed eseguire lo script ValidateMailPublicFolders in Exchange Server locale.

    Lo script segnala le cartelle pubbliche abilitate per la posta elettronica e le cartelle pubbliche abilitate per la posta elettronica presenti nella cartella NON_IPM_Subtree. Suggerisce anche di usare un comando per risolvere il problema.

  2. Eseguire il comando suggerito dallo script.

  3. Dopo aver risolto i problemi segnalati dallo script, eseguire di nuovo lo script e assicurarsi che non venga segnalato alcun problema per le cartelle pubbliche abilitate per la posta elettronica.

Metodo 2: Usare i comandi per rilevare i problemi relativi alle cartelle pubbliche abilitate per la posta elettronica locale

  1. Elencare le cartelle pubbliche in cui la proprietà MailEnabled è ancora impostata su True. A tale scopo, utilizzare il seguente comando:

    Nota

    Se vengono visualizzati errori nel comando di output oltre all'errore che indica che la cartella pubblica non è una cartella pubblica abilitata per la posta elettronica, ignorare gli errori.

    $pf=Get-PublicFolder \ -recurse -ResultSize Unlimited | ? { $_.MailEnabled }; ForEach ($i in $pf) {$mesoObj = Get-MailPublicFolder $i.identity; if ($mesoObj -eq $null) {$i }}
    
  2. Eseguire il comando seguente per disabilitare le cartelle pubbliche abilitate per la posta elettronica:

    $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. Riprendere il batch di migrazione non riuscito in Exchange Online.