Migracja folderu publicznego programu Exchange zatrzymuje się na poziomie 95% z błędem "Istnieją [xx] foldery publiczne, których nie można włączyć za pomocą poczty"
Symptomy
Podczas migracji folderów publicznych z Microsoft Exchange Server 2010 r. do Exchange Online proces zatrzymuje się na poziomie 95%.
Ponadto po uruchomieniu następującego polecenia przejrzyj raport migracji:
Get-PublicFolderMailboxMigrationRequest |Get-PublicFolderMailboxMigrationRequestStatistics -IncludeReport
Zostanie wyświetlony następujący błąd:
Name StatusDetail TargetMailbox PercentComplete
---- ------------ ------------- ---------------
PublicFolderMailboxMigrationfb3cdd37-ecf4-4d33-xxxx -fcec86xxxxxx FailedOther MigP1 95
Następnie uruchom następujące polecenie i otrzymasz szczegóły 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.
Ze szczegółów błędu żądanie migracji pokazuje, że nie powiodło się podczas synchronizowania folderów publicznych z włączoną obsługą poczty e-mail ze środowiska lokalnego.
Jednak wszystkie foldery publiczne z włączoną obsługą poczty lokalnej są synchronizowane z Exchange Online. Ten błąd będzie powtarzany nawet w przypadku wielokrotnego uruchomienia skryptu ".\Sync-MailPublicFolders.ps1".
Ponadto po uruchomieniu lokalnego 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 powodu błędu.
Przyczyna
Jeśli folder publiczny jest włączony pocztą, właściwość MailEnabled zostanie ustawiona na wartość True. Polecenie Disable-MailPublicFolder zmienia tę właściwość na False i usuwa odpowiednie wpisy z kontenera MESO (Microsoft Exchange System Objects).
Jeśli polecenie Disable-MailPublicFolder nie zakończy oczyszczania poprawnie, może pozostawić właściwość MailEnabled jako true. Spowoduje to jednak usunięcie obiektów z kontenera MESO.
W takim scenariuszu polecenie Get-MailPublicFolder nie wyświetli listy folderów opisanych w komunikacie o błędzie jako folderów publicznych z włączoną obsługą poczty. Jednak te foldery są nadal uważane za włączone poczty. Powoduje to niepowodzenie migracji.
Obejście problemu
Istnieją dwa sposoby obejścia tego problemu:
Metoda 1. Wykrywanie problemów z folderami publicznymi z włączoną obsługą poczty lokalnej przy użyciu skryptu
Pobierz i uruchom skrypt ValidateMailPublicFolders w Exchange Server lokalnie.
Skrypt zgłasza oddzielone foldery publiczne z włączoną obsługą poczty i foldery publiczne z włączoną obsługą poczty znajdujące się w folderze NON_IPM_Subtree. Sugeruje również użycie polecenia w celu rozwiązania problemu.
Uruchom polecenie sugerowane przez skrypt.
Po rozwiązaniu problemów zgłoszonych przez skrypt uruchom skrypt ponownie i upewnij się, że nie zgłoszono żadnego problemu dla folderów publicznych z włączoną obsługą poczty.
Metoda 2. Wykrywanie problemów z folderami publicznymi z włączoną obsługą poczty lokalnej przy użyciu poleceń
Wyświetl listę folderów publicznych, które nadal mają właściwość MailEnabled ustawioną na wartość True. Aby to zrobić, uruchom następujące polecenie:
Uwaga
Jeśli oprócz błędu, który mówi, że folder publiczny nie jest folderem publicznym z włączoną obsługą poczty, oprócz błędów zobaczysz błędy w poleceniu output.
$pf=Get-PublicFolder \ -recurse -ResultSize Unlimited | ? { $_.MailEnabled }; ForEach ($i in $pf) {$mesoObj = Get-MailPublicFolder $i.identity; if ($mesoObj -eq $null) {$i }}
Uruchom następujące polecenie, aby wyłączyć foldery publiczne z włączoną obsługą poczty:
$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} }
Wznów partię migracji zakończonej niepowodzeniem w Exchange Online.
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla