Public Folder Migration Guide From On-Premises Exchange 2007+ to Microsoft 365 (Hybrid Mode)


This is the complete onboarding task flow for migrating Public Folders from On-Premises Exchange 2010 SP1 or later, to Public Folders on Microsoft 365, with a hybrid deployment. 

We recommend reading through the complete guide before starting the migration to understand the process, timeline, and prerequisites. There are some notes called out throughout the guide. These are important steps or directions that may break the migration if not followed. Complete each step in the order listed. If additional instructions are required, a link to a corresponding Knowledge Base article is provided.

BitTitan support does not offer post-migration guidance regarding the management and resolution of public folders on the source environment.


Public Folder migrations can take some time to properly configure endpoints. We recommend configuring the project endpoints a week or more before the migration to ensure they are ready for use.

MigrationWiz does not migrate SMTP addresses for mail-enabled Public Folders. They can be exported and imported using the scripts supplied here: Migrating mail-enabled Public Folder email addresses. It is highly recommended to run the export script prior to migrating so you can ensure the csv file created contains the proper information. Do not run the import script until the pre-synced mail-enabled Public Folder contacts have been removed from Microsoft 365 (this is covered in the steps for mail-enabling the public folders near the end of this guide).


It is highly recommended that you review the path mail flow takes for entering your environment when mail is sent to mail-enabled public folders and to ensure the items will be delivered to the mail-enabled folders in Microsoft 365 once the migration is complete. MigrationWiz does not configure anything regarding mail flow, and assisting with mail flow issues is beyond the scope BitTitan support can assist with.

To see what items are included in the migration, see Migrated & Not Migrated Items.


MigrationWiz is not a sync tool. Items updated at the source mid-migration will not be updated at the destination.

MigrationWiz supports the capability to share migration projects across a Workgroup. When the Project Sharing feature is turned on, all Agents besides those who are Inactive can view all migration projects. For more information, visit Project Sharing in MigrationWiz.

We are not able to support migrations with two-factor or multifactor authentication. 

Special Considerations For This Migration

Only perform the steps in the dropdown lists below if your project corresponds with the conditions described. If either of the below conditions apply, you will need assistance from BitTitan support to complete the steps. The steps listed below are two separate things that do not necessarily rely on each other; however, both may be required to be performed before starting your migration.


You must first successfully complete a Verify Credentials in your project before BitTitan Support can assist with these steps. This can be accomplished by following the steps starting at Prepare Destination Environment through Run Verify Credentials below.

If migrating more than 1,000 folders (including sub-folders) in the project
  1. If migrating more than 1,000 folders in total (including sub-folders), the folders will need to be SPLIT into multiple line items in your MigrationWiz project. This process increases the efficiency of the migration in case there are specific folders that may cause issues during the migration, and to allow folders to be migrated in parallel line items instead of a single one. If you are migrating less than 1,000 folders for the project, this steps is not required.
    • First, run the following Powershell command against your source Exchange server. This will generate a file called folders.csv that will be used to create the SPLIT project.
      Get-PublicFolder -Recurse -Resultsize Unlimited | select Identity | Export-Csv -Encoding Unicode C:\folders.csv
    • Once you have that CSV, follow these steps:
      • Open the folders.csv file and remove the folder paths for any folders that should not be included in the migration. After you have confirmed the folder paths listed in the folders.csv file are the ones to be migrated, save the file (do not change the encoding) and attach the file to the ticket and indicate this step has been completed. 
      • Once the folders.csv file has been used to create a secondary SPLIT project (it will have _SPLIT included in the name), this will be the project used to migrate your public folders moving forward.

SPLIT Folder Paths

Only folder paths present in the folders.csv file used to create the SPLIT project will be migrated. Any new folders added at the source after the creation of the SPLIT project will need to be manually added after. For suggestions on working within this restriction, see Best Practices for migrating Public Folders.
If migrating more than 20GB of data for the project


When migrating more than 20GB of data, public folder mapping scripts will need to be created for the project by BitTitan Support. These scripts are to be run against the Microsoft 365 destination tenant before migrating any data. This is to avoid the automatic Microsoft 365 auto-split process for Public Folder Mailboxes when they have reached their max allowed storage quota. For more information, see How do I migrate more than 20GB of Public folder data to Microsoft 365? If the total size of the migration is less than 20GB for the project, this step is not required.

