Migracja folderów publicznych programu Exchange kończy się na 95% z błędem "foldery publiczne [XX], dla których nie można włączyć obsługi poczty"

Symptomy

Po przeprowadzeniu migracji folderów publicznych z programu Microsoft Exchange Server 2010 do usługi Exchange Online proces zatrzymuje się o 95%.

Ponadto po uruchomieniu poniższego polecenia w celu przejrzenia raportu migracji:

Get-PublicFolderMailboxMigrationRequest |Get-PublicFolderMailboxMigrationRequestStatistics -IncludeReport

Jest wyświetlany następujący komunikat o błędzie:

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

Błąd w raporcie migracji

Następnie uruchom następujące polecenie i wyświetlenie szczegółów błędu:

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

Szczegóły błędu:

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.

Na podstawie szczegółów błędu żądanie migracji wskazuje, że nie można zsynchronizować folderów publicznych z włączonym pocztą e-mail z lokalnego.

Wszystkie lokalne foldery publiczne z włączoną obsługą poczty są jednak synchronizowane z usługą Exchange Online. Błąd będzie powtarzany nawet w przypadku wielokrotnego uruchamiania skryptu ".\Sync-MailPublicFolders.ps1".

Ponadto w przypadku uruchomienia polecenia Get-MailPublicFolder nie są wyświetlane żadne foldery publiczne z włączoną obsługą poczty, a żądanie migracji nadal kończy się niepowodzeniem z błędem.

Przyczyna

Jeśli w folderze publicznym jest włączona poczta, dla właściwości MailEnabled jest ustawiona wartość true. Polecenie disable-MailPublicFolder powoduje zmianę tej właściwości na false i usunięcie odpowiednich wpisów z kontenera obiektów systemu Microsoft Exchange (Meso).

Jeśli polecenie disable-MailPublicFolder nie powoduje prawidłowego oczyszczenia, może ono pozostać niezgodne z właściwością MailEnabled . Obiekty te zostaną usunięte z kontenera MESO.

W takim przypadku polecenie Get-MailPublicFolder nie będzie mieć listy folderów opisanych w komunikacie o błędzie jako folderów publicznych z obsługą poczty. Jednak te foldery nadal są traktowane jako poczta. Spowoduje to awarię migracji.

Obejście problemu

Aby obejść ten problem, wykonaj następujące czynności:

  1. Wyświetl listę folderów publicznych, które nadal mają właściwość MailEnabled o wartości prawda. Aby to zrobić, uruchom następujące polecenie:

    Uwaga

    Jeśli w poleceniu Output zostaną wyświetlone błędy, oprócz błędu informującego, że folder publiczny nie jest folderem publicznym z obsługą poczty, zignoruj błędy.

    $pf=Get-PublicFolder \ -recurse -ResultSize Unlimited | ? { $_.MailEnabled }; ForEach ($i in $pf) {$mesoObj = Get-MailPublicFolder $i.identity; if ($mesoObj -eq $null) {$i }}
    
  2. Aby wyłączyć foldery publiczne z włączoną obsługą poczty, uruchom następujące polecenie:

    $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. Wznów partię nieudaną migracji w usłudze Exchange Online.