FAQ

Exchange Migrator FAQs

The Exchange Migrator Powershell commands allow you to use the Exchange Migrator to import and export .pst files to and from Office 365.

Sample scripts

The download below contains some sample scripts that can help you get started using the PowerShell commands. There are 3 scripts in the .zip file:

• A script to backup the calendars folder and .pst files on all mailboxes
• A script to backup the contents of mailboxes for the past 30 days
• A script to backup the contents of all mailboxes

The sample scripts are attached here.

Installation

The migrator module is installed along with the Exchange Migrator.

Loading the module

Use the following command to load the module:

PS C:> Import-Module MessageOps-Migrator

After the module is loaded, you will have access to the following cmdlets:

Available CmdLets

• Export-MessageOps.To.PST
• Import-MessageOps.From.PST
• Filtered Exports and Imports
• Export-MessageOps.FilteredTo.PST
• Import-MessageOps.FilteredFrom.PST

Export-MessageOps.To.PST

This cmdlet allows you to export a mailbox to a .pst. The module will use MAPI and Exchange Web Services to logon to the Mailbox and export the items within it to a .pst file.

If the Mailbox is larger the 20 GB, it will export the data over multiple files for reliability.

Parameters:

• DestinationDirectory – Directory where .pst file will be created
• SourceMailbox – The PrimarySMTPAddress of the mailbox you want to export
• Mailbox – (switch) indicating to export the mailbox
• Archive – (Switch) indicating to export the archive
• Credential – PSCredentials that will be used during the export this should be a Global Administrator with a mailbox in Office 365
• ExportDum.pster – Exports the dumpster folders only with the Mailbox in the RecoverableItems tree
• UseDirectDiscover – Does a direct discover using MAPI, otherwise use DNS

Examples:

To export the primary mailbox to .pst:

Export-Messageops.To.PST –DestinationDirectory c:backup –SourceMailbox mailboxtoexport@messageops.com –mailbox

To export the user’s archive mailbox to .pst

Export-Messageops.To.PST –DestinationDirectory c:backup –SourceMailbox mailboxtoexport@messageops.com –archive

Import-MessageOps.From.PST

This cmdlet allows the importing of a .pst into an Office365 Mailbox or Archive. All importing is performed using Exchange Web Services and MAPI.

Parameters:

• FileName – Full filepath to where the .pst is located
• DestinationMailbox – The PrimarySMTPAddress of the mailbox you want to Import to
• Mailbox – (Switch) indicating to import into the Mailbox
• Archive – (Switch) indicating to import into the Archive
• ImportIntoSubFolderOfMailbox – (Boolean) Indicating to import into the Subfolder named after the .pst. This is enabled by default. If set to false, the import will be done into the root folders.
• Credential – PSCredentials that will be used during the export this should be a Global Administrator with a mailbox in Office 365
• AddressReWrite – (Boolean) Use address rewriting to rewrite native exchange addresses. Enabled by default.
• MAPIUpload – (Boolean) The is enabled by default and enables MAPI along with EWS to be used for uploads of messages. Setting this to false will mean only EWS will be used for uploads.
• SkipDeletedItems – (Boolean) Skip importing the deleted items folder in the .pst file.
• UseDirectDiscover – (Boolean) Does a direct discover using MAPI, otherwise use DNS.

Examples:

To import the .pst file c:tempJanuary2010pst into a user archive mailbox:

Import-MessageOps.From.PST –filename c:tempJanuary2010pst –DestinationMailbox user2@messageops.com –Archive

To Import the file c:tempbackuppst into the root folder of a mailbox:

Import-MessageOps.FromPST –filename c:tempbackuppst –DestinationMailbox user2@messageops.com –Mailbox –ImportIntoSubFolderOfMailbox $false

Performing filtered imports and exports to and from .pst files

The MessageOps Exchange Migrator module contains two cmdlet’s that allow you to import and export filtered content to and from a .pst file. The content can be filtered by specific properties or using complex AQS or MAPI execSQL strings.

Import-MessageOps.FilteredFrom.PST

This cmdlet imports mail from a .pst to the exchange online mailbox or online archive.
The Import-MessageOps.FilteredFrom.PST Cmdlet has the following 2 mandatory parameters:

• FileName – (String) FullPath to the .pst file name
• DestinationMailbox – (String) PrimarySMTPAddress of the Exchange Online Mailbox
• You then must specify a target location:
• Mailbox – (Switch) Specify the mailbox as the import destination
• Archive – (Switch) Specify the archive as the import destination

Import examples

Import messages with .pdf attachments

PS C:> Import-MessageOps.FilteredFrom.PST -FileName “c:importfilenamepst” -DestinationMailbox mailbox@domain.onmicrosoft.com -Mailbox -Attachments “.pdf”

Import Messages from 2004 into the Mailbox Archive

PS C:> Import-MessageOps.FilteredFrom.PST -FileName “c:importfilenamepst” -DestinationMailbox mailbox@domain.onmicrosoft.com -Archive -ReceivedDateFrom [DateTime]::Parse(“2004/01/01″) -ReceivedDateTo [DateTime]::Parse(“2005/01/01″)

Import messages less than 10 MB in the mailbox archive

PS C:> Import-MessageOps.FilteredFrom.PST -FileName “c:importfilenamepst” -DestinationMailbox mailbox@domain.onmicrosoft.com –Archive –SizeLessThan 10
Import Messages using a custom MAPITable String

PS C:> Import-MessageOps.FilteredFrom.PST -FileName “c:importfilenamepst” -DestinationMailbox mailbox@domain.onmicrosoft.com –Mailbox –FilterString “where (Categories = ‘one’) or (Categories = ‘two’)”

Export-MessageOps.FilteredTo.PST

This cmdlet exports mail to a .pst from an exchange online mailbox or online archive.
The Export-MessageOps.FilteredTo.PST Cmdlet has the following mandatory parameters:

• SourceMailbox – (String) PrimarySMTPAddress of the Exchange Online Mailbox

You then must specify what to export:

• Mailbox – (Switch) Export the mailbox
• Archive – (Switch) Export the archive

Filter properties

One or more of these can be specified. If multiple filters are specified, the result will be an “and” of the filters. For example subject = YYYYY and Body contains XXXYYYY.

• Subject – Does a substring or exact match on the subject of a message
• Body – Does a substring match of a part of body of a message
• Attachments – Does a substring search of the Displayname, extension of filename
• ReceivedDateFrom – Specify the DateTime to export from
• ReceivedDateTo – Specify the DateTime to export to
• SizeGreaterThan – Specify the size in MB to export greater than
• AQSString – Specify the raw EWS AQS String

Export examples

Export messages with .pdf attachments to .pst

PS C:> Export-MessageOps.FilteredTo.PST –SourceMailbox mailbox@domain.onmicrosoft.com –DestinationDirectory c:exportDestination –Mailbox -Attachments “.pdf”

Export Messages from 2004 from the Mailbox Archive to .pst

PS C:> Export-MessageOps.FilteredTo.pst –SourceMailbox mailbox@domain.onmicrosoft.com –DestinationDirectory c:exportDestination -Archive -ReceivedDateFrom [DateTime]::Parse(“2004/01/01″) -ReceivedDateTo [DateTime]::Parse(“2005/01/01″)

Export Messages larger than 10 MB from the Mailbox to .pst

PS C:> Export-MessageOps.FilteredTo.PST –SourceMailbox mailbox@domain.onmicrosoft.com –DestinationDirectory c:exportDestination -Mailbox -SizeGreaterThan 10

SampleScripts.zip

Below are a collection of common Exchange Migrator common errors:

• Upload of message failed:

‘ErrorMissingEmailAddress’.

This indicates that the Office 365 admin account being used does not have mailbox, or that the wrong type of admin account is being used (password or billing admin).

• Connecting to remote server failed with the following error message:

‘The SSL connection cannot be established’.

This and similar errors are usually encountered when the application tries to connect to remote PowerShell in Office 365. Verify that you can manually connect to Office 365 via Remote PowerShell on the system.

• Problems processing mailbox:

‘IMAPIOfflineMgr is not available’.

