Public folder couldn't be mail-enabled when you migrate public folders to Exchange Online
Original KB number: 3050726
Problem
When you try to migrate public folders to Exchange Online, the migration fails and you receive an error message that resembles the following:
MigrationPermanentException: Error: Public folder "/<FolderName>" couldn't be mail-enabled. The error is as follows: "No MailPublicFolder entry was found in Active Directory with OnPremisesObjectId='<OnPremisesObjectId>' or LegacyExchangeDN='/CN=Mail Public Folder/CN=Version_1_0/CN=e71f13d1-0178-42a78c4724206de84a77/CN=000000001A4473 90AA6611CD9BC800AA002FC45A0300E7243831D8E5 0446AB3A0E4E3AEBE23500000000715A0000'". This failure can happen when MailPublicFolder objects in Exchange Online are out of sync with your Exchange deployment. You may need to rerun the script Export-MailPublicFoldersForMigration.ps1 on your Exchange server, followed by the script Import-MailPublicFoldersForMigration.ps1 on Exchange Online to update MailPublicFolder objects in Active Directory.
Cause
This problem occurs if the NON_IPM_SUBTREE system folder contains mail-enabled public folders. Public folders in the NON_IPM_SUBTREE folder don't have to be mail-enabled. They may have been previously mail-enabled because they were in a Microsoft Exchange 2000 Server environment that was running in mixed mode. In this situation, Exchange tries to mail-enable all public folders.
Solution
Mail-disable all public folders that are mail-enabled in the NON_IPM_SUBTREE folder. For more information about how to mail-disable a public folder, see Mail-enable or mail-disable a public folder.
To mail-disable public folders on NON_IPM_SUBTREE, run these commands:
For public folders on Exchange Server 2010
List mail-enabled public folders from NON_IPM_SUBTREE:
$pf=Get-PublicFolder \NON_IPM_Subtree -recurse -ResultSize Unlimited | ? { $_.MailEnabled }; ForEach ($i in $pf) {$mesoObj = Get-MailPublicFolder $i.identity; if ($mesoObj -eq $null) {$i }}
Mail-disable the public folders:
$pf=Get-PublicFolder \NON_IPM_Subtree -recurse -ResultSize Unlimited | ? { $_.MailEnabled }; ForEach ($i in $pf) {$mesoObj = Get-MailPublicFolder $i.identity; if ($mesoObj -eq $null) { Disable-MailPublicFolder $i -confirm:$False} }
For public folders on Exchange Server 2013 and later versions
List Mail-Enabled public folders from NON_IPM_SUBTREE:
$pf=Get-PublicFolder \NON_IPM_Subtree -recurse -ResultSize Unlimited | ? { $_.MailEnabled }; ForEach ($i in $pf) {$mesoObj = Get-MailPublicFolder $i.identity; if ($mesoObj -eq $null) {$i }}
Mail-disable the public folders:
$pf=Get-PublicFolder \NON_IPM_Subtree -recurse -ResultSize Unlimited | ? { $_.MailEnabled }; ForEach ($i in $pf) {$mesoObj = Get-MailPublicFolder $i.identity; if ($mesoObj -eq $null) { Set-PublicFolder $i -MailEnabled:$false -confirm:$False} }
To locate the system public folders, open the Exchange Management Console, go to Toolbox, open the Public Folder Management Console, and then expand System Public Folders. Mail-disable any public folder that has a mail icon next to it.
More information
Still need help? Go to Microsoft Community.
Feedback
https://aka.ms/ContentUserFeedback.
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Submit and view feedback for