Migrate public Folders
Now one of the most critical area in Exchange 2010 is public folder migration to Exchange 2013, as you already aware in Exchange 2013 public folder concept. Now we will move further to migrate public folder from Exchange 2010 to Exchange 2013.
- First of all we will make sure permission level of the account which we will be performing the migration it should be member of Organizational Management and Recipient Management.
- On the Legacy Exchange server 2010 download the Public folder migration scripts. Then extract them into the Exchange server C: drive.
- Now open the Exchange Management shell and run the “Export-PublicFolderStatistics.ps1” script, give the name of the file you want to create them give the name of the Public folder server name (Exchange 2010 server where we have public folders).
- Now create a public folder to Mailbox mapping file by running the “PPublicFolderToMailboxMapGenerator.ps1” script, give the maximum mailbox size (in Bytes), the maximum size is 25 GB, you also need to supply the import file (.csv) you created in last steps, finally supply the name of the output file you want to generate in .CSV file.
- Open the .CSV last .csv file you created and take not of the targetmailbox name. By default mines called “MasterPubicFolder”, I changed it to PF-Mailbox and save.
- Now we have to go on Exchange 2013 server and create the new public folder.New-Mailbox –PublicFolder PFMailbox –HoldForMigration:$true -Database DB3
- Copy the generated .csv file from the Exchange 2010 server to the Exchange 2013 server, in my case I copied on C drive.
- Create a new migration request in Exchange 2013 server New -PublicFolderMigrationRequest –SourceDatabase (get-PublicFolderDatabase –Server MX14) –CSVData (Get-Content c:\PFtoMBX.csv –Encoding Byte) New -PublicFolderMigrationRequest –SourceDatabase (get-PublicFolderDatabase –Server MX14) –CSVData (Get-Content c:\PFtoMBX.csv –Encoding Byte) –AcceptLargeDataLoss –BadItemLimit (0 to 2147483647)
- You can also check the progress of the Public Folder migration. Get-PublicFolderMigrationRequest | Get-PublicFolderMigrationRequestStatistics –IncludeReport | fl
- If you see the progress stops before 100%, this is because you need to “Lock” the source public folder and let the migration complete. (it require downtime, better do this out of hours) Set-OrgnizationConfig –PublicFoldersLockedForMigration:$true
Users will get below error when you run following cmdlet on Public Folder server
If there are multiple PF database in the your messaging environment, you need to wait until Public Folder replication is complete to confirm that all PF databases have picked up the PublicFolderLockedForMigration flag. To bypass this waiting period. We can restart the Microsoft Exchange Information Store Service.
- Now you have to access to the legacy Public Folder Database is shut down and replication to the new Public Folder Mailbox is completed in the background. This will take some time, I would wait least a couple of hours before proceeding further, it is also depends on your network.
- In order to complete the migration process we need to set the PublicFolderMigrationComplete property to true through PowerShell command. Set-OrganizationConfig _publicFolderMigrationComplete $true
- In Order to complete the migration we still need to remove the PreventCompletion flag from the PF migration request and then resume it. Set-PublicFolderMigrationRequest \PublicFolderMigration –PreventCompletion $false
- Once this steps done, Exchange will synchronize any last changes made to PFs in Exchange 2010 after the initial synchronization but before we locked users out. This also allows us to import any non-top level PFs created since the original migration request took place. In this stage the source PFs are still locked and inaccessible to users because we set the PublicFolderLockedForMigration flag to true. This lock remains in place to prevent users from accessing the source PFs after migration completes. Although we can release this lock, it is recommended to do so because any changes will not be synced to Exchange 2013. Now we can track the migration process
- Now we are ready to test if the migration has been successful until this point and before we enable PFs to all users. To do so far we need to unlock at least one PF mailbox. I’m going to use some PF mailbox for testing
- Now we check the EAC, we can see all the PFs already created on Exchange 2013
- Once this done, the users will be able to access the PF, this time located on Exchange 2013
- Now everything might seems to be fine, you should still verify that your PF migration was successful by talking the same snapshots of the new PFs and compare them to the ones we took in the beginning of the entire process. You should compare all snapshots in order to ensure all items have been copied and that permissions have been honored.
- Finally, it is step to remove the public folder database from Exchange 2010 servers, once the all other process is complete and you have verified that the Exchange 2013 PFs are working as expected, the final step to a successful migration is to remove the PF databases on the legacy Exchange servers.
Roll Back the Migration
As you know every migration goes according to plan and you might need to roll back the migration and reactive the PFs on Exchange 2010. To do so, first you need to unlock the legacy Exchange PFs and set the PublicFolderMigrationComplete flag to False by running the following cmdlet on the Exchange 2010 server.
Set-OrgnizationConfig –PubicFolderLockedforMigration $false –PublicFolderMigrationComplete $false
Click here for part-9 Click here to Continue Part-11