Monday, June 17, 2013

Migrating Public Folders to Exchange 2013

Now that Exchange 2007 SP3 RU10, Exchange 2010 SP3 and Exchange 2013 CU1 have been released, administrators can start deploying Exchange 2013 in a coexistence scenario with these two previous versions of Exchange.
Part of many transitions from Exchange 2007/2010 to 2013 will include the migration of Public Folders (PFs). Because of all the major changes made to PFs, discussed in the Exchange 2013 Preview - Public Folders article, legacy Exchange mailboxes are unable to access the PF hierarchy on Exchange 2013 servers. However, mailboxes on Exchange 2013 can connect to legacy PFs.
Unlike migrating PFs between previous versions of Exchange, PFs on Exchange 2013 and legacy PFs cannot coexist in an Exchange organization, which means that migrating PFs to Exchange 2013 is a one-time cut-over process.
Because legacy mailboxes cannot access PFs in Exchange 2013, it is recommended that all mailboxes are first moved to Exchange 2013 and only then PFs migrated.
The high level process for migrating Public Folders from Exchange 2007/2010 is as follows:
   1. Migrate user mailboxes to Exchange 2013 before migrating PFs;
   2. Snapshot current PF environment for comparison when migration is complete (folders, sizes and permissions);
   3. Create CSV file, manually or using scripts (Export-PublicFolderStatistics.ps1 and PublicFolderToMailboxMapGenerator.ps1). End result is a CSV file mapping PFs to new PF mailboxes;
   4. Create PF mailboxes using New-Mailbox –PublicFolder cmdlet;
   5. Migrate PF content using New-PublicFolderMigrationRequest cmdlet;
   6. Lock down Exchange 2007/2010 PFs for final migration using the following cmdlets:
         a.      Set-OrganizationConfig –PublicFoldersLockedForMigration $True (Exchange 2010)
         b.      Set-OrganizationConfig –PublicFolderMigrationComplete $True (Exchange 2013)
         c.      Set-PublicFolderMigrationRequest <name> -PreventCompletion $False (Exchange 2013)
         d.      Resume-PublicFolderMigrationRequest <name> (Exchange 2013)
   7. Test new PFs;
   8. Snapshot Exchange 2013 PFs and compare with Exchange 2007/2010 PF snapshots;
   9. Roll back, if necessary, by running Set-OrganizationConfig –PublicFoldersLockedForMigration $False and Set-OrganizationConfig –PublicFolderMigrationComplete $False;
   10. Remove Exchange 2007/2010 PFs and PF databases.

For a detailed explanation, including step by step instructions, please check and the Migrating Public Folders to Exchange 2013 article.


  1. Nuno, I have two environments, with Exchange 2007 and Exchange 2010 and need to migrate Public Folders from Exchange 2007 to Exchange 2010. Do you have a tutorial for this purpose?

    Can you send me or skype fabiopecinho ?

    1. Hi Fabio,

      Just sent you an e-mail with the details.
      Please let me know if it helped.


  2. Hi Nuno.
    When you edited the public folder to public mailbox CSV, what did you use and how did you do so? I am assuming the CSV from PublicFolderToMailboxMapGenerator.ps1 is Unicode. From the posting it looks like you are using Excel. When I attempted this, the new-publicfoldermigrationrequest generated an error.

    I can be reached by Lync or email at

    1. Hi Jacob,

      Yes, I used Excel. Just save it as a CSV file, open it with Notepad and make sure it looks like pictures 1.8 or 1.9.
      What error are you getting?