24.5 C
Tuesday, December 6, 2022

How to migrate Public folders from Exchange 2010 Sp3 to Exchange 2013

Let’s see how to migrate Public Folders from Exchange 2010 Sp3 to Exchange 2013


Step 1 : (Login to Exchange 2010 Server)

Login to Exchange 2010 Server and take a backup of Exchange 2010 PF structure

Note : Created a test PF structure for better Understanding



Step2 : (Login to Exchange 2010 Server)

Exporting Public Folder Structure , Item Count In folders(Statistics) , Permissions  in Exchange 2010 Server

Purpose – To Verify the Content after migration.

Login to your Exchange 2010 Server . Open Exchange Management Shell

Exporting Public Folder Structure to CSV

Get-PublicFolder –Recurse | Export-CSV C:\Exchange2010-PFStructure.csv



Exporting Public Folder Statistics to CSV ( Ignore the Below Error )

Get-PublicFolder -Recurse | Get-PublicFolderStatistics | Export-Csv C:\Exchange2010-PFStatistics.csv


Exporting Public Folder Permissions to CSV

Get-PublicFolder -GetChildren | Get-PublicFolderClientPermission | Select-Object Identity,User -ExpandProperty AccessRights | Export-CSV C:\Exchange2010-PFPermissions.csv


Step 3: (Run in Exchange 2010 Server)

Make Sure PublicFoldersLockedForMigration and PublicFolderMigrationComplete is set to False

PublicFoldersLockedForMigration : False
PublicFolderMigrationComplete   : False

Get-OrganizationConfig  | fl *Migration*



If this parameter is set to True , Run the below command to Change it to False

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


Step 4: (Run this on Exchange 2013 server)

Make sure there is no PublicFolderMigrationRequest and PublicFolder Mailbox


Get-Mailbox -PublicFolder


Get this Below Scripts and Supporting files , from Exchange 2013 Scripts folder (C:\Program Files\Microsoft\Exchange Server\V15\Scripts)

and Copy those files to Exchange 2010 Scripts Folder (C:\Program Files\Microsoft\Exchange Server\V14\Scripts)



Step 4: (Run this on Exchange 2010 server)

Login to Exchange 2010 Server , Open Exchange management Shell , As we copied the PF scripts to Scripts folder.

Locate to It and Run Both the Scripts

Script 1 :

.\Export-PublicFolderStatistics.ps1 -PublicFolderServer EXC2010.domain.com  -ExportFile C:\PFMigration\Exchange2010-PFtoSize.csv

Copy the Exported File name “Exchange2010-PFtoSize.csv”  , And Specify the same in the next script in –ImportFile Parameter


Script 2:

Copy the Exported File name on the above script “Exchange2010-PFtoSize.csv”  , And Specify the same in the below in –ImportFile Parameter

.\PublicFolderToMailboxMapGenerator.ps1 -MailboxSize 5000000000 -ImportFile C:\PFMigration\Exchange2010-PFtoSize.csv -ExportFile C:\PFMigration\Exchange2010-PFtoMailbox.csv

Note – MailboxSize Parameter – 1GB – 1000000000 (In Bytes) , Maximum you can specify is 25GB



Step 5 : (Log into Exchange 2010 server)

Open file Exchange2010-PFtoMailbox.csv

Specify the PF mailbox name which you wish , Default name is Mailbox1

Specified “PFMailbox”



Step 6: (Log into Exchange 2013 server)

Create the PF Mailbox as the specified name in the CSV “PFMailbox”

New-Mailbox -PublicFolder PFMailbox -HoldForMigration:$true -Database “Mailbox Database”



Step 7: (Log into Exchange 2013 server)


Create PublicFolderMigrationRequest

New-PublicFolderMigrationRequest -SourceDatabase (Get-PublicFolderDatabase –Server EXCH2010) -CSVData (Get-Content C:\PFMigration\Exchange2010-PFtoMailbox.csv -Encoding Byte)


Note : If required you can add these parameters -AcceptLargeDataLoss –BadItemLimit

Bad limit value can be= 0 to 2147483647



To Check status of Migration request

Get-PublicFolderMigrationRequest | Get-PublicFolderMigrationRequestStatistics -IncludeReport | FL







(Note : Once you set PublicFoldersLockedForMigration to True – Users will lose access to Public Folders)

Once the PublicFolderMigrationRequest goes autosuspended we got to set PublicFoldersLockedForMigration to True

Set-OrganizationConfig -PublicFoldersLockedForMigration:$true



Now users would have lost access to the legacy Public Folder Database and replication to new Public Folder Mailbox is completed .

This may take time ,depending on your topology . ( Got to wait for 60 to 120 minutes)

Step 9:(Log into Exchange 2013 server)

Now you can Complete the migration, with the following two commands

Get-PublicFolderMigrationRequest  -Identity \PublicFolderMigration | Set-PublicFolderMigrationRequest -PreventCompletion:$false

Get-PublicFolderMigrationRequest  -Identity \PublicFolderMigration | Resume-PublicFolderMigrationRequest




Now Verify PublicFolderMigrationRequest is 100 Percent Complete


Get-PublicFolderMigrationRequest | Get-PublicFolderMigrationRequestStatistics



Get-PublicFolder –Recurse



Login to OWA – Right Click on Favorites – Add Public Folder – Verify you are able to access the migrated Data






Hope it is helpful Smile


Thank you

Satheshwaran Manoharan
Satheshwaran Manoharanhttps://www.azure365pro.com
Specialized in Microsoft Azure - Office 365 / Microsoft Exchange; conducted numerous projects worldwide in designing, supporting, and implementing messaging and virtualization infrastructure for medium-sized and large enterprises. Further, I am a Cloud Architect and Technical Advisor for various start-ups.

Related Articles


  1. Hi Sathesh,
    In the “Exporting Public Folder Permissions to CSV” step, you are running “Get-PublicFolder -GetChildren | Get-PublicFolderClientPermission” to get the permission. When we run Get-publicFolder -GetChildren, it will give you the list subfolders under root. Not the sub sub folders below that. So instead we can use Get-PublicFolder -Recurse itself.

  2. Hi Satheshwaran,
    Great info! Lots of useful tips.
    I hope you are doing well. Would you know of any powershell script that can propagate Public Folder permissions on Exchange 2010?

  3. Hi Satheswaran,

    i fallow the procedure but i run “Set-OrganizationConfig -PublicFoldersLockedForMigration:$true” on ex2013 and my request was showing that in progress at 95% in detail it was showing that relinquishing job because the mailbox locked the job will be attamp to complete after xxx time. i remove the migration request and delete publicfoldermailbox from 2013 and try to start migration again now there is a error showing “Failed to submit the request because public folder migration has already been successfully completed previosly”
    what should i do please suggest.

    • Public Folders.. Read about Inter-org its supports only 2010. Go for third party. It will be too complicated though.


Please enter your comment!
Please enter your name here

× How can I help you?