Running public folder mapping scripts

  • Once you have received the public folder mapping scripts from BitTitan Support due to migrating more than 20 GB in your project, it is recommended that you review the scripts for accuracy of the folder hierarchy being created with the scripts. Should you have any questions, please do not hesitate to reach out for assistance.
  • If you have manually created or migrated any of the public folders in the destination before receiving the scripts from BitTitan Support, they will first need to be removed BEFORE running the mapping scripts. This does not include removing the public folder Primary Hierarchy mailbox by default, only the public folders.
  • The scripts will need to be ran against the destination tenant in the following order BEFORE migrating any data. Note: If the “Owner” permission has not been granted at the root of the public folder tree for the destination administrator account, then it will need to be added BEFORE running the Provision-PublicFoldersToMailboxes script.

1. Create-PublicFolderMailboxes
2. Provision-PublicFoldersToMailboxes

  • When running the mapping scripts, open the powershell session as administrator. You will be prompted for credentials to connect to Exchange Online, where you must use the same administrator credentials that you are using for the destination endpoint in your public folder migration project. The scripts will only create the mail type public folders (IPF.Note). The other folder types will be created by MigrationWiz. 
  • For folders with / in their names, each will be replaced with _ in the script, as well as any public folders created by MigrationWiz. This is unavoidable and is required by EWS.
  • Important Note: There are times the size of the script named Provision-PublicFoldersToMailboxes may be too large to run in a single session due to powershell timeouts. If you breakup this script into smaller scripts to run separately, save the copies of the scripts with encoding of UTF-8 with BOM only. If you do not save with this encoding, umlauts or other accent characters will not be created correctly when the public folders are created using the mapping scripts.

After you have successfully ran the public folder mapping scripts against the destination tenant

  • Create a powershell session to your destination tenant for Exchange Online and run the following commands. Without doing so may cause quota exceeded or size exceeded errors in your project during the migration. The settings can be put back to where you want after the migration is complete.

          Increase Public Folder Size Quotas

    1. Enter the following command and press Enter. This will show you the current public folder limits:
      Get-OrganizationConfig | fl *DefaultPublicFolder*
    2. Enter the following command and press Enter. This will set the new quota and issue warning quota to Unlimited:
      Set-OrganizationConfig -DefaultPublicFolderProhibitPostQuota Unlimited -DefaultPublicFolderIssueWarningQuota Unlimited
  2. Increase the Max Send and Max Receive Quotas for Public Folder Mailboxes 

    1. Enter the following command and press Enter. This will show you the current limits set on the public folder mailboxes:
      Get-Mailbox -PublicFolder | fl Name,MaxSendSize,MaxReceiveSize
    2. Enter the following command and press Enter. This will increase the MaxSendSize and MaxReceiveSize to the maximum allowed limits. (If there are items at the source that are larger than 150 MB, they will not migrate.)
      Get-Mailbox -PublicFolder | Set-Mailbox -PublicFolder -MaxReceiveSize 150MB -MaxSendSize 150MB

Open a ticket with BitTitan Support by following the instructions

Steps to submit ticket

If you meet any of the considerations above, you will submit a ticket to support for assistance. If you have already submitted a ticket for another issue above, simply add the new information to that existing ticket.

If you have not previously opened a ticket, include the following in a new ticket:

  • The subject of the ticket should be “Public Folder SPLIT or Mapping Scripts Needed”
  • Make sure to attach the folders.csv file to the ticket from the step above for migrating more than 1,000 folders if one is required.

Prepare Destination Environment

This guide presumes that your Microsoft 365 tenant and users have already been created, and licenses have been assigned to enable the user mailboxes in Microsoft 365. It also presumes that the hybrid environment has already been set up between the On-Premise Exchange and Microsoft 365 tenants to work with public folders.

