Checkyourlogs fans, I am going to show you how to migrate public folder from exchange 2010 to 2016 step by step.

There is no more legacy public folder database, public folder mailboxes also known as modern public folders, if you still need public folders, migrate them to Exchange 2016. Public folder migration is a one-way process, if something goes wrong, you can roll back but any changes made since the migration will be lost.

  1. Login Exchange 2010 Server.
  2. Download all scripts and supporting files from following link and save to c:\post-install\pfscripts.

https://www.microsoft.com/en-us/download/details.aspx?id=38407



3. Open Exchange Management Shell.

4. Run the following command to take a snapshot of the original source public folder structure.

Get-PublicFolder -Recurse | Export-CliXML C:\Post-Install\PFMigration\Legacy_PFStructure.xml 

5. Run the following command to take a snapshot of public folder statistics such as item count, size, and owner.

Get-PublicFolderStatistics | Export-CliXML C:\Post-Install\PFMigration\Legacy_PFStatistics.xml

6. Run the following command to take a snapshot of the permissions.

Get-PublicFolder -Recurse | Get-PublicFolderClientPermission | Select-Object Identity,User -ExpandProperty AccessRights | Export-CliXML C:\Post-Install\PFMigration\Legacy_PFPerms.xml

7. If the name of a public folder contains a backslash \, the public folders will be created in the parent public folder when migration occurs. Before you migrate, we recommend that you rename any public folders that have a backslash in the name. Run the following command to locate public folders that have a backslash in the name.

Get-PublicFolderStatistics -ResultSize Unlimited | Where {$_.Name -like "*\*"} | Format-List Name, Identity

8. If any public folders are returned, you can rename them by running the following command.

Set-PublicFolder -Identity <public folder identity> -Name <new public folder name>

9. To make sure there isn’t a previous record of a successful migration, run following cmdlet to check the public folder migration status.

Get-OrganizationConfig | Format-List PublicFoldersLockedforMigration, PublicFolderMigrationComplete

10. If the status of the PublicFoldersLockedforMigration or PublicFolderMigrationComplete properties is $true, run the following command to set the value to $false.

Set-OrganizationConfig -PublicFoldersLockedforMigration:$false -PublicFolderMigrationComplete:$false

11. Login to Exchange 2016 server.

12. Open Exchange Management Shell.

13. Run the following command to discover any existing serial migration requests.

Get-PublicFolderMigrationRequest | Get-PublicFolderMigrationRequestStatistics -IncludeReport | Format-List

14. If you found existing serial migration requests, run following command to removes any existing public folder serial migration requests.

Get-PublicFolderMigrationRequest | Remove-PublicFolderMigrationRequest

15. Run the following command to discover any existing batch migration requests.

Get-MigrationBatch | where {$_.MigrationType.ToString() -eq "PublicFolder"}

16. If you found existing batch migration requests, run following command to removes any existing batch migration requests.

$batch = Get-MigrationBatch | where {$_.MigrationType.ToString() -eq "PublicFolder"}
$batch | Remove-MigrationBatch -Confirm:$false </strong>

17. Run the following command to make sure no public folder mailboxes exist on the exchange 2016 server.

Get-Mailbox -PublicFolder

18. If the command returned any public folders, run the following command to see if any public folders exist.

Get-PublicFolder

19. If you have any public folders, run the following commands to remove them. Make sure you’ve saved any information that was in the public folders.

Get-Mailbox -PublicFolder | Where{$_.IsRootPublicFolderMailbox -eq $false} | Remove-Mailbox -PublicFolder -Force -Confirm:$false
Get-Mailbox -PublicFolder | Remove-Mailbox -PublicFolder -Force -Confirm:$false

Steps are not completing!!, stay tuned, to be continue……

Hope you enjoy this post.

Cary Sun

Twitter: @SifuSun