How to Migrate Public Folders to Office 365 Groups?

Aftab Alam    Aftab Alam     Updated On - 14 Feb 2019

When we talk about migration of Exchange mailboxes to Office 365, then there are multiple methods like cutover, staged, and hybrid migration. If you have used any of these methods, then you must be aware that all these methods require creating a batch of the mailboxes in a CSV file, configuring the Exchange settings for a smooth migration, and running the batch. This process takes time, and the administrator needs to monitor the migration process throughout the time continuously.

When you want to migrate public folders from Exchange to Office 365, then there are no direct methods, but you can perform the migration using Exchange Management Shell.

If you only want to migrate the public folder mailbox to Office 365, then you can do it directly as any other mailbox without making the changes. If you wish to replace the legacy public folder with Office 365 groups, then here is the procedure to follow.

Manual Process to Migrate Public Folder to Office 365 Groups

The manual process to migrate the public folders is completed in multiple steps, and here we have provided the steps here –

Step – 1: – Download the migration scripts from the following URL –

There are multiple scripts which are essential in the migration process at multiple levels –

1. AddMembersToGroups.ps1
It helps to include the users and owners from the source Exchange.

2. AddMembersToGroups.strings.psd1
It is an associate script for the first script.

3. LockAndSavePublicFolderProperties.ps1
It locks the public folder from any updates or changes while migration is in progress.

4. LockAndSavePublicFolderProperties.strings.psd1
It is an associate script for the third script.

5. UnlockAndRestorePublicFolderProperties.ps1
It unlocks the public folder’s properties and restores them to their original state.

6. UnlockAndRestorePublicFolderProperties.strings.psd1
It is associated script for the fifth script.

7. WriteLog.ps1
It activates the first, third, and fifth scripts to write logs.

Step – 2: Prepare the migration environment.
Perform the steps to create a suitable migration environment –

  1. List all the public folder content which you want to migrate.
  2. Prepare a list of Office 365 Groups and map them with source public folders. Create new Groups if required.
  3. Make sure that public folders do not have a name containing a backslash (\). The MoveRequest command will not migrate such public folders.
  4. There is a unique PAW feature which should be in enabled state in the Office 365. You can check the status of this feature using the following command –


It will provide you with a list of all the features in Office 365. If the record has PAW in it, it means it is enabled.

Step – 3: Create a comma separated value (.csv) file.

Create a CSV file having two columns FolderPath and TargetGroupMailbox. The FolderPath will include the complete path of the public folder and TargetGroupMailbox will have the Office 365 Group SMTP address. You also should know that you can create only 500 entries in a single CSV file.

Step – 4: Start the Batch Migration.

Before starting the batch migration, you should complete some prerequisites –

  1. Find the MRS Proxy Endpoint for Exchange 2016 and 2019.
  2. Go to Exchange Online (Office 365) Powershell and run following commands –

Provide the administrator credential (of the source Exchange Server) to $Source_Credential variable –

$Source_Credential = Get-Credential

Provide the MRS Proxy Endpoint to the $Source_RemoteServer variable –

$Source_RemoteServer = “MRS Proxy Endpoint”

Create the migration endpoint with the following command –

$PfEndpoint = New-MigrationEndpoint -PublicFolderToUnifiedGroup -Name
PFToGroupEndpoint -RemoteServer $Source_RemoteServer -Credentials $Source_Credential

Create a new migration batch –

New-MigrationBatch -Name PublicFolderToGroupMigration – CSVData (Get-Content <path to .csv file> -Encoding Byte)
-PublicFolderToUnifiedGroup -SourceEndpoint $PfEndpoint.Identity [-NotificationEmails
<email addresses for migration notifications>] [-AutoStart]

As you have added the AutoStart parameter, the migration will instantly start.

Step – 5: After completing the batch migration, you can delete the batch migration request with the following command –

Remove-MigrationBatch “name of migration batch”

So, this is the whole process of migrating public folders from on-premises Exchange to Office 365. But there are lots of patchworks which you need to fix before and after the process. Here are some conditions which the batch migration process should fulfill –

  1. The migration supports only emails and calendar items of the public folder. It does not support the migration of other elements of the public folder.
  2. If the public folders have sub public folder, then they will not be migrated. You need to migrate them in a separate batch manually.
  3. The method is feasible for only Exchange Server CU14 and later versions.
  4. An Office 365 group can contain data up to 50 GB. So, make sure that a batch is not migrating data more than 50 GB.
  5. You can run only one public folder migration batch at a time. If you create another batch and run it, then it will show error and might corrupt the data.
  6. You need to run lock-down scripts to lock the public folder data. This way the users will be prompted to use Office 365 group rather than the public folder.

Final Words

The whole process of migrating public folder data to Office 365 is time-consuming, error-prone, and requires expertise. If you want to reduce all your migration problems, then use Kernel Migrator for Exchange which can access public folders directly from its source and place them in desired Office 365 Groups. It also provides multiple filtering options which help you to select only the required data to migrate. Simply, this is the most desired migration tool for Exchange administrators.

Download Now

Watch Video: To Know About Complete Process of Exchange Migration Software