Migration Public folder from Exchange 2010 to 2013 server

Today we will look at how to migrate your public folders from Exchange Server 2010 SP3  to Microsoft Exchange Server 2013.

To  migrate public folder we need to follow steps below:

  • Step 1: Download the migration scripts
  • Step 2: Prepare for the migration
  • Step 3: Generate the .csv files
  • Step 4: Create the public folder mailboxes on the Exchange 2013 server
  • Step 5: Start the migration request
  • Step 6: Lock down the public folders on the legacy Exchange server for final migration (downtime required)
  • Step 7: Finalize the public folder migration (downtime required)
  • Step 8: Test and unlock the public folder migration

Step 1: 

  1. Download all four of the Microsoft Exchange 2013 public folder migration scripts.
  2. Save the scripts to the local computer on which you’ll be running PowerShell from.

Step 2:

1.For verification purposes at the end of migration, we recommend that you first run the following Shell commands on the legacy Exchange server to take snapshots of your current public folder deployment.

Run the following command to take a snapshot of the original source folder structure:

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

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

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

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:\PFMigration\Legacy_PFPerms.xml

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

In Exchange 2010, to locate public folders that have a backslash in the name, run the following command:

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

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>
3.Make sure there isn’t a previous record of a successful migration. If there is, you’ll need to set that value to $false. If the value is set to $true the migration request will fail.

The following example checks the public folder migration status.

 Get-OrganizationConfig | Format-List PublicFoldersLockedforMigration, PublicFolderMigrationComplete
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

Prerequisite steps on the Exchange 2013 server

  • Make sure there are no existing public folder migration requests. If there are, clear them. This step is a prerequisite and isn’t required in all cases. It’s only required if you think there may be an existing migration request in the pipeline. In any case, the following command below won’t affect the new migration. The following example removes any existing public folder migration requests.

Get-PublicFolderMigrationRequest | Remove-PublicFolderMigrationRequest -Confirm:$false

  • To make sure there are no existing public folders on the Exchange 2013 servers, run the following commands.

Get-Mailbox -PublicFolder

Get-PublicFolder

  • If the above commands return any public folders, use the following commands to remove 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

Step 3:

 

 

Add Comment