When you export mailboxes, you should be prompted for credentials. When you are prompted, the option to save credentials should be selected. This can also occur if you are unable to create an Outlook profile for the administrator account on the server, or the administrator account specified on the Remote PowerShell connection screen does not have a mailbox in Office 365.

• Problems processing mailbox

Wrong OS or OS version for application

(Exception from HRESULT: 0x800401FA (CO_E_WRONGOSFORAPP)).

This typically indicates the wrong version Exchange Migrator has been installed. For example, the 32 bit version is being run on a system which has the 64 bit version of Outlook.

• Unable to read .pst file

MAPI_E_DISK_ERROR.

This error can be caused for a variety of reasons. The most common would be that the user has the pst file open, and the Office 365 Exchange Migration tool is unable to read it. Only one person can have a .pst open at a time. The other reason this would occur is if there is a slow disk, and the Office 365 Exchange Migration tool can’t read to or write from it.

• Unable to read .pst file

MAPI_E_FAILONEPROVIDER.

If you are trying to import a .pst and there is an error code of ulContext: 805700609, then the likely cause is the .pst file is password protected. You must remove the password from the file.

• Unable to resolve name of the Exchange Server

MAPI_E_NETWORK_ERROR.

This can be caused by not being able to resolve the name of the Exchange Server. To resolve, ensure you can ping the exchange by its name. Make sure the account has the appropriate permissions to access the mailbox. In the case of Exchange 2003, check they have send/receive permissions.

• Corrupt .pst file

MAPI_E_CORRUPT_STORE.

This is typically caused by corrupted .pst files. You can try opening them with Outlook to confirm. You can also run scan.pst.exe against the file to try and repair them.

Behind the scenes, Exchange Migrator uses Outlook to connect to Exchange. The scenario you are trying to perform will dictate how to create the profiles.

Almost all scenarios connect to Exchange Online. So, the first step would be to try and create a profile for the administrator account that was specified on the Remote PowerShell connection screen of the Office 365 Exchange Migration tool. Creating the profile verifies the admin account does indeed have a mailbox, and that autodiscover is working properly. If your autodiscover record is pointed at the on-premises environment, you can check the use direct discover option, which will cause the Office 365 Exchange Migration tool to bypass the normal autodiscover process and connect directly to Office 365.

Another common workaround is to try and create the admin account with a @domainname.onmicrosoft.com primary email address and login. The autodiscover record for that domain should always point to Office 365.

Mailbox permissions can cause significant issues when migrating from on-premises Exchange. Again, this is something that can be manually tested.

First, create a profile for the admin account specified on the source exchange details screen. Can Outlook connect to the admin mailbox on the exchange server? If so, attempt to add the account you are trying to migrate to that profile. Can you open that mailbox and browse the contents? If not, then the admin account does not have the appropriate permissions.

4.1 Ensure you have the last version of the office 365 exchange migration tool

We constantly add new features and fixes to the Office 365 Exchange Migration tool. When running the Office 365 Exchange Migration tool, the version number should appear in the title bar. Compare that to the latest version available for download.

4.2 Ensure prerequisites are met

• Outlook 2010 or 2013
• PowerShell 2.0
• The Office 365 Administrator account specified must have a mailbox
• Office 365 Kiosk Mailboxes cannot be used as a target mailbox for .pst import or as the source for a .pst export

4.3 Ensure you have the latest version of Outlook

Ensure that all the latest hotfixes and updates are installed for Outlook. The easiest way to typically get the updates is to run Windows Update.

Outlook 2007 should be at least:

migrate to office 365 from exchange, Exchange Migrator FAQs

The Outlook 2010 should be at least:

migrate to office 365 from exchange, Exchange Migrator FAQs

For Outlook 2010 you can download and install Office 2010 SP2.

4.4 Permissions error rights added but may not yet have applied will wait 15 minutes and try again

To prevent this delay, you must grant your admin account full access to your Office 365 mailboxes before running the migrator. To do that, you must first connect to the remote PowerShell by typing the following three commands in your local PowerShell:

$o365cred=get-credential

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $o365cred -Authentication Basic –AllowRedirection

Import-PSSession $session

If you get an error at this stage concerning the execution of scripts being disabled on the system, you should close Powershell and run again as administrator. Then, run the following command to allow the scripts to execute and start the sequence of commands again.

set-executionpolicy unrestricted

After you are connected, run the following command to give your admin account full access to all mailboxes:

Get-Mailbox -resultsize unlimited| Add-mailboxpermission -user admin@yourdomain.com -AccessRights FullAccess -Automapping $false

Or, run this command to give the account access to a single mailbox:

Add-mailboxpermission –identity user@yourdomain.com -user admin@yourdomain.com -AccessRights FullAccess -Automapping $false

4.5 Manually configure an Outlook profile to connect to Exchange

Behind the scenes, the Office 365 Exchange Migration tool is using Outlook to connect to exchange. The scenario you are trying to perform will dictate how to create the profiles.

Almost all scenarios connect to Exchange Online. So, the first step should be to try and create a profile for the administrator account that was specified on the Remote PowerShell connection screen of the Office 365 Exchange Migration tool. By creating this profile, you’ll verify that the admin account does indeed have a mailbox, and that autodiscover is working properly.

If your autodiscover record is pointed at the on-premises environment, you can check the use direct discover option, which will cause Exchange Migrator to bypass the normal autodiscover process, and attempt to connect directly to Office 365.

Another common workaround is to attempt to create the admin account with a @domainname.onmicrosoft.com primary email address and login. The autodiscover record for that domain should always point to Office 365.

Mailbox permissions are among the most common issues when migrating from on-premises Exchange. This is something that can be tested manually. First, create a profile for the admin account specified on the Source Exchange Details Screen. Can Outlook connect to the admin mailbox on the Exchange Server? If so, then attempt to add the account you are trying to migrate to that profile. Can you open that mailbox and browse the contents? If not, the admin account does not have the appropriate permissions.

4.6 Check for common errors

The best place to start is with the log files. Detailed log files are kept in the c:\users\username\MessageOps\ExchangeMigrator\logs directory. The most common problems are:

• The account does not have permission to impersonate the requested user

• Profile creation error wait 60 seconds and retry: Retrieving the COM class factory for component with CLSID {EBC7A7B5-C614-47B3-A579-27A2C2C98A13} failed due to the following error: 80040154

• Upload of Message Failed: ErrorMissingEmailAddress. This indicates that the Office 365 admin account in use has no associated mailbox, or that the wrong type of admin account is being used; password or billing admin.

• Connecting to remote Server Failed with the following error Message: The SSL Connection Cannot be Established. This and similar errors are usually encountered when the application tries to connect to remote PowerShell in Office 365. To solve this, verify that you can manually connect to Office 365 via Remote PowerShell on the system.

• Problems processing Mailbox “IMAPIOfflineMgr is not available”. When exporting mailboxes, you should be prompted for credentials. When you are prompted, the option to save credentials must be selected.

This error message can also occur if you are unable to create an Outlook profile for the administrator account on the server. Alternatively, the administrator account specified on the Remote PowerShell connection screen might not have an Office 365 mailbox.

• Problems processing Mailbox Wrong OS or OS version for application (Exception from HRESULT: 0x800401FA (CO_E_WRONGOSFORAPP)). This typically indicates the wrong version of the Office 365 Exchange Migration tool has been installed. For example, the 32 bit version is being run on a system which has the 64 bit version of Outlook.

• MAPI_E_DISK_ERROR. This error can be caused for a variety of reasons. The most common would be that the user has the .pst file open and Exchange Migrator is unable to read it. Only one person can simultaneously view the same .pst. The other reason this would occur if there is a slow disk and the Office 365 Exchange Migration tool can’t read to or write from the disk.

• MAPI_E_FAILONEPROVIDER. This error can appear for several reasons. If you are trying to import a .pst and there is an error code of ulContext: 805700609, it’s likely because the .pst is password protected. You must remove the password from the .pst. Click below for more information on this error.

• MAPI_E_NETWORK_ERROR. This error can be caused by not being able to resolve the name of the Exchange Server. Ensure you can ping the Exchange by its name. Make sure the account has the appropriate permissions to access the mailbox. In the case of Exchange 2003, check the user has send/receive permissions.