If these prerequisites have not been met, stop here and perform the Microsoft 365 set up necessary to continue. 

  1. The destination administrator account being used for the project must have a valid Microsoft 365 license assigned and an active mailbox in the Microsoft 365 environment.
  2. Before giving Microsoft 365 users access to the On-Premise Public Folders, the first Public Folder mailbox in the Microsoft 365 tenant will need to be created. This will be the Primary Hierarchy Public Folder mailbox. Do not name the primary mailbox the same as any public folder mailbox or database on the source On-Premise Exchange server. You will also need to apply the Owner permission at the Root of the public folder hierarchy for the destination administrator account being used for the project.
  3. After all public folder mailboxes that are required for this migration have been created (You will need more than one if migrating over 20 GB of data, see If migrating more than 20GB of data for the project above. Run the following PowerShell commands in the destination tenant for increasing the max send and max receive size limits for the public folder mailboxes and to increase the individual public folder size quotas for the migration:

Set-OrganizationConfig -DefaultPublicFolderProhibitPostQuota Unlimited -DefaultPublicFolderIssueWarningQuota Unlimited

Get-Mailbox -PublicFolder | Set-Mailbox -PublicFolder -MaxReceiveSize 150MB -MaxSendSize 150MB

If you have not created the first Public Folder mailbox in the tenant, perform the steps in the following dropdown list before continuing. This step is required regardless of needing public folder mapping scripts for migrating more than 20 GB for the project or not.

Creating a Public Folder Mailbox on Microsoft 365 while in Hybrid Mode

If you try to create any Public Folder mailboxes on Microsoft 365 while your OrganizationConfig is set to Remote when hybrid mode has been set up, then the project will fail. This is because the Microsoft 365 Organization has the Public Folders configured as "Remote" so that users can access the On-Premises Public Folders. The failure occurs because hybrid mode is expecting Microsoft tools to complete the migration and not MigrationWiz. The most common error in MigrationWiz to indicate this is the following for the Destination endpoint:

Your migration failed while checking destination credentials. No public folder mailbox found. A public folder mailbox is required to create public folders. Cause: There are no public folder servers available. Error: ErrorNoPublicFolderReplicaAvailable - Destination Server 

The following steps need to be used to create the first public folder mailbox correctly (this will be the Primary Hierarchy mailbox) in order to use MigrationWiz for this project type. It would be best to have your MigrationWiz project already created for testing.


If your tenant is currently set to remote for your public folders, these steps will break connectivity until the primary public folder mailbox has been created and confirmed as working correctly with MigrationWiz so you will want to plan a window to perform these steps. Expect a minimum of 1-6 hours. All PowerShell commands listed are to be run against the destination tenant.

1) Ensure current remote settings are recorded by running the following Powershell command:

Get-OrganizationConfig |fl *public*

2) Run Set-OrganizationConfig -PublicFoldersEnabled Local -RemotePublicFolderMailboxes $Null (This will break connectivity to the remote public folders for your users You may wish to communicate this to them before running the command above.). 
3) Create the first public folder mailbox (this will become the primary). Don't name it the same as the remote mailbox on-premise.
4) Once the first public folder mailbox is created, click on Public Folders and then ... . Add the destination administrator account being used in the project as Owner.
5) Create a test public folder in the administrator UI where you just added the permissions.
6) Set DefaultPublicFolderMailbox so that the destination administrator account mailbox being used is pointing at the newly created public folder mailbox in the destination tenant using the following PowerShell command: 
Set-Mailbox –Identity –DefaultPublicFolderMailbox 365PFMBX (Replace with the destination admin account being used and 365PFMBX with the name of the public folder mailbox you just created.)
7) If logged into Microsoft 365 with destination administrator account being used in project, then log out.
8) After 15-30 mins, log back into Microsoft 365 with the destination admin account and open its OWA mailbox.
9) Attempt to add the test folder created in step 5 as a favorite in OWA.This is done by right clicking on Favorites or Folders.
10) If step 9 is successful, attempt to Verify Credentials in the public folder MigrationWiz project by selecting your line item and then select Verify Credentials from the Start Menu.
11) If Verify Credentials is successful in project, then set the Get-OrganizationConfig back to the remote settings with the following commands and replace <YourOnPremisesPFMailbox> with the name you recorded from step 1) . This will return connectivity for the remote public folders on-premise for your users in Microsoft 365. There have been observed times as long as an hour before the setting takes full effect.
Set-OrganizationConfig -PublicFoldersEnabled Remote -RemotePublicFolderMailboxes <YourOnPremisesPFMailbox>
12) Set DefaultPublicFolderMailbox for the destination administrator account mailbox back to the new primary public folder mailbox in Microsoft 365 using the same PowerShell commands used in step 7).


For step 3 above, a maintenance window may be needed to reduce any downtime as access to the source On-Premise folders will be interrupted in order to create the Primary Hierarchy Public Folder.


This guide presumes that mail-enabled Public Folder email addresses have been synced between the source On-Premise Exchange server and Microsoft 365 with a script provided by Microsoft when setting up the Public Folder hybrid environment. These pre-synced, mail-enabled Public Folders will need to be removed from Microsoft 365 before MigrationWiz can be used to mail-enable the physically migrated Public Folders in Microsoft 365. The steps required for this are included in the MigrationWiz steps below. For more information, see How do I migrate mail-enabled Public Folders in hybrid mode?

Prepare Source Environment

Admin setup

