Microsoft 365 Public Folder Migration FAQ

The following processes do not apply to every Microsoft 365 public folder migration, but are frequently useful. For specific migration steps, follow the migration guide. To navigate to a specific section, use the table of contents to the left. 

Create a Public Folder Mailbox

Non-Hybrid migration

To create a public folder mailbox in Microsoft 365, follow these steps. Note: If your environment is set up for hybrid public folders as outlined in migration guide Public Folder Migration Guide From On-Premises Exchange 2007+ to Microsoft 365 (Hybrid Mode), then you will need to use the steps outlined below in Creating a Public Folder Mailbox on Microsoft 365 while in Hybrid Mode instead.

  1. Log in to the Microsoft 365 portal as the user in the migration project. Make sure the user is an administrator. (You can easily tell, as there will be an Admin tab present in the upper right menu). If the user is not an admin, then assign the user the global admin role.
  2. From the Admin tab, select Exchange. Click on the Public Folder option in the left panel. Click on the Public Folder Mailboxes topic in the top menu.
  3. Create the first public folder mailbox (this will become the primary hierarchy public folder mailbox )

  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. If there is a box for applying the permissions to sub-folders, make sure it is checked before saving.

  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 destination tenant using the following powershell command: (Replace migrationwiz@domain.onmicrosoft.com with the destination admin account being used and 365PFMBX with the name of the public folder mailbox you just created)
    Set-Mailbox –Identity migrationwiz@domain.onmicrosoft.com –DefaultPublicFolderMailbox 365PFMBX

  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 Outlook web access (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.

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 (this will be the primary hierarchy mailbox) correctly in order to use MigrationWiz for this project type. It would be best that you have your MigrationWiz project already created for testing.

Important

If your tenant is currently set to remote for your public folders, these steps will break connectivity for a time, 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 (NOTE: This will break connectivity to the remote public folders for your users)
3) Create the first public folder mailbox (this will become the primary) Dont 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 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 destination tenant using the following powershell command: (Replace migrationwiz@domain.onmicrosoft.com with the destination admin account being used and 365PFMBX with the name of the public folder mailbox you just created)
Set-Mailbox –Identity migrationwiz@domain.onmicrosoft.com –DefaultPublicFolderMailbox 365PFMBX
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) . (NOTE: This will return connectivity for the remote public folders on-premise for your users in O365. 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 destination administrator account mailbox back to the new primary public folder mailbox in O365 using the same PowerShell commands used in step 7).

Increasing the Send/Receive Size Limits For Public Folder Mailboxes

  1. Open a PowerShell session and enter the following. Then press Enter:
    $LiveCred = Get-Credential
    Install-Module -Name ExchangeOnlineManagement
    Import-Module -Name ExchangeOnlineManagement
    Connect-ExchangeOnline -ConnectionUri https://ps.outlook.com/powershell/ -Credential $LiveCred
  2. 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
  3. 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

Checking and Increasing Public Folder Quotas

Often Public Folder quotas have been set to a value that is too low or are still set to their defaults. To ensure a smooth migration of your Public Folders, it is necessary to set the quota size to be a higher value. This should be set on both the Source and Destination platforms. The migration will fail unless this is set prior to the actual migration.

These can be set via PowerShell scripts, or through the Exchange Management Console (or Microsoft 365 Admin Portal).

Here is an example PowerShell script that was run against Microsoft 365. The default Microsoft 365 Public Folder quota setting is 2GB, with the issue warning set to 1.7GB. Therefore, this needs to be increased. In this example, we retrieved all the Public Folder settings by using the Get-OrganizationConfig command, and then set the new quota to be Unlimited, and set the issue warning to be set at Unlimited. These can be returned to the values of your choice post migration.

Note: After you apply these settings, wait at least 30 minutes before you start the migration. 

$LiveCred = Get-Credential
Install-Module -Name ExchangeOnlineManagement
Import-Module -Name ExchangeOnlineManagement
Connect-ExchangeOnline -ConnectionUri https://ps.outlook.com/powershell/ -Credential $LiveCred

Get-OrganizationConfig | fl *DefaultPublicFolder*

Use the PowerShell script below to set the new quota to Unlimited:

Set-OrganizationConfig -DefaultPublicFolderProhibitPostQuota Unlimited

Use the PowerShell script below to set the issue warning to Unlimited:

Set-OrganizationConfig -DefaultPublicFolderIssueWarningQuota Unlimited

This PowerShell script will need to be run against Microsoft 365, if migrating your Public Folders to Microsoft 365.

Also run a similar PowerShell script against your Source environment in order to set higher quota levels at the Source, prior to the Public Folder migration, or set these via the Exchange Management console.

Follow these instructions to set these via the Exchange Management console:

Use the Limits tab to view or configure storage quotas, deleted item retention, and age limits for the Public Folder.

Storage quotas

  • Use database quota defaults. Select this checkbox to use the Public Folder database quota limits on which the Public Folder resides. If you clear this checkbox, the Issue warning at (KB), Prohibit post at (KB), and Maximum item size (KB) checkboxes are made available.
  • Issue warning at (KB). Select this checkbox to automatically warn Public Folder owners that the Public Folder is approaching its storage limit. To specify this limit, select the checkbox, and then specify the size of the Public Folder in kilobytes (KB) at which you want to prohibit posting.  Set the limit to your desired storage maximum, which must be greater than the amount of data to be migrated.
  • Prohibit post at (KB). Select this checkbox to prevent posting to the Public Folder after the size of the folder reaches the specified limit. To specify this limit, select the checkbox, and then specify the size of the Public Folder in KB at which you want to prohibit posting.  Set the limit to your desired storage maximum, which must be greater than the amount of data to be migrated.
  • Maximum item size (KB). Select this checkbox to limit the maximum size of items that users can post to the Public Folder. To specify the size, select the checkbox, and then specify the maximum size of items in KB that users can post to the Public Folders. Enter a value between 0 and 2,097,151KB.

