העברת תיקיות ציבוריות של Exchange מופסקת ב-95% עם שגיאה "קיימות [xx] תיקיות ציבוריות שלא היתה אפשרות להפעיל את הדואר האלקטרוני"

מאפייני הבעיה

בעת העברת תיקיות ציבוריות מ-Microsoft Exchange Server 2010 ל-Exchange Online, התהליך עוצר ב-95%.

בנוסף, כאשר תפעיל את הפקודה הבאה כדי לסקור את דוח ההעברה:

Get-PublicFolderMailboxMigrationRequest |Get-PublicFolderMailboxMigrationRequestStatistics -IncludeReport

השגיאה הבאה מופיעה:

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

שגיאה בדוח ההעברה

לאחר מכן, אתה מפעיל את הפקודה הבאה ומקבל את פרטי השגיאה:

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

פרטי שגיאה:

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.

מתוך פרטי השגיאה, בקשת ההעברה מראה שהוא נכשל בסינכרון תיקיות ציבוריות המותאמות לשימוש בדואר מקומיות.

עם זאת, כל התיקיות הציבוריות המותאמות לדואר המקומי מסונכרנות עם Exchange Online. השגיאה תחזור על עצמה גם אם הפעלת את ה-script ".\Sync-MailPublicFolders.ps1" מספר פעמים.

כמו כן, אם תפעיל את הפקודה Get-MailPublicFolder באופן מקומי, היא לא תציג תיקיות ציבוריות המותאמות לדואר, ובקשת ההעברה תמשיך להיכשל עם השגיאה.

סיבה

אם תיקיה ציבורית מאופשרת דואר, המאפיין MailEnabled מוגדר כ- True. הפקודה ' בטל-MailPublicFolder ' משנה מאפיין זה ל- False ומסירה ערכים מתאימים מהגורם המכיל של Microsoft EXCHANGE objects (מזו).

אם הפקודה ' בטל-MailPublicFolder ' אינה משלימה את הניקוי כראוי, היא עשויה להשאיר מאחורי המאפיין MailEnabled כערך True. אך היא תסיר את האובייקטים מגורם מכיל של מזו.

בתרחיש כזה, הפקודה Get-MailPublicFolder לא תפרט את התיקיות המתוארות בהודעת השגיאה כתיקיות ציבוריות המותאמות לשימוש בדואר. עם זאת, תיקיות אלה עדיין נחשבות לזמינות בדואר. פעולה זו גורמת לכשל בהעברה.

פתרון

קיימות שתי דרכים לעקוף בעיה זו:

שיטה 1: שימוש ב-script כדי לזהות בעיות עם תיקיות ציבוריות המותאמות לשימוש בדואר מקומי

  1. הורד והפעל את קובץ ה-script של ValidateMailPublicFolders ב-Exchange Server מקומי.

    קובץ ה-script מדווח על תיקיות ציבוריות המותאמות לשימוש בדואר יתומים ותיקיות ציבוריות המותאמות לדואר הנמצאות תחת התיקיה NON_IPM_Subtree. היא גם מציעה שימוש בפקודה כדי לפתור את הבעיה.

  2. הפעלת הפקודה המוצעת על-ידי קובץ ה-script.

  3. לאחר תיקון הבעיות שדווחו על-ידי קובץ ה-script, הפעלת את קובץ ה-script שוב וודא שלא מדווח על בעיה עבור תיקיות ציבוריות המותאמות לשימוש בדואר.

שיטה 2: שימוש בפקודות כדי לזהות בעיות עם תיקיות ציבוריות המותאמות לשימוש בדואר מקומי

  1. פרט את התיקיות הציבוריות שהמאפיין MailEnabled עדיין מוגדר ל- True. לשם כך, הפעל את הפקודה הבאה:

    הערה

    אם אתה רואה שגיאות בפקודה פלט בנוסף לשגיאה שמציינת שהתיקיה הציבורית אינה תיקיה ציבורית המותאמת לשימוש בדואר, התעלם מהשגיאות.

    $pf=Get-PublicFolder \ -recurse -ResultSize Unlimited | ? { $_.MailEnabled }; ForEach ($i in $pf) {$mesoObj = Get-MailPublicFolder $i.identity; if ($mesoObj -eq $null) {$i }}
    
  2. הפעלת הפקודה הבאה כדי להפוך את התיקיות הציבוריות המותאמות לדואר ללא זמינות:

    $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.