
Exchange Public Folder migration to EXO (Contacts)

Drago Petrovic
Microsoft MVP
Exchange Public Folder to Shared Mailbox (Contacts):
The End-to-End Migration Guide
A step-by-step, beginner-friendly guide to export a single on-premises Exchange Public Folder to a PST file, create a Shared Mailbox in Exchange Online, import the PST, and help users access the migrated Contacts.
Prerequisites & what you’ll need
- On-premises Exchange Access: Public Folder visible in Outlook with permissions (Owner/Publishing Editor) to read/export it.
- Classic Outlook: Installed on an admin PC (needed for exporting PST and import/export tasks).
- Microsoft 365 Admin: Exchange Online admin rights to create a Shared Mailbox.
- Import Roles: If using the Import service, you need the "Mailbox Import Export" role in Exchange Online.
Part 1 — Export the on-prem Public Folder to PST
Method A: Outlook Import/Export (Simplest)
This method is ideal for a single Public Folder (Contacts, Mail, Calendar) that is visible in your Outlook.
- Sign in to a Windows PC with Classic Outlook configured for the on-prem Exchange account.
- Go to File > Open & Export > Import/Export ? Export to a file ? Outlook Data File (.pst).
- Select the specific Public Folder (e.g., Public Folders > All Public Folders > Contacts). Tick Include subfolders if needed.
- Choose a destination path (e.g.,
C:\Temp\Export.pst) and click Finish.
Tip: If you are using the "New Outlook" for Windows, you must switch back to "Classic Outlook" to access these export features.
Method B: Exchange (on-prem) eDiscovery
For larger folders or server-side export, use the Exchange Admin Center (EAC) on your local server.
- In the on-premises EAC, go to Compliance management > In-Place eDiscovery & Hold.
- Create a search that targets your Public Folders.
- Once the search is complete, click the Export to a PST file icon (downward arrow).
Part 2 — Create a Shared Mailbox in Exchange Online
Option A: Microsoft 365 Admin Center (GUI)
- Go to Microsoft 365 admin center ? Teams & groups > Shared mailboxes.
- Click Add a shared mailbox.
- Enter the display name (e.g., "Company Contacts") and email address.
- Note on Licensing: Shared mailboxes are free up to 50 GB. If you need more storage, you must assign an Exchange Online Plan 2 license.
Option B: PowerShell (Fast & Scriptable)
# Connect to Exchange Online
Connect-ExchangeOnline
# Create the shared mailbox
New-Mailbox -Shared -Name "PF-Contacts" -DisplayName "Public Folder Contacts" -Alias PFContacts
# Grant FullAccess to a security group (Recommended) or user
Add-MailboxPermission -Identity PF-Contacts -User "Marketing SG" -AccessRights FullAccess -InheritanceType All
# (Optional) Grant Send As rights
Add-RecipientPermission -Identity PF-Contacts -Trustee "Marketing SG" -AccessRights SendAs
Part 3 — Import the PST into the Shared Mailbox
Option 1: Microsoft 365 Import Service (Recommended)
This is the most reliable method (Network Upload) via the Microsoft Purview portal.
- Upload: Create a new import job in Purview, copy the SAS URL, and use AzCopy to upload your PST to the cloud.
- Map: Create a CSV mapping file pointing the PST to your new shared mailbox.
Workload,FilePath,Name,Mailbox,IsArchive,TargetRootFolder
Exchange,,PF-Contacts.pst,pf-contacts@contoso.com,FALSE,Contacts
Option 2: Import via Outlook Desktop (Small Data)
If the PST is small (e.g., < 2GB) and you only have one file, you can do this manually.
- Grant yourself FullAccess to the shared mailbox. Wait for it to appear in your Outlook.
- Go to File > Open & Export > Import/Export.
- Select Import from another program or file ? Outlook Data File (.pst).
- Crucial Step: In the destination screen, select "Import items into the same folder in:" and choose your Shared Mailbox from the dropdown list.
Part 4 — How users access the migrated Contacts
1. Permissions
Assign your users (or a Security Group) FullAccess rights. Automapping is enabled by default, so the mailbox will appear in their Outlook automatically after restart.
Add-MailboxPermission -Identity PF-Contacts -User alice@contoso.com -AccessRights FullAccess
2. Access in Outlook
- Classic Outlook: The mailbox appears in the left pane. Click the "People" (Contacts) icon at the bottom left to view the contact lists.
- New Outlook / Web: Right-click "Folders" ? Add shared folder or mailbox ? Search for the mailbox name.
3. Showing in the Address Book (The "To" button)
By default, shared contact folders might not show up when users click "To..." to compose an email. To fix this:
- The user must add the Shared Mailbox as an Additional Account (File > Add Account) rather than just relying on automapping.
- Right-click the Contacts folder inside the shared mailbox ? Properties.
- Go to the Outlook Address Book tab and check Show this folder as an e-mail Address Book.
Troubleshooting & Tips
- Import Fails? Ensure you have the "Mailbox Import Export" role assigned in Exchange Online. It is not assigned to Global Admins by default.
- New Outlook Issues: The New Outlook for Windows does not yet strictly support local PST imports. Always keep a copy of Classic Outlook handy for admin tasks.
- Permissions Lag: After granting FullAccess, it can take up to 60 minutes for the mailbox to appear in the user's Outlook client.