Shubham Dixit, email migration and data file expert

Written by Jennifer Walsh. Reviewed for technical accuracy by Shubham Dixit, Independent Expert in Email Forensics and Data File Conversion.

Shubham is an independent external reviewer and not an employee of PCDOTS.

Quick answer. On premises Exchange has a free built in way to import a PST, the New-MailboxImportRequest cmdlet, which moves the whole mailbox including calendar and contacts. A tool that pushes over IMAP helps when you lack Exchange shell access or the PST is damaged, though IMAP carries mail only. Exchange Online uses a different import service entirely.

Server or Online, they are not the same

Before any command, settle one thing, because getting it wrong wastes an afternoon. Importing a PST into on premises Exchange Server and importing one into Exchange Online, the Microsoft 365 hosted service, are two different jobs with two different correct methods. Guides that blur them send you down the wrong path.

For on premises Exchange Server, versions 2010 through 2019, the built in and Microsoft supported route is the New-MailboxImportRequest cmdlet in the Exchange Management Shell. That is the focus of this guide. For Exchange Online you cannot use that cmdlet at all, and there is a short pointer to the correct service further down. Confirm which one you are targeting first, then read the matching part.

Same file, two destinations, two completely different methods. Exchange Serveron premises, 2010 to 2019 Method New-MailboxImportRequest PST on a UNC network share Needs Mailbox Import Export role Exchange OnlineMicrosoft 365 hosted Method Microsoft 365 Import Service Upload AzCopy to Azure storage Needs a PST import mapping file

The cmdlet on the left does not exist for the service on the right.

The free native way, New-MailboxImportRequest

For on premises Exchange this is the method to reach for first, because it is built into the product, it is free, and it moves the entire mailbox rather than just the mail. Two prerequisites trip people up, so set them up before you run anything.

Assign the role. The import cmdlets are not available to an administrator by default. Grant the Mailbox Import Export role, then close and reopen the shell so the change takes effect.

New-ManagementRoleAssignment -Role “Mailbox Import Export” -User Administrator

Share the PST. The file has to sit on a UNC network share, not a local drive, and the security group Exchange Trusted Subsystem must have at least read access to that share. This second permission is the classic reason an import fails with an access denied error, so check it.

Run the import. Point the cmdlet at the mailbox and the file.

New-MailboxImportRequest -Mailbox [email protected] -FilePath “\\server\share\archive.pst”

The job runs on the server in the background, so you do not need to keep a session open. Check progress whenever you like.

Get-MailboxImportRequest | Get-MailboxImportRequestStatistics

You do not need to split large PST files first, contrary to what you will sometimes read. The cmdlet handles large mailboxes on its own, and you can queue many imports at once by scripting it across a list of users.

What each route actually moves

This is the distinction that decides which method is right for you, and it is the one most guides leave out. The native cmdlet and an IMAP based tool do not move the same things.

New-MailboxImportRequest imports the whole mailbox, mail, calendar, contacts, tasks and folder structure, because it works inside Exchange at the mailbox level. An IMAP based import is different by nature. IMAP is a mail protocol, so it can carry mail folders faithfully but it cannot carry calendar entries, contacts or tasks, since those are not mail. That is not a flaw in any particular tool, it is what IMAP is. So if you need the complete mailbox moved, the native cmdlet is the right tool. If you only need the mail across, IMAP is fine and often more convenient.

IMAP carries mail. It cannot carry calendar, contacts or tasks. Native cmdlet Mail Calendar Contacts and tasks full mailbox IMAP import Mail Calendar Contacts and tasks mail only

Choose by what you need moved, not just by which is easier to run.

“The question I always ask before a PST import is whether the destination needs the calendar and contacts, because that alone decides the method. A native mailbox import works at the Exchange level and brings everything, whereas anything riding on IMAP is mail only by definition, since the protocol has no concept of an appointment. The other quiet failure is the share permission, the Exchange Trusted Subsystem must be able to read the file, and when an import throws access denied that is almost always why, not the command itself.” Shubham Dixit, Email Migration reviewer (draft, pending approval)

When a tool over IMAP helps

