Exchange ortak klasör geçişi, %95 tarihinde durdurulur ve "posta etkinleştirilmemiş olmayan [xx] ortak klasörleri var"

Belirtiler

Ortak klasörleri Microsoft Exchange Server 2010 'dan Exchange Online 'a geçirdiğinizde, süreç %95 oranında durdurulur.

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ş raporunda hata

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 bilgilerinizde, geçiş isteğinde posta etkin ortak klasörlerinin Şirket içinden eşitlenmediği gösterilir.

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

Ayrıca, şirket içi Get-MailPublicFolder komutunu çalıştırırsanız, posta etkinleştirilmiş ortak klasörler gösterilmez ve geçiş isteği hatayla başarısız olmaya devam eder.

Neden

Ortak klasör posta etkinse, MailEnabled özelliği true olarak ayarlanır. Disable-MailPublicFolder komutu, bu özelliği yanlış 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 şekilde tamammazsa, MailEnabled özelliğinin arkasında kalabilir. Ancak, MESO kapsayıcısındaki nesneleri kaldırır.

Bu senaryoda, Get-MailPublicFolder komutu, hata iletisinde açıklanan klasörleri posta etkinleştirilmiş ortak klasörler olarak listeetmez. Ancak, bu klasörler hala posta etkinleştirilmiş olarak kabul edilir. Bu, geçiş hatasına neden olur.

Geçici Çözüm

Bu sorunu geçici olarak yapmanın iki yolu vardır:

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

  1. Şirket içi Exchange Server 'da Validatemailpublicfolders betiğini indirin ve yükleyin.

    Komut dosyası, artık posta etkin ortak klasörlerini ve NON_IPM_Subtree klasörünün altında bulunan posta özellikli ortak klasörleri raporlar. Ayrıca, sorunu çözmek için komut kullanmayı da önerir.

  2. Komut dosyası tarafından önerilen komutu çalıştırır.

  3. Komut dosyası tarafından bildirilen sorunları düzelttikten sonra, komut dosyasını yeniden çalıştırıp posta özellikli ortak klasörler için hiçbir sorun bildirilmemiştir.

Yöntem 2: şirket içi posta özellikli ortak klasörlerde sorunları algılamak için komutlar kullanma

  1. MailEnabled özelliğinin true olarak ayarlandığı ortak klasörleri listeler. Bunu yapmak için aşağıdaki komutu çalıştırın:

    Not

    Genel klasörün posta etkin bir ortak klasör olmadığını belirten hataya ek olarak çıkış komutunda hatalar görüyorsanız, 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örlerini devre dışı bırakmak için aşağıdaki komutu bırakı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. Exchange Online 'daki başarısız geçiş toplu işlemini sürdürün.