Key takeaway: When a legacy Public Folder is really just a shared email archive, you do not need Microsoft's full Public Folder migration. Export it to PST, land it in a mailbox, move that mailbox to Microsoft 365, and convert it to a Shared Mailbox. You keep the content and rebuild the access, which is often a cleaner end state than carrying a legacy hierarchy into the cloud.

Microsoft's official Public Folder migration is built for large, complex hierarchies: batch migration, a folder mapping file, and hybrid coexistence. For many organizations that is far more than the job needs. Often the real request is simply: “Give me all my old emails in Microsoft 365 and let the team access them.”

Experienced Exchange admins have used a simpler route since the Exchange 2003 and 2007 days: Public Folder → PST → temporary mailbox → migrate → Shared Mailbox. This guide walks through it, then covers what you lose so you can decide whether it fits.

When This Method Fits

Use it when the Public Folder is essentially a shared email repository:

When to skip it: If you have thousands of folders, need the hierarchy to remain Public Folders, or have applications that depend on Public Folder behavior, use Microsoft's official Public Folder migration instead.

What You Will and Won't Preserve

PreservedNot preserved (plan to rebuild)
Message content, attachments, and datesPublic Folder permissions
Folder structure, in most casesMail-enabled folder addresses (handled in Step 7)
Contacts, calendar items, and posts as itemsCustom forms and Outlook-based applications
Some folder metadata, which can flatten depending on how the PST was exported

STEP 1 Inventory the Public Folders

Capture everything before you touch anything. Run this in the Exchange Management Shell:

# Folder tree with sizes Get-PublicFolder \ -Recurse -ResultSize Unlimited | Get-PublicFolderStatistics | Select Name, FolderPath, ItemCount, TotalItemSize | Export-Csv C:\Migration\PF-Inventory.csv -NoTypeInformation # Who has access today Get-PublicFolder \ -Recurse -ResultSize Unlimited | Get-PublicFolderClientPermission | Select Identity, User, AccessRights | Export-Csv C:\Migration\PF-Permissions.csv -NoTypeInformation # Which folders are mail-enabled Get-MailPublicFolder -ResultSize Unlimited | Select Name, Alias, PrimarySmtpAddress, EmailAddresses | Export-Csv C:\Migration\PF-MailEnabled.csv -NoTypeInformation

These three CSV files are your rebuild checklist for Steps 6 and 7. Keep them.

STEP 2 Export the Content to PST

Exchange has no cmdlet for exporting Public Folders to PST. New-MailboxExportRequest works on mailboxes only, so the export is done through Outlook.

  1. In Outlook, open the folder pane and expand Public Folders → All Public Folders.
  2. Choose File → Open & Export → Import/Export → Export to a file → Outlook Data File (.pst).
  3. Select the top-level Public Folder you want to move and tick Include subfolders.
  4. Save to a staging file share, for example \\fileserver\migration\Accounting.pst.

STEP 3 Create the Temporary Mailbox

Create a throwaway mailbox on-premises to receive the content. Give it the name you want the Shared Mailbox to have in the end, since the name carries through the migration.

New-Mailbox -Name "PF-Accounting-Temp" -UserPrincipalName pf-accounting@contoso.com ` -Database "DB01" -Password (Read-Host -AsSecureString "Password")

STEP 4 Import the PST into the Temporary Mailbox

On Exchange 2010 and later, import server-side. The PST must be on a UNC path that the Exchange Trusted Subsystem group can read, and your account needs the Mailbox Import Export role.

New-MailboxImportRequest -Mailbox "PF-Accounting-Temp" ` -FilePath "\\fileserver\migration\Accounting.pst" ` -TargetRootFolder "Imported Public Folders" Get-MailboxImportRequest | Get-MailboxImportRequestStatistics

-TargetRootFolder keeps the content in its own folder instead of merging it into the mailbox root, which makes the result easier to audit. If server-side import is unavailable, open the PST in Outlook with the temporary mailbox profile and copy the content over.

STEP 5 Migrate the Mailbox to Microsoft 365

Move the temporary mailbox with whichever mailbox migration path you already use:

Wait for the batch to complete and verify the item counts in Exchange Online.

Shortcut without hybrid: If you have no hybrid setup and the on-premises server is simply being retired, skip Steps 3 to 5. Create the Shared Mailbox in Exchange Online first (Step 6), then upload the PST directly into it with the Microsoft Purview PST import service (network upload with AzCopy, or drive shipping). You end up in the same place with less on-premises plumbing.

STEP 6 Convert to a Shared Mailbox

Once the mailbox is in Exchange Online, convert it:

Connect-ExchangeOnline Set-Mailbox -Identity pf-accounting@contoso.com -Type Shared

Then rebuild access from PF-Permissions.csv:

Add-MailboxPermission -Identity pf-accounting@contoso.com ` -User jsmith@contoso.com -AccessRights FullAccess -AutoMapping $true # Only if people need to send as the shared mailbox Add-RecipientPermission -Identity pf-accounting@contoso.com ` -Trustee jsmith@contoso.com -AccessRights SendAs

Use security groups instead of individual users wherever possible, so future access changes are a single edit.

Licensing: a Shared Mailbox needs no license while it stays under 50 GB and does not need an online archive or litigation hold. Above that, assign an Exchange Online Plan 2 license. After conversion, remove the temporary user's license and block sign-in on the account:

Connect-MgGraph -Scopes User.ReadWrite.All Update-MgUser -UserId pf-accounting@contoso.com -AccountEnabled:$false

STEP 7 Handle Mail-Enabled Public Folders

If a Public Folder received email, its address has to move too, or senders will get bounces. This is the step people forget.

  1. From PF-MailEnabled.csv, note every address for the folder.
  2. Disable the mail-enabled folder on-premises so the address is released: Disable-MailPublicFolder -Identity "\Accounting".
  3. Add the addresses to the Shared Mailbox: Set-Mailbox pf-accounting@contoso.com -EmailAddresses @{add="accounting@contoso.com"}.
  4. If mail flow still passes through on-premises Exchange, confirm the domain and connectors route that address to Microsoft 365.
  5. Send a test message to the old address and confirm it lands in the Shared Mailbox.

STEP 8 Calendars, Contacts, and Forms

STEP 9 Validate and Decommission

Before you delete anything:

Only then remove the Public Folder data and the temporary objects.

Troubleshooting

SymptomLikely cause
Import request fails with access deniedThe PST share does not grant Exchange Trusted Subsystem read/write
Folder structure collapsed into one folderThe PST was created by dragging items instead of using the export wizard
Shared Mailbox is not visible in OutlookAuto-mapping is off or has not refreshed. Wait about an hour or add the mailbox manually
Mail to the old address bouncesThe mail-enabled folder still owns the address (Step 7), or the domain routes to the wrong place
Mailbox suddenly asks for a licenseIt went over 50 GB, or has an archive or hold enabled

For a Public Folder that is really a shared email archive, the PST route is a straightforward way to a clean end state: inventory first, export through Outlook, land the content in a mailbox, migrate, convert to a Shared Mailbox, then rebuild permissions and move the email addresses. If your Public Folders carry applications, forms, or a large hierarchy, use Microsoft's official migration instead.

Exchange Server Public Folders Shared Mailbox PST Exchange Online Microsoft 365 Migration New-MailboxImportRequest