The native cmdlet is the right default, but it assumes you are the Exchange administrator with shell access and the right role, and that the PST is healthy. When one of those is not true, a tool that imports over IMAP earns its place. The PCDOTS PST Converter loads one or many PST files and pushes the mail into an Exchange mailbox over IMAP using just the mailbox login, so it fits three situations in particular. When you have a mailbox account but not Exchange shell access or the import role. When the PST is damaged and the native cmdlet refuses it, since the tool reads the file directly and can often still pull the mail. And when you want a selective import, filtered by folder or date. It keeps folder structure and attachments, and there is a free version to try on your own file first. Remember the limit from above, this route moves mail, not calendar or contacts.

1Add PSTLoad one ormany files 2PreviewCheck thefolders 3Pick IMAPFrom theExport menu 4SaveExchange login,run it iNeeds only a mailbox login, no shell access. Moves mail, not calendar or contacts.

The IMAP route, for the cases the native cmdlet cannot cover.

Here are the steps with the screens.

Step 1. Install and run the tool on Windows, then open the menu and choose Email Data Files, Outlook PST files.

Run the PST to Exchange import tool

Step 2. Browse to your PST files, load them, and preview the mail.

Select the PST files

Step 3. Go to Export and choose IMAP, since Exchange is IMAP supported.

Choose IMAP as the export option

Step 4. Enter your Exchange server login details and click Save to run the import.

Enter the Exchange login and save

To look inside a PST before importing, a free PST file viewer opens it without Outlook. There are also guides to search emails in PST files and to import a PST to Yahoo Mail using the same IMAP approach.

Free Download
Buy Now

If you actually meant Exchange Online

If your target is Microsoft 365 rather than a server in your own building, none of the above applies, and it is worth saying so clearly because the words look similar. New-MailboxImportRequest does not exist in Exchange Online.

Instead you use the Microsoft 365 Import Service, reached through Microsoft Purview. The usual path is network upload, where you use the free AzCopy tool to upload your PST files to a Microsoft supplied Azure storage location, then submit a PST import mapping file, a CSV that lists which PST goes into which mailbox. You will need the Mailbox Import Export role in Exchange Online and the appropriate compliance permissions. It is a different workflow from the on premises cmdlet, so follow Microsoft’s Import Service steps rather than anything in the native section above.

The methods compared

Match the route to your access and to what you need moved.

Method Best for Good to know
New-MailboxImportRequest On premises, full mailbox, free Needs the role and a UNC share
IMAP tool No shell access or damaged PST Mail only, just a login needed
Microsoft 365 Import Service Exchange Online targets AzCopy upload plus a mapping file

Frequently asked questions

How do I import a PST to Exchange Server?
On premises, use the free New-MailboxImportRequest cmdlet after assigning the Mailbox Import Export role and placing the PST on a UNC share the Exchange Trusted Subsystem can read. It imports the whole mailbox.

Can I import a PST to Exchange without PowerShell?
Yes, with a tool that pushes the mail over IMAP using just a mailbox login, which is useful when you lack shell access. Bear in mind IMAP moves mail only, not calendar or contacts.

Why does my import fail with access denied?
Usually because the Exchange Trusted Subsystem group does not have read access to the network share holding the PST. Grant it that permission and the import proceeds.

Is this the same for Exchange Online?
No. Exchange Online has no New-MailboxImportRequest cmdlet. You use the Microsoft 365 Import Service with an AzCopy network upload and a PST import mapping file instead.

Do I need to split a large PST before importing?
No. The native cmdlet handles large PST files on its own, so splitting is unnecessary. Very large single files just take longer to complete.

Can I import a damaged PST into Exchange?
The native cmdlet may reject a corrupt file. A tool that reads the PST directly can often still recover and import the mail, which is one of the cases where it is genuinely worth using.

Match the method to your access

For on premises Exchange, reach for New-MailboxImportRequest first. It is built in, it costs nothing, and it moves the complete mailbox, which is what most imports actually need. Drop to an IMAP based tool when the situation calls for it, no shell access, a damaged PST, or a selective mail only import, and accept that it carries mail rather than the whole mailbox. And if your destination turns out to be Exchange Online, step away from the cmdlet entirely and use the Microsoft 365 Import Service. Decide which of those three you are in before you start, and the import itself is the easy part.

Shubham Dixit

Reviewed by Shubham Dixit

Independent Expert in Email Forensics and Data File Conversion. Shubham reviewed this guide for technical accuracy. He is an independent external reviewer and not an employee of PCDOTS.

Profile  |  LinkedIn