• MAPI_E_CORRUPT_STORE. This is typically caused by corrupted .pst files. Try opening the file with Outlook to confirm. You can also try and run Scan.pst.exe against the file to try and repair them.

4.7 Proxy configuration

If a dedicated proxy server is being used in the environment, you will need to make certain configuration changes.

To get the application to connect to Office 365, the netsh command should be used to set the proxy. For example, if the proxy settings are configured in Internet Explorer you would run the following command in PowerShell to have it use the same proxy:

netsh winhttp import proxy source=ie

If you are running a 64-Bit operating system

If you are running a 64-bit operating system, you need to ensure you run the netsh command in the 32-bit version of PowerShell, as that is what the Office 365 Exchange Migration tool uses to connect to remote Powershell.

To do this, start the 32-bit version of powershell, using C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe and run the same netsh command – netsh winhttp import proxy source=ie. Alternatively, there should be a shortcut to open Powershell (x86) in Accessories\Windows Powershell.

Advanced proxy configuration

In most cases, setting the proxy value with netsh should work. If it doesn’t, you can modify the application configuration files as described below.

4.8 Frequently asked questions

What kind of speed can I expect when using Exchange Migrator?

On a fast connection, using one instance of Exchange Migrator, you can expect to upload at a rate of 500MB to 1 GB per hour. To get a higher upload speed, you must dedicate multiple systems to the upload process, each configured with their own Office 365 Admin account. This should reduce the likelihood of running into throttling issues.

When exporting messages from Office 365 to .pst files, you can expect a transfer speed of between 1 – 2 GB per hour.

Will Exchange Migrator create duplicate messages?

If you import a .pst file or mailbox and the import does not complete, you can import the same .pst or mailbox again. From there, it will detect the previously uploaded items, avoiding any duplicated. To do this, ensure the defaultduplicate detection of .PSTId is selected.

If you have already attempted an Outlook import, and the.pst file originated from Exchange, you must choose the SourceKey option in the duplicate detection area on the options screen, to prevent duplicates from being created. If the messages came from elsewhere, including POP3 server, then duplicates would be created if you first tried to import with Outlook and then tried to import with the Office 365 Exchange Migration tool.

Can I install Exchange Migrator on multiple systems?

Yes, the Office 365 Exchange Migration tool is licensed by the number of mailboxes in the account, not by the number of systems it is installed on. In some cases, installing Exchange Migrator on multiple simultaneous systems is the best way to increase your migration speed. If you do this, you should ensure each is configured with a separate Office 365 Admin account, to reduce the likelihood of throttling issues.

How does Exchange Migrator connect to Office 365?

Exchange Migrator uses a combination of several technologies to connect to the Office 365 mailbox.

• Remote PowerShell
• RPC over HTTPS
• Exchange Web Services

All communication is done over an SSL secured connection.

What happens to messages that are too large to import?

The message size limit in Office 365 is 30 MB. Messages over 25 MB can’t be uploaded. Those messages are placed in a directory named OverSize in the log file directory.

To import data, Exchange Migrator uses both EWS and MAPI to connect to mailboxes, so it’s critical that both these protocols are enabled on the mailboxes you use with the application. By default, these protocols will be enabled on any mailbox you create through the Administrative Console, with the exception of Kiosk Mailboxes.

Note on kiosk mailboxes

A mailbox that has a kiosk licence isn’t accessible using Outlook/Mapi, so importing or exporting from these mailboxes isn’t possible.

If MAPI has been disabled to prevent access by an administrator in your mailbox, it will need to be enabled again before the application can work. To enable or disable MAPI access, head on over to the exchange administrative console.

https://kaseya.zendesk.com/attachments/token/1xgvbb8lmnui3xl/?name=AdminCenter.png

https://kaseya.zendesk.com/attachments/token/ipbyv7ymfwddkpf/?name=MailboxSettings.png

These setting can also be configured in Remote Powershell and the Get-CASMailbox and Set-CASMailbox

Eg. To get the current settings

https://kaseya.zendesk.com/attachments/token/1ycyz8gyu4pr59z/?name=get-casmailbox.png

To enable MAPI on a Mailbox you can use

Set-CASMailbox –Identity mailbox -MAPIEnabled:$true -EwsEnabled:$true

The Exchange Migrator is charged based on the total number of mailboxes in the Office 365 subscription. The application checks the number of mailboxes in the Office 365 subscription via remote PowerShell when setting up the connections to Office 365.

A common misconception is that it is licensed by the number of mailboxes you are trying to import or export. Since it is based on the number of mailboxes in the subscription, you can import multiple .pst files in the same mailbox, or export the same mailbox multiple times, without exceeding the license counts. Additionally, you can install Exchange Migrator on multiple migration workstations using the same key.

Additionally, the license is valid for one year from the issue date. If you wish to continue using it after the expiration date, you will need repurchase another license at the list price.

By default, when synchronizing a user from an on-premises environment that has a mailbox assigned to it, assigning an Office 365 license will not result in a mailbox being created.

To create the mailbox, you need to initiate the free Microsoft migration tools. Put simply, if you use Microsoft’s Directory Sync to synchronize your on-premises Exchange mailboxes to Office 365, you have to use the free tools from Microsoft to do the data migration of the live mailbox.

After the mailbox has been initialized with the free Microsoft migration tools, you can use Exchange Migrator to import .pst files into the mailbox, or export the mailbox itself.

The Exchange Migrator has two types of import options that can be set through the import GUI.

• Per import options that can be set different on every .pst or mailbox you import
• Per session options that affect all the .pst files or mailboxes you import in the session

Considerations for .csv imports

If you are using a .csv file to populate the import queue and you want to configure any of the per import options, you need to configure these setting using the appropriate .csv header. Per session options aren’t affected by .csvHeaders.

Per import options

Folder destination options

migrate to office 365 from exchange, Exchange Migrator FAQs

This setting controls the destination location of the import. The .csv header for this option is “Use.pstrootname”. If true, a subfolder will be created to import into. Otherwise, false mailbox root will be used.

migrate to office 365 from exchange, Exchange Migrator FAQs

This setting controls whether address rewriting is used. Address rewriting will rewrite the native Exchange email address format (for example EX: /o=First Organization/ou=first administrative group/cn=Recipients/cn=UserName’). These are only valid in the source Exchange organization to the SMTP address for the address entry if it can found within other message properties or resolved by looking at the Global Address List based on the Display Name of the recipient.

It’s important to note that because this is an automated process, exact address matching can never be 100% assured if GAL resolution is used and more than 1 contact has the same display name. The .csv header for this option is “Useaddressrewrite”. If true, address rewriting will be used.

migrate to office 365 from exchange, Exchange Migrator FAQs

This setting controls whether the deleted items are included in the import. The .csv header for this option is “Dontimportdeleteditems”. If true deleted Items will not be imported.

migrate to office 365 from exchange, Exchange Migrator FAQs

Folder filtering allows you to specify the folders you want included in the import. The .csv header for this option is “includefolders”. It contains the folders to include in the import separated with a semicolon “;” eg \Inbox;\SendItems;\Contacts. The other .csv header for this option is “includesubfolders”. If true, the subfolders of the include folder will be included as well.

migrate to office 365 from exchange, Exchange Migrator FAQs

Exclude folders contains the folders to exclude from the import. The .csv header for this is “excludefolders”, which contains folders to exclude for the export that are separated with a semicolon “;” eg \Inbox;\SendItems;\Contacts.

The other .csv header for this option is “excludesubfolders”. If true, the subfolders of the exclude folder will also be excluded.

Per session

migrate to office 365 from exchange, Exchange Migrator FAQs

This setting controls the handling of duplicates in the import session. The default setting uses the PSTEntryid, which is unique to the .pst being imported. The option should be used if you are using the Exchange Migrator to import a static set of .pst files. This will prevent duplicates if the same .pst file is imported multiple times into the same mailbox.

It’s important to note that if you select this option, exporting a mailbox more than once to different .pst filess will result in duplicates.

