Sdílet prostřednictvím


Migrace veřejných složek Exchange se zastaví na 95 % s chybou "Existují [xx] Veřejné složky, které nešlo povolit poštu"

Příznaky

Při migraci veřejných složek z Microsoft Exchange Server 2010 do Exchange Online se proces zastaví na 95 %.

Pokud navíc spustíte následující příkaz pro kontrolu sestavy migrace:

Get-PublicFolderMailboxMigrationRequest |Get-PublicFolderMailboxMigrationRequestStatistics -IncludeReport

Zobrazí se následující chyba:

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

Snímek obrazovky s chybou v sestavě migrace

Pak spusťte následující příkaz a zobrazí se podrobnosti o chybě:

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

Podrobnosti o chybě:

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.

Z podrobností o chybě vyplývá, že žádost o migraci selhala při synchronizaci veřejných složek pošty z místního prostředí.

Všechny veřejné složky s místní poštou se ale synchronizují s Exchange Online. Chyba se zopakuje i v případě, že jste skript .\Sync-MailPublicFolders.ps1 spustili několikrát.

Pokud také spustíte příkaz Get-MailPublicFolder místně, nezobrazí se žádné veřejné složky s podporou pošty a žádost o migraci bude dál selhávat s chybou.

Příčina

Pokud má veřejná složka povolenou poštu, bude mít vlastnost MailEnabled nastavenou na hodnotu True. Příkaz Disable-MailPublicFolder změní tuto vlastnost na False a odebere odpovídající položky z kontejneru Microsoft Exchange System Objects (MESO).

Pokud příkaz Disable-MailPublicFolder nedokončí vyčištění správně, může za to, že vlastnost MailEnabled bude true. Objekty se ale odeberou z kontejneru MESO.

V takovém případě příkaz Get-MailPublicFolder nevypíše složky popsané v chybové zprávě jako veřejné složky s podporou pošty. Tyto složky se ale stále považují za povolenou poštu. To způsobí selhání migrace.

Řešení

Tento problém můžete obejít dvěma způsoby:

Metoda 1: Použití skriptu ke zjištění problémů s místními poštovními veřejnými složkami

  1. Stáhněte a spusťte skript ValidateMailPublicFolders v místním Exchange Server.

    Skript hlásí osamocené veřejné složky pošty a veřejné složky s podporou pošty, které se nacházejí ve složce NON_IPM_Subtree. Navrhuje také použití příkazu k vyřešení problému.

  2. Spusťte příkaz navržený skriptem.

  3. Po vyřešení problémů hlášených skriptem spusťte skript znovu a ujistěte se, že není nahlášen žádný problém s veřejnými složkami s podporou pošty.

Metoda 2: Použití příkazů ke zjištění problémů s místními veřejnými složkami pošty

  1. Vypište veřejné složky, u kterých je vlastnost MailEnabled nastavená na hodnotu True. Uděláte to spuštěním tohoto příkazu:

    Poznámka

    Pokud se ve výstupním příkazu kromě chyby, která říká, že veřejná složka není veřejná složka s podporou pošty, zobrazí chyby, chyby ignorujte.

    $pf=Get-PublicFolder \ -recurse -ResultSize Unlimited | ? { $_.MailEnabled }; ForEach ($i in $pf) {$mesoObj = Get-MailPublicFolder $i.identity; if ($mesoObj -eq $null) {$i }}
    
  2. Spuštěním následujícího příkazu zakažte veřejné složky s podporou pošty:

    $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. Pokračujte v dávce neúspěšné migrace v Exchange Online.