Migrering av gemensam mapp i Exchange stoppas på 95% med fel meddelandet "det finns [XX] gemensamma mappar som inte kunde vara e-postaktive rad"

Symptom

När du migrerar offentliga mappar från Microsoft Exchange Server 2010 till Exchange Online avbryts processen vid 95%.

När du kör följande kommando för att granska migreringstabellen:

Get-PublicFolderMailboxMigrationRequest |Get-PublicFolderMailboxMigrationRequestStatistics -IncludeReport

Följande fel meddelande visas:

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

Fel i migreringstabellen

Sedan kör du följande kommando och får fel informationen:

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

Fel information:

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.

Från fel informationen visar en förnyelsebegäran att den inte har kunnat synkronisera e-postaktiverade gemensamma mappar från lokal.

Alla lokala e-postaktiverade gemensamma mappar synkroniseras dock till Exchange Online. Felet upprepas även om du har kört skriptet .\Sync-MailPublicFolders.ps1 flera gånger.

Om du kör kommandot Get-MailPublicFolder på plats visas inte heller e-postaktiverade gemensamma mappar och migreringen fortsätter att Miss lyckas.

Orsak

Om en gemensam mapp är e-postaktive rad har egenskapen mail aktiverat värdet True. Kommandot disable-MailPublicFolder ändrar den här egenskapen till falskt och tar bort motsvarande poster från Microsoft Exchange System Objects (meso)-behållaren.

Om kommandot disable-MailPublicFolder inte slutför rensningen kan det stå kvar bakom den inaktiverade egenskapen. Men objekten tas bort från MESO-behållaren.

I sådant scenario visar kommandot Get-MailPublicFolder inte de mappar som beskrivs i fel meddelandet som e-postaktiverade gemensamma mappar. Dessa mappar betraktas emellertid fortfarande som e-post. Detta orsakar migreringen.

Lösning

Det finns två sätt att kringgå problemet:

Metod 1: använda skript för att upptäcka problem med lokala e-postaktiverade gemensamma mappar

  1. Ladda ned och kör ValidateMailPublicFolders -skriptet på lokal Exchange-Server.

    Skriptet rapporterar överblivna e-postaktiverade gemensamma mappar och e-postaktiverade gemensamma mappar i NON_IPM_Subtree-mappen. Den föreslår också användning av ett kommando för att åtgärda problemet.

  2. Kör kommandot som föreslås av skriptet.

  3. När du har åtgärdat problemen som rapporter ATS av skriptet kör du skriptet igen och ser till att inga problem rapporteras för e-postaktiverade gemensamma mappar.

Metod 2: använda kommandon för att upptäcka problem med lokala e-postaktiverade gemensamma mappar

  1. Visa en lista över de gemensamma mappar som fortfarande har egenskapen nyaktiverad inställd på True. Det gör du genom att köra följande kommando:

    Anteckning

    Om du ser fel i kommandot utdata förutom felet att den gemensamma mappen inte är en e-postaktiverad gemensam mapp, ignorerar du felen.

    $pf=Get-PublicFolder \ -recurse -ResultSize Unlimited | ? { $_.MailEnabled }; ForEach ($i in $pf) {$mesoObj = Get-MailPublicFolder $i.identity; if ($mesoObj -eq $null) {$i }}
    
  2. Kör följande kommando för att inaktivera e-postaktiverade gemensamma mappar:

    $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. Återuppta det misslyckade migreringsarkivet i Exchange Online.