Exchange ortak klasör geçişi %95'te "Posta etkin olmayan [xx] Ortak Klasörler var" hatasıyla durduruluyor

Belirtiler

Ortak klasörleri Microsoft Exchange Server 2010'dan Exchange Online geçirdiğinizde işlem %95'te durur.

Ayrıca, geçiş raporunu gözden geçirmek için aşağıdaki komutu çalıştırdığınızda:

Get-PublicFolderMailboxMigrationRequest |Get-PublicFolderMailboxMigrationRequestStatistics -IncludeReport

Aşağıdaki hatayı görürsünüz:

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

Geçiş raporundaki hatanın ekran görüntüsü.

Ardından aşağıdaki komutu çalıştırıp hata ayrıntılarını alırsınız:

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

Hata ayrıntıları:

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.

Hata ayrıntılarından geçiş isteği, posta etkin ortak klasörleri şirket içinden eşitlemede başarısız olduğunu gösterir.

Ancak, şirket içi posta özellikli tüm ortak klasörler Exchange Online eşitlenir. ".\Sync-MailPublicFolders.ps1" betiğini birden çok kez çalıştırmış olsanız bile hata yinelenir.

Ayrıca, Get-MailPublicFolder komutunu şirket içinde çalıştırırsanız, posta etkin ortak klasör gösterilmez ve geçiş isteği hatayla başarısız olur.

Neden

Ortak klasör posta etkinse MailEnabled özelliği True olarak ayarlanır. Disable-MailPublicFolder komutu bu özelliği False olarak değiştirir ve Ilgili girdileri Microsoft Exchange Sistem Nesneleri (MESO) kapsayıcısından kaldırır.

Disable-MailPublicFolder komutu temizlemeyi doğru tamamlamazsa MailEnabledözelliğinin arkasında True olarak kalabilir. Ancak nesneleri MESO kapsayıcısından kaldırır.

Böyle bir senaryoda , Get-MailPublicFolder komutu hata iletisinde açıklanan klasörleri posta etkin ortak klasörler olarak listelemez. Ancak, bu klasörler hala postanın etkin olduğu kabul edilir. Bu, geçiş hatasına neden olur.

Geçici Çözüm

Bu sorunu geçici olarak çözmenin iki yolu vardır:

Yöntem 1: Şirket içi posta özellikli ortak klasörlerle ilgili sorunları algılamak için betik kullanma

  1. ValidateMailPublicFolders betiğini şirket içi Exchange Server indirip çalıştırın.

    Betik, NON_IPM_Subtree klasörünün altında bulunan yalnız bırakılmış posta etkin ortak klasörleri ve posta etkin ortak klasörleri bildirir. Ayrıca sorunu çözmek için bir komut kullanmanızı önerir.

  2. Betik tarafından önerilen komutu çalıştırın.

  3. Betik tarafından bildirilen sorunları giderdikten sonra, betiği yeniden çalıştırın ve posta etkin ortak klasörler için hiçbir sorun bildirildiğinden emin olun.

Yöntem 2: Şirket içi posta özellikli ortak klasörlerle ilgili sorunları algılamak için komutları kullanın

  1. MailEnabled özelliği True olarak ayarlanmış olan ortak klasörleri listeleyin. Bunu yapmak için aşağıdaki komutu çalıştırın:

    Not

    Çıkış komutunda, ortak klasörün posta etkin bir ortak klasör olmadığını belirten hataya ek olarak hatalar görürseniz, hataları yoksayın.

    $pf=Get-PublicFolder \ -recurse -ResultSize Unlimited | ? { $_.MailEnabled }; ForEach ($i in $pf) {$mesoObj = Get-MailPublicFolder $i.identity; if ($mesoObj -eq $null) {$i }}
    
  2. Posta etkin ortak klasörleri devre dışı bırakmak için aşağıdaki komutu çalıştırın:

    $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. başarısız geçiş toplu işlemini Exchange Online devam ettirin.