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-PublicFolderMigrationRequest
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
Get-PublicFolderMigrationRequest
Step 8: (INVOLVES DOWNTIME)
(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
Thank you
thanks for sharing
Thank you for your comments. Happy to share
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.
Thank you for your inputs sadiq . Will change that soon.
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?
Thanks!
Amy
You can use the Tool called Exfolders it will be simple to use.
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.
Restarting Replication Service may help
Satheshwaran Manoharan restarting services does not work nor does rebooting the Exchange 2013 server. I am having the same issue… hopefully will get a resolution soon.
Hi Satish,
Is it the same procedure for cross forest public folder migration? (exchange 2010 to 2013)
Public Folders.. Read about Inter-org its supports only 2010. Go for third party. It will be too complicated though.