The SourceKey option uses 3 different keys for duplicate detection. It first tries the PSTid, then it uses the SourceKey, and tries the SearchKey.

When an item is copied multiple times, the SourceKey and SearchKey are ordinarily the same across multiple copies. If this is the case, Exchange Migrator will eliminate duplicated by identifying matches for either of these three keys. This should prevent duplicates if an Outlook import has been aborted using the Exchange Migrator.

migrate to office 365 from exchange, Exchange Migrator FAQs

This option will enable the use of MAPI as well as EWS when uploading. Using MAPI can be helpful if you’re experiencing throttling issues. It’s important to remember this won’t necessarily increase the performance of the import. Depending on the structure of the items being imported, using EWS only can yield better performance.

migrate to office 365 from exchange, Exchange Migrator FAQs

This option will cause Autodiscover to run directly against the Office 365 endpoint, rather than using the conventional DNS lookup, during the MAPI profile creation. This option should be used when having problems with the MAPI profile creation.

To export a .pst file from Exchange Online, choose the Export to .pst option from Exchange Online on the main screen, then click next.

migrate to office 365 from exchange, Exchange Migrator FAQs

On the next screen, you must enter in the local Exchange details if you are exporting from an on-premise Exchange environment.

On the next screen you will be prompted for your administration login details for Office 365. This account must have a mailbox attached.

migrate to office 365 from exchange, Exchange Migrator FAQs

• If the show mailbox size checkbox is selected, it can take much longer to load the list of mailboxes.

• In larger organizations, you can use MAPI to get mailboxes from the GAL, instead of Remote PowerShell. Checking this option results in a minor performance improvement.

• If you have a license key for over 1000 users, you can skip getting all mailboxes via Remote PowerShell. You will then have to search for the mailboxes or use a .csv file on the next screen.

The next screen has several options which are described below:

migrate to office 365 from exchange, Exchange Migrator FAQs

Click the select mailbox button to select the mailbox(es) that need to be fixed, and click select mailbox to add the mailboxes to the export list.

Use Ctrl-A to select all mailboxes or hold down Ctrl to select multiple mailboxes.

migrate to office 365 from exchange, Exchange Migrator FAQs

When using the .csv option, the .csv file in question will need a valid header row.

A .csv with a valid header row should look like:

SourceMailbox,ExportDirectory,ExportMailbox,ExportArchive,ExportDum.pster
user@domain.com,c:\Temp,False,True,False

Valid header rows:

SourceMailbox : Primary SMTP address of the Mailbox to export
ExportDirectory : Directory to save the .PST to
ExportMailbox : boolean (true,false) to indicate to Export the Mailbox
ExportArchive : boolean (true,false) to indicate to Export the Archive
ExportDum.pster : boolean (true,false) to indicate to Export the Dum.pster
Excludefolders : contains folders to exclude for the export separated with a ; eg \Inbox;\SendItems;\Contacts
Excludesubfolders : if true the subfolders of the exclude folder will be excluded as well

You can also use the load from history button to load a previous list of mailboxes that were queued to be fixed. This is useful if the migration is aborted during the upload.

Once a mailbox, or group of mailboxes, is selected, you can choose to export the mailbox, archive, or dumpster. You can select any one or a combination of these options.

The use direct discover checkbox should be selected if the autodiscover record for the domain doesn’t point to Office 365. If selected, the Exchange Migrator will attempt to connect directly to Office 365, bypassing the autodiscover process.

Normally Exchange Migrator uses a combination of EWS/ MAPI. If you check the use MAPI only option, you’ll configure it to use only MAPI.
In the export file options area, click the select export directory button to define where the .pst files should be exported to.

You can either create a new .pst file, or use an existing one. If you choose an existing .pst file, it won’t import duplicate items, assuming the .pst file was created by Exchange Migrator. You can use the existing .pst option to resume a failed or interrupted migration.

The option is to select the size at which a .pst file should be split, the default of which if 20,000, or 20 GB. This can be increased to anything up to 50GB, but in doing so, you’ll increase the likelihood of migration failure.

Folder filtering

• Filter folders – folders to exclude for the export separated with a ; eg \Inbox;\SendItems;\Contacts
• Exclude folders – if set to true, excludes folders from the mailbox

The email status notifications will simply email the administrator when the export process is complete.

Once the options are selected, click the add to export queue button, if you want to queue up the exports. If you are ready to export the archive, click start export.

When the export starts, if you get prompted for a username and password, enter the Office 365 Administrator username that you previously entered on the remote PowerShell screen, and check the box to remember the credentials. You must check the box to remember the credentials when prompted, or the export won’t work.

An important note about exporting .pst files from Office 365 2013

When exporting mailboxes to .pst files from Office 365, the admin account is automatically granted access to the mailbox. That access is then removed when the export is complete. With the 2010 version of Office 365, this permission change took place almost immediately. In 2013, it can take several minutes. If you try and connect before the permissions are applied, it seems to take even longer before you can access the mailbox. If permissions don’t exist, we will still add them, but we will wait 15 minutes before trying to access the mailbox after doing so. If you are performing a large number of exports, we highly recommend adding the permissions ahead of time to avoid this delay.

Grant full access to all mailboxes

To grant full access to an Office 365 mailbox, you must first connect to the remote PowerShell by typing the 3 commands in your local PowerShell:

$o365cred=get-credential

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri

https://ps.outlook.com/powershell/ -Credential $o365cred -Authentication Basic -AllowRedirection

Import-PSSession $session

After you are connected, run the following command to give your admin account full access to all mailboxes:

Get-Mailbox -resultsize unlimited| Add-mailboxpermission -user admin@yourdomain.com -AccessRights FullAccess -Automapping $false
To later remove the permissions, run the following command:

Get-Mailbox -resultsize unlimited| Remove-mailboxpermission -user admin@yourdomain.com -AccessRights FullAccess

Exchange Migrator is frequently updated with new features and bug fixes. It’s a good idea to always try the latest version if you are having problems.

The latest version is 4.0.

To connect to the Office 365 remote PowerShell, type the following 3 commands in your local PowerShell:

$o365cred=get-credential

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $o365cred -Authentication Basic –AllowRedirection

Import-PSSession $session

If you get an error at this stage, concerning the execution of scripts being disabled on the system, you should close Powershell and run again as administrator. Then, run the following command, to allow the scripts to execute and start the sequence of commands again.

set-executionpolicy RemoteSigned

If a dedicated proxy server is being used in the environment, there are some configuration changes that may need to be made.

To get the application to connect to Office 365, the netsh command should be used to set the proxy. For example, if the proxy settings are configured in Internet Explorer, you would run the following command in PowerShell to have it use the same proxy:

netsh winhttp import proxy source=ie

If you run a 64-bit operating system

If you run a 64 bit operating system, then must ensure you run the netsh command in the 32-bit version of PowerShell, since Exchange Migrator uses this to connect to remote PowerShell.

To do that, start the 32-bit version of PowerShell using, the following command:

C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe

Alternatively, there should be a shortcut for Powershell (x86) in Accessories\Windows Powershell where you can run the netsh command:

netsh winhttp import proxy source=ie

Advanced proxy configuration

In most cases, setting the proxy value with netsh should work. If it doesn’t, you can modify the application configuration files as described below.

In the C:\Program Files\MessageOps\MessageOps Exchange Migrator directory, there should be a file called MOExMigrator.exe.config. If you open this file, you should be able to add settings that configure the application to use the default proxy.

<configuration>
<system.net>
<defaultProxy>
<proxy bypassonlocal=”false” usesystemdefault=”true” />
</defaultProxy>
</system.net>
</configuration>

If that doesn’t work, you can also try specifying the proxy to use:

<configuration>
<system.net>
<defaultProxy enabled=”true”>
<proxy proxyaddress=”http://proxyserver:8080″/>
</defaultProxy>
</system.net>
</configuration>

On a fast connection, using one instance of Exchange Migrator, you can expect to upload at a rate of 500MB to 1 GB per hour. To get a higher upload speed, you must dedicate multiple systems to the upload process, each configured with their own Office 365 Admin account. This should reduce the likelihood of running into throttling issues.