If there are Public Folders that are larger than 10GB, set the number of licenses to be consumed to a higher value under Advanced Options. Each Public Folder license allows up to 10GB of data to be migrated, so the parameters will be set in increments of 10GB. For example, if the largest Public Folder is 33GB in size, then set this parameter to 4. This will allow up to 40GB of data to be migrated per Public Folder.

When setting the Advanced Option to a higher value, it will not mean that smaller Public Folder will consume any additional licenses when they migrate. For example, a Public Folder that is 7GB in size will still only consume one license.

It is highly recommended that any single public folders at the source be broken down into folders less then 20 GB in size before migrating. Folders larger then that can poorly impact migration speeds and bottleneck a migration from finishing.

Grant Root Level Permissions to Public Folders

In order to migrate public folders to or from Microsoft 365, it is necessary to grant administrator account root-level permissions to public folders. This works best for migrations of under a thousand folders, otherwise this process should be done with PowerShell. To do this, perform the steps below: 

  1. Log into the Microsoft 365 admin account.
  2. In the top-left corner, click on the grid icon.
  3. Click on the gray Admin button to go to the admin center.
  4. On the side bar, on the left-hand side, near the bottom, is the ADMIN button. Click on the arrow next to this button to expand the options.
  5. Select the Exchange option.
  6. Click on the Public Folders link in the lower-center of the resulting page.
  7. Now there is a list of your public folders. Above the list, there is a row of icons. One of these icons consists of three dots. Click on the three dots, then select Root permissions from the resulting drop-down menu.
  8. In the resulting window, click on the plus sign (+), click Browse, and then select the admin user that will be granted root-level permissions.
  9. Select Owner from the drop-down.
  10. Make sure all the boxes are checked.
  11. Click Save to confirm the changes.

Configuring Users to Allow Access to Public Folders

Once you have migrated both your Public Folders and mailboxes to Microsoft 365, you need to complete this step, to ensure that your Microsoft 365 users can access the migrated Public Folders.

Enable the Exchange Online organization to access the Microsoft 365 Public Folders. The following PowerShell script needs to be run against your Microsoft 365 environment:

Set-OrganizationConfig -PublicFoldersEnabled Local -RemotePublicFolderMailboxes $null

Intra-Organization Public Folder Migrations

There can only be one instance of a Public Folder in the same environment. Therefore, to migrate a public folder from one location to another within the same environment, the migration must take two steps, as outlined below.

  1. Set up the staging environment. This requires creating a new forest. Since this is only a temporary staging environment, only one server is required, which can hold the Global Catalog, act as the domain controller, and also have Exchange installed.
  2. Create the same users in the staging environment as in the production environment. ADMT is the recommended tool for this.
  3. Migrate Public Folders to the staging environment, by following the Public Folder Migration Guide.
  4. Configure Outlook to show Public Folders from more than one Exchange account.
  5. Decommission the original Source Exchange Public Folders.
  6. Migrate from the staging environment to the new Exchange server, by following the instructions in the Public Folder Migration Guide.
  7. Reconfigure Outlook so that it no longer shows Public Folders from the staging environment.
  8. Decommission the staging environment.

Mapping permissions properly would require creating the same user accounts in the staging environment as in the production environment.

You should contact your Sales Account Executive when performing this migration. Since this is a double-hop migration, it will require twice the number of Public Folder migration licenses. Your Sales Account Executive will transfer the 'second' licenses into your MigrationWiz account to ensure that you are not charged twice for your migration. You only need to purchase licenses to cover the first hop.

Changing Primary Domain Type

Here are the steps to change the primary domain type in Office 365 from Authoritative to Internal Relay. These steps are important to follow when migrating Public Folders in hybrid mode.

  1. Log in to the Microsoft 365 admin portal as a Global Admin.
  2. Launch Exchange Admin Center.
  3. Under Mail Flow, select Accepted Domains.
  4. Use the radio buttons to change the domain type. Choose Internal Relay: Email is delivered to recipients in this Exchange organization or relayed to an email server at another physical or logical location.

Here is a screenshot from the admin portal:365_Blog_Picture.png

 

There will be a warning about connectors. It is safe to dismiss this if you're only making this change to mail-enable your Public Folders.

Mail will now be successfully delivered.

Configuring Mail-Enabled Microsoft 365 Public Folders from External Domains

 The following remote PowerShell commands can be run to configure some or all mail-enabled Microsoft 365 Public Folders to accept mail from external domains. This step is important during a Public Folder migration when running in hybrid mode after public folders have been mail enabled in the destination.

Get-PublicFolder -Identity "\PFAlias" | Add-PublicFolderClientPermission -User Anonymous -AccessRights CreateItems

or

Get-PublicFolder -Recurse -ResultSize Unlimited | ? {$_.MailEnabled -eq $True} | Add-PublicFolderClientPermission -User Anonymous -AccessRights CreateItems

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