Grant admin permissions

  1. Grant elevated 'Organization Management' administrator role to the migrating administrator account. Refer to How do I assign the elevated admin role 'Organization Management' to the account that is performing a Public Folder migration?
  2. Ensure that the source administrator account has a mailbox enabled and is located on the same Exchange server as the source Public Folder database or mailbox.
  3. Ensure that the migrating administrator account has permission in all Public Folders (Read only or "Reviewer" access rights should be enough). For more information, see How do I ensure the admin account being used for Public Folder migration has permissions on all Public Folders?

Break up large folders

  1. Split up large Public Folders: if any Public Folders contain more than 20,000 items (if Source = Exchange 2007), or 100,000 items (if Source = Exchange 2010 or later), these should be split into multiple Public Folders. This will speed up your migration. For more information, see How do I find the size of Source Public Folders? 
  2. Any individual Public Folders that are over 20GB in size should be split up into smaller folders of 20GB or less. Failure to complete this step can negatively impact migration performance and speed.

MigrationWiz Steps

The following steps will be performed in MigrationWiz.

Create project

Create a Public Folder migration project. Read the MigrationWiz Projects article for more information on project types and troubleshooting.

  1. Click the Go to My Projects button.
  2. Click the Create Project button.
  3. Select Public Folder as the migration type.
  4. Click Next Step.
  5. Enter a Project name and select a Customer.
  6. Click Next Step.

Create endpoints

Create the source and destination Endpoints (select Exchange Server Public Folder for the source Endpoint, and Office 365 Public Folder for the destination Endpoint). If your Destination endpoint is GCC High, select Office 365 Public Folders (US Government) for that endpoint. 

Add items

Add Public Folders (select Add > Quick Add and enter a forward slash ( / ) in the Root Folder Path field.) We recommend this because it will migrate all Public Folders, and you will only need one Public Folder license per 10GB of data, regardless of the number of top-level Public Folders. Refer to How do I select to migrate all my Public Folders from the root level down?

If targeting specific source folders for the migration, contact BitTitan Support for assistance with adding those specific folders to the project instead of the top-level Root folder

Run Verify Credentials

Now that your project has been created and / added for the Root Path, or the specific folders to be migrated have been added, run Verify Credentials from the Start menu in the MigrationWiz project.  

Purchase Public Folder licenses

Purchase Public Folder licensesTo obtain an estimate of the number of Public Folder migration licenses required for your migration project, follow the directions in How do I estimate the number of Public Folder migration licenses required?

Set Initial Project Advanced Options


The advanced option steps listed below should be followed in the order that they are entered as they are required for this migration scenario.

  • Under Source/Destination, set the value for Migrate Permissions For from New Folders Only to New folders and existing folders. This is required because Public Folder mapping scripts have been created. See How do I migrate Public Folder permissions?
  • Set value for Licensing/Maximum licenses to consume per item per pass licensing count. Default = 1. This allows up to 10GB to be migrated. Example: If migrating all Public Folders, using the forward slash ( / ), and the total data size = 78GB, then increase this value to 8 (otherwise the migration will pause at 10GB). See MigrationWiz Licenses.
  • Set your Preferred BitTitan Data Center. For the most optimum migration speeds, select the Data Center that is closest to your Microsoft 365 destination tenant. Refer to MigrationWiz - General - FAQ.

Under Support Options add:

  • RemoveFilterBasedOnFolderType=1 This support option is required if Public Folders contain items other than mail, such as calendar and contact items. See How do I migrate a Public Folder with multiple item types?
    This option stays in place for the entire migration process.
  • DoNotMailEnablePublicFolders=1 This support option is required and must remain until you are ready to mail-enable the migrated Public Folders after all folders, files and permissions have been migrated. This option must stay in place until you run the pass to mail-enable the migrated folders with step 3 under Mail Enabling Your Migrated Public Folders later in this guide.

Perform Migration

You will now begin your migration. This will occur in multiple phases. Each migration pass has additional required advanced options and will be submitted as a Full Migration. Each pass should be completed successfully before moving on to the next migration pass.

First Migration Pass Steps

The first migration for this scenario will perform the following and usually takes more time to complete than the additional passes that will be performed.

  • Folder and file/item discovery
  • Migrate user folder permissions if a match can be found. Migration of user or security group permissions is only supported for Exchange 2010+. For more information on the requirements for migrating user permissions, see Migrating Public Folder Permissions

Additional advanced options

Set first pass Project Advanced Options (this is considered your pre-stage pass as the older items will be migrated first).

Under Support Options add:

  • MaintainWatermarkCompletionState=1