When exporting messages from Office 365 to .pst files, you can expect a transfer speed of between 1 – 2 GB per hour.

MessageOps Office 365 Migrator supports migrations from Exchange 2000 and higher.

To begin the mailbox migration, choose the from on-premises Exchange option and click next.

migrate to office 365 from exchange, Exchange Migrator FAQs

Next, you must provide the following information to connect to your local Exchange environment:

migrate to office 365 from exchange, Exchange Migrator FAQs

If you want to use a .csv file, the format is the following:

SourceMailbox,Mailbox,Destination
localmailbox@domain.com,o365mailbox@domain.com,Mailbox

When migrating from Exchange 2000 or 2003, the Exchange Server should be the server that the mailboxes reside on. When migrating from Exchange 2007 or 2010, the Exchange Server should be a client access server.

The username specified must have full access to the mailboxes being migrated. The domain is the Active Directory domain name (the UPN domain name) that the account is in, and the password is the Active Directory password.

The set target address after migration will set a forwarder on the mailbox to the corresponding Office 365 mailbox when the migration completes. When the forwarder is set, mail will only be delivered to the Office 365 mailbox. To revert the changes, you must manually clear the TargetAddress attribute on the user account in the local Active Directory. Make sure you fully understand what the TargetAddress attribute does before checking this box.

Next enter your administrator credentials for Office 365. This account must have a mailbox.

migrate to office 365 from exchange, Exchange Migrator FAQs

The next screen allows you to add mailboxes to an import queue and specify the import options.

migrate to office 365 from exchange, Exchange Migrator FAQs

The first thing you’ll want to do is select the source mailbox you want to import, by clicking the select mailbox button and choosing the mailbox. You then must select which Office 365 mailbox you want the source mailbox imported into, by clicking the select mailbox button in the Destination Mailbox options area.

You then have several options to decide on:

Address rewriting

Address rewriting will rewrite the Native Exchange email address format (for example EX: /o=First Organization/ou=first administrative group/cn=Recipients/cn=UserName’). This is only valid in the source exchange organization to the SMTP address for the address entry if it can found within other message properties, or resolved by looking at the global address list based on the display name of the recipient.

Because this is an automated process, exact address matching can never be 100% assured if GAL resolution is used and more than 1 contact has the same display name.

Thread settings

Thread settings shouldn’t be changed in the majority of cases. Nonetheless, if you have a good reason to modify these, here is how to go about it.

Max threads – The number of simultaneous TCP connections to Exchange. The Exchange server will throttle any more than 10 simultaneous connections.

Batch Size – The total number of messages that will be sent in one batch. The actual batch size will depend on the size of the messages in the batch.

Destination

The destination is simply whether you want to import the mailbox data to your mailbox or archive.

Destination root

The destination root controls whether a new folder is created for the source mailbox data. When separate folder is selected, a top level folder will be created in the mailbox and the source mailbox data will be copied to that folder. As an example, if the mailbox name was user@domain.com, and the separate folder is selected, the import would create a top level folder called user@domain.com and the mailbox data would be restored beneath that folder.

If the root of store option is selected, the top level folders of the source mailbox will be restored to the top level of the Office 365 mailbox or archive. So, the inbox of the source mailbox will be placed in the inbox of the Office 365 mailbox.

Destination authentication options

The destination authentication options are very important piece of the application. The functionality depends on what version of Office 365 your account is connected to.

Office 365 – 2010 exchange

With the Exchange 2010 version of Office 365, the Exchange Migrator primarily used delegation to perform imports and exports into Office 365. If the Exchange Migrator detects that it is connected to the 2010 version of Office 365, the use EWS impersonation will be unchecked, and the admin account specified on the previous remote PowerShell screen will be automatically granted access to the mailbox(es).

Office 365 – 2013 exchange

With the 2013 version of Office 365, EWS Impersonation has to be used when working with Office 365 mailboxes, and is checked by default. The first time an operation is performed, the account specified on the previous remote PowerShell screen will be granted the application impersonation role within Office 365.

The use throttle switching box should also remain checked, as this will allow the application to switch between impersonation and delegation during the operation.

Error processing

If the Ignore Single Property Errors is checked, if a property on a message is corrupt, the message will still be uploaded.

Email status notifications

If checked, you can specify an email address that notifications can be sent to when operations complete or fail.

Add to import queue

Once you have the source mailbox and Office 365 Mailbox selected, you can add it to the import queue.

Once the mailboxes are queued for import, click the start import button to start the mailbox migrations.

At this time, we are unable to offer support for migrating public folders to Office 365. This is because there are simply too many things that can go wrong. We have spent a lot of time trying to make it reliable, but it isn’t 100% trustworthy. Use at your own risk.

There are a number of elements you need to consider before attempting a public folder migration, to ensure a successful result.

Public folder store size

The size of the data you’ll migrate is one of the most critical factors to consider before embarking on the journey. The MessageOps migrator can perform item level migration, meaning that each item is copied to Office365 using the client APIs. This imposes a limit on the throughput of data that can be migrated per hour, so one instance of the migrator will be able to move between 500Mb-1Gb of data per hour.

This means a migration could take a long time to complete. If you are trying to move a large amount of data, for example 100 Gb, you should expect it to take at best 100 hours, or 4 days to completely migrate. Large folder numbers can also be another element that can slow the migration down, as each folder needs to be individual queried and enumerated.

Folder permissions and unwanted information disclosure

As part of the folder hierarchy synchronization stage, the existing folder permissions on Exchange source folder will attempt to be replicated in Office 365. Public folder permission can be broken down into two different types:

Default (which is basically every authenticated user)
Anonymous

And then there will be entries for users and groups. For the transfer of permissions to work successfully, the user and groups need the ability to be resolved on both sides of the
migration. By default, the primary SMTP will be used, but this can be changed to use the display name of the user as an alternative.

As public folders are a shared resource between all users therefore, there is a risk if you have a public folder with sensitive information, that after migration some users maybe be able to access data they shouldn’t have access to. This is a critical migration risk that needs to be managed. The folder hierarchy and data copy stages are separate steps in the migration, and you should ensure you verify the permissions on any folders that may contain sensitive information before you commence the data copy stage of the migration, to ensure you don’t have any unwanted information disclosure.

Mail enabled folders

If you have mail enabled folders in your on-premises Exchange organization, the Exchange Migrator does have an option that can be used to migrate these setting to Office 365. For the email address to be successfully synced, the domain of the email address you want to migrate needs to be an accepted domain in Office 365. see http://technet.microsoft.com/en-us/library/jj945194(v=exchg.150).aspx

Current public folder condition and replication status

The final consideration that must be accounted for is the health of your current public folder trees and folder replicas. In more complex Exchange environments, there can be more than one public folder database hosted on different Exchange servers within your organization. Multiple replicas and replication of public folders can be configured within these stores. Therefore, the replication status between the public folder stores is critical. When performing the data migration, Exchange Migrator will log on to the on-premises Exchange Store using MAPI, and migrate data from the Public folder instance that it is referred to. If this particular folder instance is outdated or replication isn’t configured properly, then only some of the folder content will get migrated. It’s strongly recommended therefore, that if you have a multi-server environment with multiple folder replicas, you perform some health reporting to ensure there are no problems in your on-premises Exchange environment before migrating.

For more information on checking your public folder content health see http://support.microsoft.com/KB/842273

Getting started with public folder migration

Before performing a public folder migration, you need to ensure your Office 365 tenant has been set up correctly for public folders. Before you perform the migration, you need to ensure that public folders are enabled, by creating at least one public folder mailbox. See http://technet.microsoft.com/en-us/library/jj552410(v=exchg.150).aspx for details on how to do this.

On Office365, each public folder mailbox can host up to 50 GB of data. So, if you’re moving more than 50 GB of data, you need to create addition public folder mailboxes to host the data. (The process of maintaining the data over multiple mailboxes is handled automatically by Exchange). For example, if you have 100 GB of data to migrate, you should create a least three public folder mailboxes to ensure adequate data space.

Stage 1: Folder hierarchy

