Hi Guys,

Today, I have started to use the new “PST import” process for O365. It is much quicker and reliable than using Outlook.

Here is how to use it :

  1. Install Azure tools
  2. Get credentials to connect to your Azure storage
    1. Connect to the O365 portal admin
    2. On the left click on the “IMPORT” button
    3. Click on the Key
    4. A new window called “Secure key and URL” open
    5. Select the button “Copy the key” and “Copy the secure network upload URL”
    6. These are your credentials to connect to your azure storage (never share the key).
  3. Upload your pst to Azure
    1. Launch a powershell console
    2. Go to C:\Program Files(x86)\Microsoft SDKs\Azure\Azcopy
    3. Launch the command : “.\Azcopy.exe /source:SharePathToPSTFiles /dest:SecureNetworkUploadURL/Folder/ /destkey:Key /S /V:LogFilePath\Logfile.log
  4. Upload your pst file from Azure to the mailbox or the archive
    1. Start the tool called “Azure Storage Explorer”, this tool give you a view of your azure storage
    2. Click on “Add Account”
    3. A new window open,
      1. Let “Cloud Storage Account” ticked
      2. Enter your account name which is the part between “https://” and “.blob.core.windows.net” of your destination URL. In my case, it is : “ee33215c499641ac8362756”
      3. Enter your “storage account key” which is the secure key. In my case, it is : “v9s7HzoABZPJxBZFAzeWMSrTZmra80ZERVIMfX8Xa0WTUEHw0joyHpyt+aIElBskG2UZ+N7N/4Jm4+nuJ7MRZf==”
      4. Let “Microsoft Azure Default” ticked
      5. Let the “Storage endpoints domain” set to “core.windows.net”
      6. Tick “Use HTTPS”
      7. Click on “Test Access” and if successful, click on “Save”
      8. You’re now connected to your azure storage
    4. Select the pst file you want to upload and click on “Security” on the left
    5. Go to “Shared Access signatures” tab and click on “Generate Signature”
    6. Copy what is below the “?” character and start by “sv=”. In my case, it is : “sv=2014-02-14&sr=c&sig=k5uDAdKOgPb0COzS9BWTT%2F9PjSP5c2M%2BQoXJwRVPeOQ%3D&st=2015-12-21T23%3A00%3A00Z&se=2015-12-29T23%3A00%3A00Z&sp=r” (this signature is valid for all items in this Blob)
    7. Launch a PowerShell console, connect to Exchange Online and type the following command : “New-MailboxImportRequest -Mailbox TargetMailboxIdentity -AzureBlobStorageAccountUri ‘https://SecureNetworkUploadURL/Folder/PSTFileName.pst‘ -AzureSharedAccessSignatureToken FileSignature -Name “Folder/PSTFileName.pst” -TargetRootFolder “/” -BatchName “MigrationBatchName” -BadItemLimit 50
      • If you want to upload the PST to the online archive of the user, add the parameter “-IsArchive”.
      • If you want to upload the pst into a special folder, set the parameter “TargetRootFolder” with the folder path (Like “Archive_2011”).
      • A complete example : “New-MailboxImportRequest -Mailbox nigel.smith@pontoonsolutions.com -AzureBlobStorageAccountUri ‘https://ee33215c499641ac8362756.blob.core.windows.net/ingestiondata/Nigel/NigelSmith_mailbox.pst’ -AzureSharedAccessSignatureToken “sv=2014-02-14&sr=c&sig=k5uDAdKOgPb0COzS9BWTT%2F9PjSP5c2M%2BQoXJwRVPeOQ%3D&st=2015-12-21T23%3A00%3A00Z&se=2015-12-29T23%3A00%3A00Z&sp=r” -Name “Nigel/NigelSmith_mailbox.pst” -TargetRootFolder “/” -BatchName “NigelMigration” -BadItemLimit 50″
  5. Then you can run the command “Get-MailboxImportRequest -BatchName NigelMigration | Get-MailboxImportRequestStatistics” to get the status of your batch.

If a folder with the same name exist, the process will merge and not create duplicates.

It is not as easy as it was with an on-prem Exchange but it is good that Microsoft proposed this workaround.

Enjoy 🙂