Preparing for an Exchange Server 2010 Public Folder Migration to Exchange Server 2013, 2016, or O365

Have you decided to migrate to Modern Public Folders on Exchange Server 2013, 2016, or Exchange Online (O365)? Better start preparing now. If you cannot retire your Public Folders, plan on a MINIMUM of 40+ hours to migrate to Modern Public Folders (that minimum is for customers having less than 20 GB of Public Folders). I have created a list, below, of areas to fix. These steps are based on my numerous Exchange Server 2010 Public Folder migrations. Fixing all the errors below will lower the amount of PF migration redos/reruns. You will have at least one rerun/redo (due to errors) for your PF migration – so plan on it. A typical Public Folder migration can take over 20 tries. Let’s first start with a few links to review for the Public Folder Migration Steps:

Configure legacy public folders where user mailboxes are on Exchange 2013 servers
https://learn.microsoft.com/en-us/exchange/configure-legacy-public-folders-where-user-mailboxes-are-on-exchange-2013-servers-exchange-2013-help?redirectedfrom=MSDN

Configure legacy on-premises public folders for a hybrid deployment in Exchange Online
https://learn.microsoft.com/en-us/exchange/collaboration-exo/public-folders/set-up-legacy-hybrid-public-folders?redirectedfrom=MSDN

Use batch migration to migrate Exchange 2010 public folders to Exchange 2016
https://learn.microsoft.com/en-us/exchange/collaboration/public-folders/batch-migration-from-previous-versions?view=exchserver-2016

Use batch migration to migrate legacy public folders to Office 365 and Exchange Online
https://learn.microsoft.com/en-us/exchange/collaboration-exo/public-folders/batch-migration-of-legacy-public-folders

Migration to Modern Public Folders – Notes from the Field
https://techcommunity.microsoft.com/t5/exchange-team-blog/migration-to-modern-public-folders-notes-from-the-field/ba-p/605703

Now, let’s dive into preparing your Exchange Server 2010 Public Folders for migration to Modern Public Folders.

STEP 1:

Verify public folder replication

Exchange 2010 Public Folder Replication Report
https://github.com/Apoc70/Get-PublicFolderReplicationReport

Run the following command on an Exchange Server 2010 Mailbox Server that has a Public Folder Database:

.\Get-PublicFolderReplicationReport.ps1 -AsHTML -FileName C:\PFReplReport.html

STEP 2:

Fix anything yellow when you run:

Get-MailPublicFolder -Resultsize Unlimited

Fix Aliases:

New version of fix-alias.ps1

https://github.com/JohanVeldhuis/johanveldhuis.github.io/blob/master/_posts/2011-07-26-new-version-of-fix-alias-ps1.md

NOTE: If you are seeing errors for Public Folders that are currently not mail enabled. This is because the Active Directory object is still in AD. Open Active Directory Users and Computer > Microsoft Exchange System Objects. Find the Public Folder entry and delete it. Public Folder objects are only listed in here IF they are mail enabled.

STEP 3:

Clean up names too…

Forward slash, backslash, or amperes sign:

Get-PublicFolderStatistics -ResultSize Unlimited | Where {($_.Name -like "*\*") -or ($_.Name -like "*/*") -or ($_.Name -like "*&*")} | Format-List Name, FolderPath

https://learn.microsoft.com/en-us/Exchange/collaboration/public-folders/batch-migration-from-previous-versions?view=exchserver-2016

STEP 4:

Removing Unresolved SIDs in Exchange Server 2010:

https://docs.microsoft.com/en-us/archive/blogs/bill_long/removing-unresolved-sids-in-exchange-2010

You can also try this, which will show only the problematic folders:

Get-Publicfolder “\” -recurse -Resultsize unlimited | Get-publicfolderclientpermission | where {$_.user -like “NT User:S-1-5-21-*”} | FT Identity,User

STEP 5:

Check for large items to either adjust your transport limits or leave them behind:

Get-PublicFolder –Recurse –ResultSize unlimited | Get-PublicFolderItemStatistics | Select subject,publicfoldername,messagesize

If you want to leave these large items behind, use the -LargeItemLimit parameter when running the New-MigrationBatch

If you want to move these large items, make sure that your Receive Connectors, Send Connectors, and Transport Config all have a value, for Send and Receive Limits, that is larger than the largest value from the results of the Get-PublicFolder command above.

Leave a comment