The first step in the process of doing a public folder migration is to sync the folder hierarchy. This process can be broken down into three separate subtasks.

migrate to office 365 from exchange, Exchange Migrator FAQs

FolderSync

The FolderSync is the first step in the folder hierarchy stage. During this process, all the folders in the on-premises Exchange environment will be enumerated. Then, a replica folder hierarchy will be created on the Office365 side. If you wish to do some test migrations with one folder, you can do this using the single folder checkbox, see (“Doing Single Folder Migrations”)

To start the FolderSync stage, you need to first select the RootPublic folder, where you want the migration to begin, as well as the destination in Office365 where you want the folder hierarchy to be created.

After you have selected both the source and destination folder, you then have the option of either enabling or disabling the folder permissions stage of the folderSync process, which is enabled by default. You can also disable the MailEnabled setting stage of the migration, which is disabled by default.

When you click the start hierarchy start button, the migrator will try to synchronize the folder hierarchy. Depending on the number of folders you have, and the complexity of the permission, this task can take some time. While it synchronizes, you will get a running verbose output in the in the hierarchy sync log, to view the full output of the log in a text editor you can use the open log button.

Folder permissions

If the migrate permission box is selected as part of the FolderSync task, Exchange Migrator will always attempt to synchronize folder permissions. The account you are using to do the migration will always be assigned explicate owner rights during the folder creation process.

These rights will be important to the data synchronization steps for the data copy to successfully complete. You may need to run a separate process to remove rights for this account to folders that have sensitive information after the migration is complete. As folder permission need to be individually processed, and in some cases resolved, this step can add significant time to folder synchronization stage.

Mail enabled folder settings

If you select the checkbox to migrate the mail enabled folder settings once the application has finished folder synchronization step, the MailEnabled settings from the OnPremise Exchange environment will be attempted to be migrated to the destination environment. To perform this migration, all the public folder proxy objects, which contains all the email address assigned to the public folders in the source environment, will first be enumerated. Then all the email addresses assigned within the destination will be enumerated. The source email address cannot be assigned to the destination folder if:

• The domain of public folder email address is not part of the accepted domains. (note some invalid proxy addresses may be assigned to an existing public folders that will cause errors during this stage).

• The address has already been assigned to another object in Office365

If the primary email address assigned to the current source folder is not able to be synchronized for the above reason the application will log an error for this.

Folder hierarchy failures

Because public folder hierarchies can be complex and hosted over multiple servers and stores, the unavailability of one of these servers and store can cause the synchronization process to fail.

Performing single folder migrations

You can perform single folder migrations with the migrator, which can be useful if you want to test the application, or if you have critical folders which you should prioritize.

When doing single folder migrations, the behaviour of the FolderSync and data copy is different. When doing a Single Folder migration – The Source Root Folder – Is the actual folder you want to migrate

The destination parent public folder – This is the parent folder, under which the source folder will be created as a subfolder. If the folder already exists in Office 365, you need to select the parent folder to successfully copy data.

Similar to the full hierarchy sync, the folder permissions and the mail enabled setting will also be migrated to the single folder.

Stage 2: Data copy

Once you have successfully created the destination folder hierarchy, you can start the data copy stage by selecting the “start data copy” button.

Data is copied one folder at time. Every folder is passed two times to ensure that any errors that occur as part of the Item level copy, that the items involved will be at least retried once before an error is returned. Like mailbox migrations client, throttling affects the migration process, the destination admin account being used will affect the rate at which items can be imported. If you want to run multiple instances of the migrator at one time, it’s important to use separate admin accounts as throttling is calculated on a per user basis. This aggregates across all connections the user creates/uses.

Large tree behaviour options

The migrator offers the ability to perform an initial pass of the first X (1000 by default) items in a folder. If you have a very large folder tree with a large number of items, this allows you to copy the most recent items in each folder first. When you select this option, it means the migrator will perform three passes of each folder. The first pass will copy the first (X) number of items, then the next pass will copy the remaining items in the folder and last pass will retry any failed items not copied in the first two.

Duplicate handling behaviour

The migrator will flag each item it imports to ensure that no item is imported more than once. However, the migrator doesn’t not perform a synchronization of the folder items. This means that that when changes are made on-premises to items after they are imported, the modified item won’t be synchronized if you run an import on the folder again.

Reporting

To aid in the migration, and checking of the migrated folder, the migrator can run multiple reports

Source folder reports – The source folder report button displays a report of the current source folder permission settings

Mail enabled folder reports – The mail enabled folder report shows the status of the mail enabled folders on the source and destination environments.

When the Exchange Migrator runs, it checks to see if the admin account specified has access to the mailbox it is operating against. If it does not, it assigns itself permission and then waits 15 minutes for the permissions to take effect. To prevent this delay, you must grant your admin account full access to your Office 365 mailboxes before running the Migrator. To do that, you must first connect to the remote PowerShell in Office 365.

How to connect to Office 365 remote PowerShell

After you are connected, run the following command to give your admin account full access to all mailboxes:

Get-Mailbox -resultsize unlimited| Add-mailboxpermission -user admin@yourdomain.com -AccessRights FullAccess -Automapping $false

Or run this command to give the account access to a single mailbox:

Add-mailboxpermission –identity user@yourdomain.com -user admin@yourdomain.com -AccessRights FullAccess -Automapping $false

To later remove the permissions, run the following command:

Get-Mailbox -resultsize unlimited| Remove-mailboxpermission -user admin@yourdomain.com -AccessRights FullAccess

This setting describes how to set the max setting on calendar items, based on how many items you want to rewrite per email. By default, it will rewrite all the address, but for messages with several hundred recipients or more, this may be too time consuming.

First go under:

HKEY_CURRENT_USER\Software\MessageOps\ExchangeMigrator

You need to create a maxAddressRewrite, and set to the maximum number of address you want rewritten. This decimal value will be the max value.

Then when you run the migrator, it should say if this key has been set in the log. You should see the following entry in the log file:

Migrator Version: MessageOps Exchange Migrator
MaxAddressRewrite set to 15

The system requirements for the Exchange Migrator:

• Outlook 2010 or 2013
• PowerShell 2.0
• The Office 365 Administrator account specified must have a mailbox
• Office 365 Kiosk Mailboxes cannot be used as a target mailbox for .pst import or as the source for a .pst export

We do not recommend running the Exchange Migrator directly on the Exchange server or older operating systems, like Windows XP or Windows 2003 server.

It is generally best to install the Exchange Migrator on a workstation running Windows 7 or Windows 8. A system with a solid state drive (SSD) will also offer some performance improvement when importing data into Office 365.

• Ensure the Exchange Migrator prerequisites are met

• Ensure you have the latest version of the Exchange Migrator

• Ensure the local admin account has a mailbox on the local Exchange server, with full access to the mailboxes being migrated. Remember that the Exchange Migrator populates the list of available source mailboxes by reading the Active Directory. It does not verify the admin account has access to the mailboxes.

• Ensure the admin account specified to connect to Office 365 is a global administrator in Office 365, with a full mailbox license assigned. A kiosk licensed admin account will not work.

• Verify that you can manually create an Outlook profile to connect to the local exchange server on the Exchange Migrator workstation, using the local admin account specified. If you can connect to the local admin mailbox, try and add the user you are attempting to migrate as an additional mailbox in the admin’s Outlook profile. This will confirm that the admin account has the necessary permissions to migrate the user’s mailbox.

• Verify that you can manually configure an Outlook profile on the workstation the Exchange Migrator is installed on, for the admin account you use to connect to Office 365. Manually setting up a profile will confirm that the autodiscover process and connectivity to Office 365 are working.

• Review the .log file for the failed import for error codes, located in: c:\users\username\MessageOps\ExchangeMigrator\logs. Common errors often include guidance messages which identify the issue and provide instructions on how to resolve.

• Search the Kaseya Knowledge Base for error codes that don’t have a message associated with them.

• If the error code is not in the Kaseya Knowledge Base, or the steps provided do not resolve the issue, please open a support ticket and attached the log files to the ticket.

This article lists the general troubleshooting steps if you are encountering problems importing .pst files to Office 365 using the Exchange Migrator.

