How to Migrate Public Folders to Office 365 Groups? 3 Effective Methods (2026 Guide)
Office 365 is a cloud-based package of services offered by Microsoft for communication and data management. It has a group platform that lets users collaborate and share resources, a feature related to public folders in Exchange.
If you want to migrate public folders to Office 365, we have a manual process right here for you. However, due to the complexity of the manual process, it requires a lot of planning to avoid any kind of fatal mistakes during implementation.
Therefore, in this article, we are also providing a simple and quick solution to migrate public folders to Office 365 groups. But before that, we need to compare public folders with O365 groups to have a better understanding of why Groups are preferred over Public Folders.Why Move Public Folders to Office 365 Groups?
To put it bluntly, public folders are an old concept, while the O365 group is the latest trend. It can replace the old public folder altogether in almost all cases. Let’s see some of them:
- Email Collaboration: Groups provide a dedicated space for users to communicate and collaborate via email. It can also be set up in such a way that people from outside the organization can also share information. On the other hand, mail-enabled public folders store project-related information to be viewed only by team members.
- Documents Collaboration: Again, groups have a dedicated space that displays all files along with attachments from the SharePoint team site. While in public folders, one must search for the files since they are not available in a single view.
- Shared Calendar: Shared calendars are provided to every group and can be altered and updated by any member of the group. Public folders use a scheduler or timetable for such tasks, but the shared calendar has more features in every aspect.
- Permissions: Users, when assigned to a group, get immediate permissions. While you have to manually do this task for every user in public folders. This might be the reason why you need to migrate public folders to Office 365.
- Accessibility on both mobile & web: Groups provide mobile access via Outlook mobile apps and have a richer set of features on the web. While public folders are not available for mobile and have limited web functionality.
- Other extra advantages: Office 365 Suite is a whole package of applications. When a group is created, various extra services, such as SharePoint, a planner, etc., are also provided to the users. Public folders have no such concept.
People Also Find Helpful: How to Migrate Exchange 2010 to 2019 Step by Step (Directly)
|
Feature |
Public Folders |
Microsoft 365 Groups |
|
Primary Use Case |
|
|
|
Storage Limits |
|
|
|
Accessibility |
|
|
|
Ecosystem Integration |
|
|
|
Permissions |
|
|
Hence, you can say that Office 365 Groups are quite convenient to work with. The feature-rich cloud environment provides a much safer and more flexible platform to operate on.
Now let’s talk about how you can migrate public folders to Microsoft 365 in bulk. Below are the methods that are described in the section below.How to Migrate Public Folders to Microsoft 365 Groups (Step-by-Step)
Microsoft does not provide any application for easy migration of your folders to O365 groups. So, a manual workaround for this task was discovered. You can either go for this long and tedious manual approach or use a simple tool to conveniently import public folder PST to Office 365 migration tool.
Method #1: Native PowerShell Batch Migration
The native PowerShell Batch Migration is the standard method to migrate Exchange Online Public Folders to Microsoft 365 Groups. This migration method uses the Mailbox Replication Service (MRS) to execute a background data sync followed by a cutover phase (requiring locking of the source folders. Key Limitations:- Data Types: Only “Mail” and “Calendar” public folders can be migrated. “Contacts” and “Tasks” are not supported.
- Size Limit: Avoid migrating more than 25 GB of public folder data into a single Group. This will leave room for future growth.
- Batch Limits: Can support a single migration batch (up to 500 mapping entries at a single time.
- Mandatory Permissions: Make certain that your admin account is a Global Administrator or has Exchange Permissions.
- Download Microsoft Scripts: Download the official Public Folder to Microsoft 365 Group migration scripts. Required PowerShell scripts:
- AddMembersToGroups.ps1
- LockAndSavePublicFolderProperties.ps1
- UnlockAndRestorePublicFolderProperties.ps1
- WriteLog.ps1
- RetryScriptBlock.ps1
- Extract the Scripts: Extract the downloaded scripts into a single local directory (such as C:\MigrationScripts\).
- Connect to Exchange Online PowerShell: Run the given command to establish a connection with Exchange Online PowerShell on the local machine:
Install-Module -Name ExchangeOnlineManagement Connect-ExchangeOnline -UserPrincipalName [email protected]
Step #1: Identity Public Folders & Create Mapping CSV
- Determine the public folders to migrate. Run the following command to export a list of all mail-enabled public folders:
Get-PublicFolder -Recurse | Where-Object {$_.MailEnabled -eq $true} | Select-Object Name,FolderPath
- Use the output to create a mapping file named “PFMapping.csv” to map the source public folder to the target Microsoft 360 Group SMTP address.
- Save it in C:\MigrationScripts\ (folder with downloaded scripts). Ensure that the created CSV has the following two headers:
Step #2: Provision the Target Microsoft 365 Groups
The migration batch does not provision or create the Microsoft 365 Groups proactively -It only moves the data. So, create the target groups with the exact SMTP addresses (displayed in the TargetGroupMailbox column).- Apply the given command for each group (or script it via a loop):
New-UnifiedGroup -DisplayName "Marketing Q3" -Alias "marketing-q3" -PrimarySmtpAddress [email protected] -AccessType PublicImportant Note:
- If the original Public Folder had “Author” or higher default permissions, set -AccessType to “Public” to ensure users don’t lose access.
- Set -AccessType to “Private” if the original Public Folder is restricted.
Step #3: Verify the PAW Migration Feature
To run Group migrations, Microsoft requires the PAW (Protocol Agnostic Workflow) migration feature.- Execute the given command to check the migration configuration:
Get-MigrationConfig | Format-List Features
- Look at the “Features” output. If PAW is missing, remove all the existing user or public-folder migration batches (even the completed ones):
Get-MigrationBatch | Remove-MigrationBatch -Confirm:$false
- Wait for 5-10 mins. Once the batch list is empty, PAW will automatically turn itself on.
Step #4: Create and Start the Migration Batch
Use the Mailbox Replication Services (MRS) to submit the migration batch. Executing this will copy the data in the background without affecting user access to the live public folders.- Use the given script:
New-MigrationBatch -Name "PFtoGroupMigration" -CSVData ([System.IO.File]::ReadAllBytes('C:\PFtoGroups\Scripts\PFMapping.csv')) -PublicFolderToUnifiedGroup -AutoStart
- Monitor the batch status until the status says “Synced”. To do so, run the script:
Get-MigrationBatch -Identity "PFtoGroupsMigration" | Select Status, DataConsistencyScore
Step #5: Migrate Permissions to the New Groups
Convert the legacy Public Folder permissions into Microsoft 365 Group Owners and Members after the batch has synced.- Go to the scripts folder > run the Microsoft permission script:
cd C:\MigrationScripts\
.\AddMembersToGroups.ps1 -MappingCsv "C:\MigrationScripts\PFMapping.csv" -ArePublicFoldersOnPremises $false
Step #6: Lock the Source Public Folders
Lock the source public folders to ensure no data is lost during the final cutover. This script converts the public folders to read-only. And automatically configures mail forwarding. Redirecting newly sent emails to the public folder address directly to the new Microsoft 365 group.- Use the following command to lock the source public folder:
.\LockAndSavePublicFolderProperties.ps1 -MappingCsv "C:\MigrationScripts\PFMapping.csv" -ArePublicFoldersOnPremises $false
Step #7: Complete the Migration Batch
Initiate the final delta sync to copy any items that arrived between the initial sync and the lock step.- Run the PowerShell script:
Complete-MigrationBatch -Identity "PFtoGroupsMigration"
- Use the following command to monitor the completion status. It will go from “Completing” to “Completed”:
Get-MigrationBatch -Identity "PFtoGroupsMigration" | Select Status
Method #2: Manual PST Export & Import (Small Scale)
The manual PST export & import is an Ideal solution for small-scale data migrations or to move unsupported folder types (Contacts/Tasks). This method utilizes the classic Outlook desktop client to extract data from legacy Public Folders into a local .pst file. And migrates the data into a modern Microsoft 365 Group. Eliminating the requirement of PowerShell scripts. Key Limitations:- Zero Automation & Time-Taking: Not optimal for large environments or complex folder hierarchies.
- Client-Side Dependency: Uses local machine bandwidth and storage; Outlook needs to be open and connected.
- No Metadata Retention: Moved items will display the date they were copied to the Group. Also, original sender properties can sometimes be removed or modified.
- Mandatory Permissions: The account must be granted “Owner” permissions on the source Exchange Public Folder.
- Open Classic Outlook: Requires Classic Outlook for Windows desktop application. “New Outlook” or Outlook on the Web does not support PST export.
- Switch to “Folder” View: Press Ctrl + 6 in Outlook Classic to switch to the “Folders” view. Expand the “Public Folders” tree to verify whether the target folder and its contents are visible or not.
Step #1: Export Public Folder Data to PST
- Open Outlook >> go to File >> Open & Export >> Import/Export.
- Select “Export to a file” >> click “Next”.
- Right-click “Outlook Data File (.pst)” >> click “Next”.
- Scroll down the folder tree >> select the particular “Public Folder” to migrate.
- To migrate nested data, check “Include subfolders” >> click “Next”.
- Choose a local destination path (such as e.g., C:\Migrations\SalesPF.pst) >> select the “Replace duplicates with items exported” option.
- Lastly, click “Finish”. Leave the optional password prompt blank >> hit “OK”.
Step #2: Prepare the Target Microsoft 365 Group
Establish the destination Group and make sure you have the required rights to add data into it.- Log in to the Exchange Admin Center (EAC). Or use the Microsoft 365 admin center to create a new Microsoft 365 Group.
- Add the user account (executing the migration) as a “Group Owner” and a “Group Member”.
- Go back to the Outlook desktop client >> wait for the new Group to populate (in the left navigation pane under the Groups node). It typically takes up to 30-60 minutes.
Step #3: Mount the PST and Migrate Data via Drag-and-Drop
- In Outlook, move to File >> Open & Export >> Open Outlook Data File.
- Select the created “SalesPF.pst” file. It will display at the bottom of the left navigation pane (as an independent data file).
- To view the exported emails/items, expand the PST file.
- Press Ctrl + A to select all items within the PST folder.
- Finally, drag and drop the selected items straight into the destination Microsoft 365 Group (listed under the “Groups” node).
Step #4: Validate Synchronization and Cleanup
Confirm whether the data has synced flawlessly from the local client to the cloud or not.- Check the bottom right corner of the Outlook client. Make certain that it says “All folders are up to date” and no active sync processes are running.
- Log into Outlook on the Web (OWA) >> go to Microsoft 365 Groups to make sure the data is present in the cloud.
- Click the mounted PST file (in Outlook) >> select Close “Outlook Data File”. You may now permanently delete the local .pst file (from the hard drive).
Method #3: FreeViewer PST to Office 365 Migration Tool
So many shortcomings are associated with the manual approach that it is no longer relevant. With its simplicity and ease of use, the FreeViewer PST to Office 365 Migration Tool is the most relevant in this scenario.
There is no need to perform long, complicated steps anymore. Whether you access O365 with or without impersonation, the tool delivers perfect results in both cases. The two-step process to migrate groups to Office 365 is as follows:
- Step 1- First, download and install the software, and then you will land on this interface. Here, you need to provide the source and destination platforms for the software.

- Step 2- Now select the category from the workload selection bar and apply the date range filter option.

- Step 3- Now provide the PST folder to the software in the import folder path, and then validate.

- Step 4- Allow the necessary permissions to the software, without which the software can’t proceed,

- Step 5- Now, provide the email account & application ID of Microsoft 365 for public folder migration from Exchange to Office 365. After that, validate.

- Step 6- On the user screen, you can fetch, import, and download templates to add users from the source account.

- Step 7- Lastly, tap on Start Import to migrate public folders to Office 365

Post-Migration Checklist
#1: Batch Validation & Data Integrity:
Ensure to validate that the Mailbox Replication Service (MRS) successfully moved all the items without any silent failures prior to announcing the migration.- Confirm Batch Status: Connect to Exchange Online PowerShell. Execute the given command to verify the batch has no failed items or stalled requests:
Get-MigrationBatch -Identity "PublicFolderToGroupMigration" | Select Status, TotalCount, FailedCountIf the output status is not showing “Completed” and the “FailedCount” is greater than zero, inspect using:
Get-MigrationUserStatistics -Identity <GroupSmtpAddress> -IncludeReport
- Review Group Mailbox Capacity: It is critical to know that the migrated data in the new Microsoft 365 Group does not exceed the 50 GB limit. Otherwise, it will cause immediate mail delivery failures.
Get-MailboxStatistics -GroupMailbox [email protected] | Select DisplayName, TotalItemSize, ItemCount
#2: Mail Routing & Permission Finalization
Sending rights and Global Address List (GAL) are required to be manually optimized. This is because the lockdown script only moves mail properties:- Test Inbound SMTP Routing: Try sending a test email from an external domain to the legacy Public Folder’s primary SMTP address. Make sure that email is successfully delivered to the new Microsoft 365 Group workspace.
- Configure “Send As” or “Send on Behalf” Delegation: The standard Owner/Member Group permissions do not allow replying to the folder. So, use the command shared below to manually configure this for the required user via PowerShell:
# To grant Send As permissions:
Add-RecipientPermission -Identity [email protected] -Trustee [email protected] -AccessRights SendAs
# To grant Send on Behalf permissions:
Set-UnifiedGroup -Identity [email protected] -GrantSendOnBehalfTo [email protected]
- Subscribe Members to Group (Optional but Recommended): To deliver emails straight to the users’ personal inbox (similar to the distribution list), enable the “Subscription” flag by using the given command:
Set-UnifiedGroup -Identity [email protected] -AutoSubscribeNewMembers $true
#3: Optimize Outlook:
Cached old data by the classic Outlook client or visible public folders can confuse users.- Hide legacy public folders from the GAL: This prevents users from trying to search for or send internal emails to the old Public Folder object in the address book. Execute the given PowerShell script to hide:
Set-PublicFolder -Identity "\Sales" -HiddenFromAddressListsEnabled $true
- Force Offline Address Book (OAB) Update: The Outlook desktop client downloads the GAL once every 24 hours. So, to speed up the visibility of the new groups and hide the old folders, execute the following script to force an OAB generation:
Update-OfflineAddressBook -Identity "Default Offline Address Book"
#4: Decommission & Cleanup:
Refrain from deleting legacy public folders immediately. This is because a rollback might be required, or missing data is reported. Microsoft even recommends a minimum “30-to-90-day cooling-off period”.- Remove the Migration Batch: Free up the tenant for future migrations by clearing the MRS queue. To do so, remove the batch using the given script once the validation is complete:
Remove-MigrationBatch -Identity "PublicFolderToGroupMigration" -Confirm:$false
- Delete the Legacy Public Folders (After Cooling Period): Only run the following command once you’re absolutely certain that data is secure in the new Groups and old folders are not required. This will permanently delete the source folders to reclaim storage and declutter the hierarchy:
Remove-PublicFolder -Identity "\Sales" -Recurse -Confirm:$false
Final Words
The discussed manual approach is way too complex, error-prone, and time-consuming. But you can easily overcome all these shortcomings by using the O365 Import tool. In addition, the tool can migrate more than just public folders to Office 365 groups. It provides complete PST data migration, including emails, contacts, calendars, and tasks, to O365 online.