Under Filtering:

  1. Select By Date
  2. Check box Only migrate items older than the specified date
  3. Set date range (month, day, hour, minute) for items to migrate. We suggest migrating items older than six months. Dates will be calculated by the most recent modification date.

Perform the first migration pass

  1. Perform first pass for items older than 6 months by running a Full Migration from the Start menu. 

Second Migration Pass Steps

The second migration pass will migrate data only. No permissions will be migrated.

Additional advanced options

Under Support Options:

  • Remove MaintainWatermarkCompletionState=1
  • Add SkipImportFolderWhenPublicFolderExists=1
  1. Select By Date
  2. Check box Only migrate items newer than the specified date
  3. Set date range (month, day, hour, minute) for items to migrate. This date should be the same date and time used for the first migration pass

Perform the second migration pass

  1. Perform second pass for items newer than 6 months by running a Full Migration from the Start menu.

Security group permissions migration pass

This pass will migrate mail-enabled security group permissions if an existing match can be found in the destination. Matches are searched for by the Primary SMTP address of the security group. If you do not run this pass, none of the security group Permissions will migrate. If you do not have any security group permissions, this migration pass can be skipped. For more information on Security Group permissions, see How do I allow Security Group permissions to be migrated during a Public Folder migration project?

Additional advanced options

Under Support Options:

  • Remove SkipImportFolderWhenPublicFolderExists=1


Remove the above support option regardless of if you are migrating security group permissions or not. Mail-enabling of public folders cannot occur if it is present for the mail-enabling phase of the migration outlined below.

  • Add AllowAllMailboxTypesForPFPermissions=1

Perform migration pass for Security Group Permissions

  1. Perform pass for migrating security group permissions by running a Full Migration from the Start menu. 

Mail-Enabling Your Migrated Public Folders

Disable the mail-enabled public folder contacts in the destination tenant


Before this point, mail flow in your environment should have been scoped and/or tested so that mail can be successfully delivered to your mail-enabled public folders in the destination tenant after the steps for mail-enabling have been completed below. 

  1. Disable the mail-enabled Public Folder contacts in the destination tenant using the powershell commands outlined under Removing the synced mail-enabled public folder contacts in the following KB: Exchange Public Folder Migration FAQs

Set advanced options for mail-enabling migration pass

  1. Remove the advanced support option DoNotMailEnablePublicFolders=1 from the project.
  2. Reset the item statistics for the project using the steps outlined under Reset item statistics in the following KB: MigrationWiz Statistics & Statistics Lookup

Perform migration pass for mail-enabling the public folders in the destination tenant

This pass will mail-enable the migrated Public Folders in the destination tenant. When ALL line items show more than 0 bytes migrated in the project for this pass, that indicates the destination folders have completed being mail-enabled. (To make sure, compare the number of mail-enabled folders between the source and destination.)

  1. Submit a Full Migration pass
  2. After the migrated Public Folders have been mail-enabled in Microsoft 365, you can use the scripts supplied here to export and import the SMTP addresses for them: Migrating mail-enabled Public Folder email addresses.
  3. If the mail-enabled Public Folders need to accept mail from external domains, you will need to run the following PowerShell command against the destination tenant. 
    Get-PublicFolder -Recurse -ResultSize Unlimited | ? {$_.MailEnabled -eq $True} | Add-PublicFolderClientPermission -User Anonymous -AccessRights CreateItems
  4. Change your primary domain type in Microsoft 365 from Authoritative to Internal Relay for the domains being used in mail-enabled Public Folder email addresses. 
    Note: Without setting this, Microsoft 365 bounces the message before it even checks whether a valid Public Folder email address exists.

Mail flow

Mail flow changes can take time to propagate through the new tenant. If mail flow to the mail-enabled Public Folders in the destination tenant is not working after an hour or two, you will need to contact Microsoft to assist you with resolving the mail flow issues. If mail is still being received by the mail-enabled Public Folders at the source and not forwarded to the destination, you can run another full migration pass to migrate those items over to the destination after mail flow issues have been resolved for the destination tenant.

Cutover the tenant so that users in Microsoft 365 can now use the migrated public folders in the destination

  1. Cut over your users to point at the migrated Public Folders in Microsoft 365 by running the following PowerShell command against the destination tenant.
    Set-OrganizationConfig -PublicFoldersEnabled Local -RemotePublicFolderMailboxes $null


Request the migration statistics. Click the bar chart icon on the MigrationWiz dashboard to receive an email containing all the project migration statistics. 

Was this article helpful?
1 out of 1 found this helpful