• Ensure the Exchange Migrator prerequisites are met

• Ensure you have the latest version of the Exchange Migrator

• Ensure the admin account specified is a global administrator in Office 365, with a full mailbox license assigned. A kiosk licensed admin account will not work. You can temporarily assign the user a full mailbox license, and then swap the user back to a kiosk license to perform the import.

• Ensure you can manually configure an Outlook profile on the workstation the Exchange Migrator is installed on, for the admin account being used. Behind the scenes, the Exchange Migrator uses Outlook for some functions. Manually setting up a profile will confirm that the autodiscover process and connectivity to Office 365 are working.

• If your autodiscover record points to your on-premises Exchange Server, check the Use Direct Discover on the import screen to bypass the Autodiscover process. If it still doesn’t work, you may have to create a dedicated import account in Office 365, whose sign-in name and primary email address is the @domain.onmicrosoft.com domain associated with your account. The autodiscover record for this domain will always point to Office 365. This is often necessary if you run a hybrid configuration.

• If the migration starts and you see messages being processed, but the migration fails after running after a certain period, there are a few things you can check:

  • Try to import the same file again. If the connection is interrupted, the import can sometimes fail. But if you import the exact same .pst file, it will detect which items have been upload and not create duplicates.
  • Ensure that you are only running one version of the Exchange Migrator per workstation and Office 365 Admin account. Running multiple versions of the Exchange Migrator on a single system is not supported. If running multiple instances on different machines, ensure each is configured with a unique Office 365 admin account, to reduce throttling errors.
  • Try unchecking the box on the import screen for Use MAPI and EWS for Upload. This will force the application to only use Exchange Web Services to do the upload, which can be more reliable than using both MAPI and EWS.
  • Attempt to run Scan.pst.exe against the .PST file to see if it fixes any bugs. This can often help if the .pst came from other sources.

• Review the .log file for the failed import for error codes, which can be found in:

c:\users\username\MessageOps\ExchangeMigrator\logs

Common errors often include guidance messages which identify the issue and provide instructions on how to resolve.

• Search the Kaseya Knowledge Base for error codes that don’t have a message associated with them.

• If the error code is not in the Kaseya Knowledge Base, or the steps provided do not resolve the issue, please open a support ticket and attached the .log files to it.

If you import a .pst file or mailbox and the import does not complete, you can reupload the file or mailbox and try again. Duplicate detection in Exchange Migrator will identify and remove files that have already been uploaded. This is with the default duplicate detection of .PSTId selected. This also applies if you import data from on-premises Exchange server.

With the on-premises Exchange Migrator, the big caveat here is when a user moves or deletes messages. In this instance, these changes will not be synchronized to the user’s Office 365 mailbox if a later migration is run against their mailbox.

If you have already attempted an import with Outlook, and the messages in the .pst file originated from Exchange, you must choose the SourceKey option in the Duplicate Detection area on the options screen to prevent duplicates from being created. If the messages did not originate from Exchange, for example they came from a POP3 server, then duplicates would be created if you first tried to import with Outlook and then tried to import with the Migrator.

When launching Exchange Migrator for the first time, you will be prompted for a license key as shown below.

migrate to office 365 from exchange, Exchange Migrator FAQs

If you run the program in Demo mode, only 15 items will be imported or exported. If you are just testing the application, click ok to continue.

If you have been provided with a .elic file, click the select file button to import the license key. Once imported, the list of domains the product is licensed for should be displayed.

migrate to office 365 from exchange, Exchange Migrator FAQs

It’s important to note that in most cases, only a single domain will be listed. That domain will be associated with the admin account used to connect to the Office 365 account. That admin account will be able to export messages from any of the domains in that tenant.

If you have a specific requirement that requires multiple domains be assigned to the license key, click the create license request file to generate a .txt file. This can then be sent to MessageOps to generate a license key for your domains.

This step by step guide will walk you through how to configure your mailbox export process.

Step 1

Create a PowerShell script that imports the MessageOps Migrator Powershell module and executes the export you require:

mport-Module messageops-migrator
$ExportFolderPath = “c:\temp”
#Admin Credentials
$powerUser = “user@domain.onmicrosoft.com”
$powerPass = “passowrd”
$password = ConvertTo-SecureString $powerPass -AsPlainText -Force
$creds = New-Object -TypeName System.Management.Automation.PSCredential -argumentlist $powerUser,$password
Export-MessageOps.To.PST -DestinationDirectory $BackupFolderPath -SourceMailbox user@domai.msgdevelop.onmicrosoft.com -Credential $creds –Mailbox

(save this as export.ps1)

Step 2

Create a batch file that will execute the export scripts, for example:

PowerShell.exe -Command “. ‘c:\directory\export.ps1’
(save this as export.bat)

Step 3

Create a basic task to run the script in task scheduler:
Open the task properties when you’re finished, and make sure ‘run with highest privileges’ is selected, and that the task is configured for Windows 7, 2008 R2.

What if this doesn’t work?

Much of the time, these problems will result from the account you are trying to run the program as.

• First you should log to the machine where you have created the task with the account you are trying to run the task as.

• Next, try to load the MessageOps-Migrator cmdlets. Start PowerShell and run Import-Module messageops-migrator. The cmdlets get installed to the userprofile of the user that installed the application. So, if you log on as another user, they won’t be available. Therefore, you will need to either install the application as that user, or copy the \Documents\WindowsPowerShell\Modules\MessageOps-Exchange directory from the install user to this user.

• If that works, try to run that Migrator as this user and ensure you don’t get any licensing prompts. The Migrator stores the licensing setting in the user’s registry profile, so if this isn’t the normal user that you run the Migrator, you will have to reselect the license file. If that works, try then running the .cmd file, and see if it will run okay with no prompts.

• If that works, try to log on as another user, and manually run the task from the task schedule. Then, check the logs in the C:\Users\userName\MessageOps\ExchangeMigrator\logs of the user that task is setup to run as, and see if a .log is getting created.

The Exchange Migrator supports migrations of a .pst file from on-premises Exchange. To begin the process, click the export mailbox to .pst, from on-premises Exchange.

migrate to office 365 from exchange, Exchange Migrator FAQs

Then fill out your connection details to your local Exchange server. You can select Test MAPI Connectivity to Mailbox if you wish.

migrate to office 365 from exchange, Exchange Migrator FAQs

On the following screen is the list of options available to you.

migrate to office 365 from exchange, Exchange Migrator FAQs

Public folder export options

Select Root Folder – selects the Root Folder you want to use.

Include SubFolders – includes the SubFolders underneath the Root.

Export file options

Select Export Directory – selects the .pst file for export into.

Export Directory

• Create New File – Recommend. Creates a new file if one doesn’t exist.
• Use Existing .pst file (if exists) – This isn’t recommended, but it can be used if necessary. It can be increased as high as you want to go here but be warned, the higher you go the more likely you are to run into problems.

Email status notifications

When checked, sends an email to the person who is in the email field.

Step-by-step guide to importing .pst Files into Office 365

To import .pst files into Office, 365 choose the import .pst files option on the main screen, and click next.

migrate to office 365 from exchange, Exchange Migrator FAQs

On the next screen, you will be prompted for your administration credentials for Office 365. This account must have a mailbox.

migrate to office 365 from exchange, Exchange Migrator FAQs

• If the show mailbox size checkbox is selected, it can take much longer to load the list of mailboxes.

• In larger organizations you can use MAPI to get mailboxes from the GAL instead of Remote PowerShell. Checking this option results in a small performance improvement.

• If you have a license key for over 1000 users, you can skip getting all mailboxes via Remote PowerShell. You will then have to search for the mailboxes or use a .csv file on the next screen.

The first thing you’ll want to do is select the .pst file you want to import, by clicking the select .pst file button and browsing to the file. You then must select which mailbox you want the file imported into, by clicking the select mailbox button. If you want to import a list of .pst files, the format for the .csv is simply:

Mailbox,.pstFileName,Destination,Use.pstrootname,Useaddressrewrite
glen@office365ops.onmicrosoft.com,test..pst,Archive,True,True
import@office365ops.onmicrosoft.com,bigfile..pst,Mailbox,False,True

There is also an option to import from history, which can be used to re-load a prior job.

.pst import options

• Address rewriting

Address rewriting will rewrite the native exchange email address format (for example EX: /o=First Organization/ou=first administrative group/cn=Recipients/cn=UserName’), which are only valid in the source exchange organization to the SMTP address for the address entry if it can found within other message properties or resolved by looking at the Global Address List based on the display name of the recipient.

It’s important to note that because this is an automated process, exact address matching can never be 100% assured if GAL resolution is used and more than 1 contact has the same display name.

• Thread control

In most cases, these shouldn’t be modified, but here is what these settings control.

Max threads – The number of simultaneous TCP connections to Exchange. The Exchange server will throttle any more than 10 simultaneous connections.

Batch Size – The total number of messages that will be sent in one batch. The actual batch size will depend on the size of the messages in the batch.

• Deleted items setting

If you do not want to import the deleted items folder in the .pst, check this box.

• Folder filtering

By default, all folders in the .pst will be imported to the mailbox or archive. Use this option if you want to only upload certain folders.

• Duplicate detection

The .PSTid option should be used if you are importing a static set of .pst files, using the Exchange Migrator. This will prevent duplicates, if the exact same .pst file is imported multiple times into the same mailbox. Note, exporting a mailbox more than once to different .pst files will result in duplicates if this option is selected.

The SourceKey option uses 3 different keys for duplicate detection. It first tries the PSTid, then it uses the SourceKey, and tries the SearchKey.

When an item is copied multiple times, the SourceKey and SearchKey are ordinarily the same across multiple copies. If this is the case, Exchange Migrator will eliminate duplicated by identifying matches for either of these three keys. This should prevent duplicates if an Outlook import has been aborted using the Exchange Migrator.

• Use MAPI and EWS for upload

This setting will be automatically enabled or disabled depending on the version of Office 365 you import into. Checking this option will result in the best performance, but sometimes it is necessary to uncheck this option

• Use direct discover

This setting should be selected if the Autodiscover records aren’t set up for the domain you are trying to import .pst files into. With this setting, the Exchange Migrator will attempt to connect directly to Office 365, bypassing the Autodiscover process.

• Destination

The destination is simply whether you want to import the .pst data to your mailbox or archive.

• Destination root

The destination root controls whether a new folder is created for the .pst data. When .pst name as root is selected, a top level folder will be created in the mailbox and the .pst data will be copied to that folder. As an example, if the .pst name was matt backup, and the .pst name as root is selected, the import would create a top level folder called matt backup and the .pst data would be restored beneath that folder. Note that the .pst name is not the filename of the .ost file, it’s the name that is stored in the .PST file itself.

migrate to office 365 from exchange, Exchange Migrator FAQs

If root of store option is selected, the top level folders of the .pst files will be restored to the top level of the mailbox or archive. So, the inbox of the matt backup .pst file will be placed in the inbox folder of the mailbox.

• Destination authentication options

The destination authentication options are very important pieces of the application, and their functionality depends on what version of Office 365 your account is connected to.

o Office 365 – 2010 exchange

With the Exchange 2010 version of Office 365, the Exchange Migrator primarily used delegation to perform imports and exports into Office 365. If the Exchange Migrator detects that it is connected to the 2010 version of Office 365, the use EWS impersonation will be unchecked and the admin account specified on the previous remote PowerShell screen will be automatically granted access to the mailbox/es.

o Office 365 – 2013 exchange

With the 2013 version of Office 365, EWS impersonation must be used when working with Office 365 mailboxes, and is checked by default. The first time an operation is performed, the account specified on the previous remote PowerShell screen will be granted the Application Impersonation Role within Office 365.

The use throttle switching should also remain checked, as this will allow the application to switch during the operation between impersonation and delegation.

• Error processing

When the ignore single property errors is checked, if a property on a message is corrupt, the message will still be uploaded. This should remain checked.

• Email status notifications

If checked, you can specify an email address to send notifications to when operations complete or fail.

• Add to import queue

Once you have the .pst file and mailbox selected, you can add it to the import queue.
When all the mailboxes are queued for migration, click the start import button.

Need Personalized Help? Contact Our Team Today!

How to export Office 365 mailboxes to .PST Files from Exchange Online

To export Office 365 mailboxes to .PST files from Exchange Online, choose the Export to .pst from Exchange Online on the main screen, and click next.

migrate to office 365 from exchange, Exchange Migrator FAQs

On the next screen you will be prompted for your Office 365 admin credentials. This account must have a mailbox.

migrate to office 365 from exchange, Exchange Migrator FAQs

• If the show mailbox size checkbox is selected, it can take much longer to load the list of mailboxes.

• In larger organizations, you can use MAPI to get mailboxes from the GAL instead of Remote PowerShell. Checking this option results in a small performance improvement.

• If you have a license key for over 1000 users, you can skip getting all mailboxes via Remote PowerShell. You will then have to search for the mailboxes or use a .csv file on the next screen.

The next screen has several options which are described below:

migrate to office 365 from exchange, Exchange Migrator FAQs

Click the select mailbox button to select the mailbox(es) that need to be fixed, and click select mailbox to add the mailboxes to the export list.

• Use Ctrl-A to select all mailboxes, or hold down Ctrl to select multiple mailboxes

migrate to office 365 from exchange, Exchange Migrator FAQs

• If you wish to import a list of mailboxes using a .csv file, the format should be:

SourceMailbox,ExportDirectory,ExportMailbox,ExportArchive
info@messageops.com,c:\.psts,true,false
support@messageops.com,c:\.psts,true,false

• You can also use the load from history button to load a previous list of mailboxes that were queued to be fixed.

• Once a mailbox, or group of mailboxes, is selected you can choose to export the mailbox, archive, or dumpster. You can select one of these options or a combination.

• The use direct discover checkbox should be selected if the Autodiscover record for the domain is not pointing to Office 365. If selected, the Exchange Migrator will attempt to connect directly to Office 365, bypassing the autodiscover process.

• In the export file options area, click the select export directory button, to define where the .pst files should be exported to.

• You can either create a new .pst file, or use an existing .pst file. If you choose an existing .pst file, it will not import duplicate items (assuming the .PST file was created by Exchange Migrator). You can use the existing .pst option to resume a failed or interrupted migration.

• The final option is to select the size at which a .pst file should be split. The default size is 20,000 which equates to 20 GB.
• Once the options are selected click the add to export queue button to queue up the exports. If you are ready to export the archive, click the start export button.

When the export starts, if you get prompted for a username and password, enter the Office 365 Administrator username you entered previously on the remote PowerShell Screen and check the box to remember the credentials. You must check the box to remember the credentials when prompted or the export won’t work.

An important note about exporting .pst files from Office 365 2013

When exporting mailboxes to .pst files from Office 365, the admin account is automatically granted access to the mailbox. That access is then removed when the export is complete. With the 2010 version of Office 365, this permission change took place almost immediately. In 2013, it can take several minutes. If you try and connect before the permissions are applied, it seems to take even longer before you can access the mailbox. If permissions don’t exist, we will still add them, but we will wait 15 minutes before trying to access the mailbox after doing so. If you are performing a large number of exports, we highly recommend adding the permissions ahead of time to avoid this delay.

Grant full access to all mailboxes

To grant full access to a mailbox in Office 365, you must first connect to the remote PowerShell, by typing the 3 commands in your local PowerShell:

$o365cred=get-credential

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $o365cred -Authentication Basic -AllowRedirection

Import-PSSession $session

After you are connected, run the following command to give your admin account full access to all mailboxes:

Get-Mailbox -resultsize unlimited| Add-mailboxpermission -user admin@yourdomain.com -AccessRights FullAccess -Automapping $false

To later remove the permissions, run the following command:

Get-Mailbox -resultsize unlimited| Remove-mailboxpermission -user admin@yourdomain.com -AccessRights FullAccess

7,000 companies can't be wrong. MessageOps is your trusted cloud service provider.

Ready to get started?

Get in touch today to unlock the full potential of your Microsoft investment.

Get started

Want to find out more? Contact us