Office 365: Import Mail da PST

Microsoft Office 365

Se avete la necessità di importare massivamente file PST esistono 2 strade. La prima è quella di inviare i dati al Datacenter mentre la seconda, che tratteremo, è quella di caricare i file PST tramite internet al fine di renderli disponibili per l’importazione in un’area di memorizzazione temporanea nel cloud Microsoft.

Figura 1 – Upload PST Files

Importare i file Tramite Network Upload

In primo luogo dovete assegnare il ruolo Mailbox Import Export in Exchange Online in modo da poter importare i PST nelle relative mailbox. Per maggiori informazioni vedere Add a role to a role group.

Creare una Condivisione di Rete per i file PST

Nel vostro ambiente, creare una share che chiamerete PSTshareSID. La cartella servirà come container per tutti i file che verranno successivamente caricati nello storage dedicato su Azure. Condividere la cartella e settare le permission NTFS richieste.

Figura 2 – Share Folder

Assegnare il Ruolo Mailbox Import Export

Per poter utilizzare l’opzione di migrazione dei PST, dovremo assegnare l’autorizzazione richiesta all’account utente che eseguirà l’attività di migrazione. In Exchange Online admin center, selezionare permissions poi admin roles e fare doppio click sul ruolo Compliance Management.

Figura 3 – Compliance Management

Aggiungere il ruolo Mailbox Import Export e poi aggiungere in members il nome dell’account che si occuperà del processo di migrazione dei PST.

Figura 4 – Add Role & Members

Nota: l’assegnazione delle autorizzazioni di Exchange Online può richiedere fino a un’ora.

Il processo di migrazione dei PST è basato sul principio in cui vengono caricati e archiviati i file PST nello “storage di Office 365” e da questo spazio verranno importati i dati (i file PST) in specifiche mailbox di Exchange Online. Lo spazio dedicato, che verrà creato appositamente in riferimento al nostro tenant, sarà rappresentato da un URL la cui unicità sarà associata ad una chiave alfanumerica e denominata Shared Access Signature. Questa chiave viene generata una sola volta e deve essere conservata per utilizzi futuri.

Localizzare e Copiare SAS

Accedendo al portale di amministrazione selezionare Upload data over the network.

Figura 5 – Upload PST

Nello screenshot seguente possiamo notare l’URL SAS (Shared Access Signature). Questa chiave fornisce le autorizzazioni necessarie per caricare i file PST nello storage su Azure. L’url sarà simile a questo: https://xxxxxxxxxxxxxxxa4ff29f.blob.core.windows.net/ingestiondata?sv=2012-02-12&se=2017-06-09T09%3A24%3A51Z&sr=c&si=IngestionSasForAzCopy20170510xxxxx463390&sig=nYsWxxxxxk1arREPsnJe55I1h30tl2Wy1RAYXXXxxxXXMAc%3D

Figura 6 – SAS URL

Download e Installazione di Azure AZCopy Tool

Allo step 3 scaricare e installare Azure AzCopy. Assicurarsi di installare il tool AzCopy nella posizione predefinita (% ProgramFiles (x86)%\Microsoft SDKs\Azure) in un computer che esegue Windows a 64 bit. Questo perché se si desidera crittografare i file PST prima che vengano caricati in Office 365, lo strumento O365ImportTool.exe che viene eseguito per crittografarli, cercherà AzCopy in quella posizione.

Figura 7 – AzCopy Shell

Ora tutto è pronto per poter caricare i file PST su Azure e renderli disponibili al tenant Office 365. La sintassi e i parametri del comando sono le seguenti: AzCopy.exe /Source:<Location of PST files> /Dest:<SAS URL> /V:<Log file location> /Y

Quindi nel nostro caso sarà una simile a quanto mostrato nella figura 8 (attenzione alle “virgolette” e a mettere il log nella stessa cartella dei PST).

Figura 8 – CMD Line

La tabella seguente descrive i parametri ed i valori richiesti.

ParameterDescriptionExample
/Source:Specifies the source directory in your organization that contains the PST files that will be uploaded to Office 365./Source:\\FILESERVER01\PSTs
/Dest:Specifies the SAS URL that you obtained in Step 1.

Be sure to surround the value of this parameter with double-quotation marks (” “).

TIP: (Optional) You can specify a subfolder in the Azure storage location to upload the PST files to. You do this by adding a subfolder location (after “ingestiondata”) in the SAS URL. The first example doesn’t specify a subfolder; that means the PSTs will be uploaded to the root (named ingestiondata) of the Azure storage location. The second example uploads the PST files to a subfolder (named PSTFiles) in the root of the Azure storage location.

/Dest:”https://3c3e5952a2764023ad14984.blob.core.windows.net/ingestiondata?sv=2012-02-12&se=9999-12-31T23%3A59%3A59Z&sr=c&si=IngestionSasForAzCopy201601121920498117&sig=Vt5S4hVzlzMcBkuH8bH711atBffdrOS72TlV1mNdORg%3D”

Or

/Dest:”https://3c3e5952a2764023ad14984.blob.core.windows.net/ingestiondata/PSTFiles?sv=2012-02-12&se=9999-12-31T23%3A59%3A59Z&sr=c&si=IngestionSasForAzCopy201601121920498117&sig=Vt5S4hVzlzMcBkuH8bH711atBffdrOS72TlV1mNdORg%3D”

/V:Outputs verbose status messages into a log file. By default, the verbose log file is named AzCopyVerbose.log in %LocalAppData%\Microsoft\Azure\AzCopy. If you specify an existing file location for this option, the verbose log will be appended to that file./V:C:\Users\Admin\Desktop\Uploadlog.log
/SThis optional switch specifies the recursive mode so that the AzCopy tool will copy PSTs files that are located in subfolders in the source directory that is specified by the /Source: parameter.

NOTE: If you include this switch, PST files in subfolders will have a different file pathname in the Azure storage location after they’re uploaded. You’ll have to specify the exact file pathname in the CSV file that you create in Step 4.

/S

Dopo aver eseguito il comando, vengono visualizzati i messaggi di stato che mostrano lo stato di avanzamento del caricamento dei file PST. Un messaggio di stato finale indicherà il numero totale di file che sono stati caricati correttamente.

** update: con le versioni più recenti di azcopy è necessario aggiungere /Y al comando. In caso contrario verrà restituito l’errore “This request is not authorized to perform this operation using this permission.
HttpStatusMessage:This request is not authorized to perform this operation using this permission.”

Microsoft Azure Storage Explorer

Come step opzionale è possibile installare Microsoft Azure Storage Explorer ( strumento free e open source) per poter visualizzare lo stato di avanzamento di quanto caricato verso il blob Azure. Scaricare ed installare  Microsoft Azure Storage Explorer tool. Alla prima esecuzione selezionare “Use a shared access signature (SAS)” poi Next e alla schermata successiva selezionare “Use a SAS URI” poi Next e Connetti.

Figura 9 – AzCopy – Use SAS

Nota: Al termine dell’utilizzo di Microsoft Azure Storage Explorer, fare clic con il pulsante destro del mouse sull’oggetto “ingestiondata” e quindi scegliere Detach per disconnettersi dall’area di memorizzazione di Azure.

Figura 10 – ASE Detach

Preparazione del File CSV (PST user mapping)

Per poter “informare” il portale di Office 365 su quali file PST verranno importati nelle rispettive mailbox utente dovremo utilizzare un file CSV. Nella parte successiva, mostreremo un semplice scenario in cui configureremo il file CSV per mappare un particolare file PST ad una specifica mailbox utente. E’ possibile scaricare un file CSV di esempio da questo link FILE CSV.

Il file di importazione presenta la seguente struttura: Workload,FilePath,Name,Mailbox,IsArchive,TargetRootFolder,SPFileContainer,SPManifestContainer,SPSiteUrl Exchange,SERVER01/PSTshareR1,cy13.pst,user1@contoso.com,FALSE,user1_outlookfiles_cy13,,, Exchange,SERVER01/PSTshareR1,sent12.pst,user2@contoso.com,FALSE,user2_outlookfiles_sent12,,, Exchange,SERVER01/PSTshareR1,analyzer.pst,user2@contoso.com,TRUE,user2_outlookfiles_analyzer,,, Exchange,SERVER01/PSTshareR1,archive.pst,user2@contoso.com,TRUE,user2_outlookfiles_archive,,,

In seguito i parametri utilizzabili:

ParameterDescriptionExample
WorkloadSpecifies the Office 365 service that data will be imported to. To import PST files to user mailboxes, use Exchange.Exchange
FilePathSpecifies the folder location in the Azure storage location that you uploaded the PST files to in Step 2.

If you didn’t include an optional subfolder name in the SAS URL in the /Dest: parameter in Step 2, leave this parameter blank in the CSV file. If you included a subfolder name, specify it in this parameter (see the second example). The value for this parameter is case sensitive.

Either way, don’t include “ingestiondata” in the value for the FilePath parameter.

IMPORTANT: The case for the file path name must be the same as the case you used if you included an optional subfolder name in the SAS URL in the /Dest: parameter in Step 2. For example, if you used PSTFiles for the subfolder name in Step 2 and then use pstfiles in the FilePath parameter in CSV file, the import for the PST file will fail. Be sure to use the same case in both instances.

(leave blank)

Or

PSTFiles

NameSpecifies the name of the PST file that will be imported to the user mailbox. The value for this parameter is case sensitive.

IMPORTANT: The case for the PST file name in the CSV file must be the same as the PST file that was uploaded to the Azure storage location in Step 2. For example, if you use annb.pst in the Name parameter in the CSV file, but the name of the actual PST file is AnnB.pst, the import for that PST file will fail. Be sure that the name of the PST in the CSV file uses the same case as the actual PST file.

annb.pst
MailboxSpecifies the email address of the mailbox that the PST file will be imported to.

To import a PST file to an inactive mailbox, you have to specify the mailbox GUID for this parameter. To obtain this GUID, run the following PowerShell command in Exchange Online: Get-Mailbox -InactiveMailboxOnly <identity of inactive mailbox> | FL Guid

NOTE: In some cases, you might have multiple mailboxes with the same email address, where one mailbox is an active mailbox and the other mailbox is in a soft-deleted (or inactive) state. In these situations, you have specify the mailbox GUID to uniquely identify the mailbox to import the PST file to. To obtain this GUID for active mailboxes, run the following PowerShell command: Get-Mailbox – <identity of active mailbox> | FL Guid. To obtain the GUID for soft-deleted (or inactive) mailboxes, run this command Get-Mailbox – <identity of soft-deleted or inactive mailbox> -SoftDeletedMailbox | FL Guid.

annb@contoso.onmicrosoft.com

Or

2d7a87fe-d6a2-40cc-8aff-1ebea80d4ae7

IsArchiveSpecifies whether or not to import the PST file to the user’s archive mailbox. There are two options:

  • FALSE   Imports the PST file to the user’s primary mailbox.
  • TRUE   Imports the PST file to the user’s archive mailbox.

If you leave this parameter blank, the PST file is imported to the user’s primary mailbox.

NOTE: To import a PST file to a cloud-based archive mailbox for a user whose primary mailbox is on-premises, just specify TRUE for this parameter and specify the email address for the user’s on-premises mailbox for the Mailbox parameter.

FALSE

Or

TRUE

TargetRootFolderSpecifies the mailbox folder that the PST file is imported to.

  • If you leave this parameter blank, the PST will be imported to a new folder named Imported located at the root level of the mailbox (the same level as the Inbox folder and the other default mailbox folders).
  • If you specify /, items in the PST file will be imported directly in to the user’s Inbox folder.
  • If you specify /<foldername>, items in the PST file will be imported to a folder named <foldername>. For example, if you use /ImportedPst, items would be imported to a folder named ImportedPst. This folder will be located in the user’s mailbox at the same level as the Inbox folder.

TIP: Consider running a few test batches to experiment with this parameter so you can determine the best folder location to import PSTs files to.

(leave blank)

Or

/

Or

/ImportedPst

ContentCodePageThis optional parameter specifies a numeric value for the code page to use for importing PST files in the ANSI file format. This parameter is used for importing PST files from Chinese, Japanese, and Korean (CJK) organizations because these languages typically use a double byte character set (DBCS) for character encoding. If this parameter isn’t used to import PST files for languages that use DBCS for mailbox folder names, the folder names are often garbled after they’re imported.

For a list of supported values to use for this parameter, see Code Page Identifiers.

NOTE: As previously stated, this is an optional parameter and you don’t have to include it in the CSV file. Or you can include it and leave the value blank for one or more rows.

(leave blank)

Or

932 (which is the code page identifier for ANSI/OEM Japanese)

SPFileContainerFor PST Import, leave this parameter blank.Not applicable
SPManifestContainerFor PST Import, leave this parameter blank.Not applicable
SPSiteUrlFor PST Import, leave this parameter blank.Not applicable

La figura 11 mostra come si presenta il file CSV che useremo come test.

Figura 11 – CSV

Se non viene specificato nulla in TargetRootFolder verrà creata una cartella “import”.

Pianificare il Job di Importazione (Import Job)

Una volta loggati come amministratori al portale torniamo nella sezione Setup, Data Migration, Upload PST files e poi su “Upload email message (PST)” e spuntiamo I’m done uploading my files e I have access to the mapping file.

Figura 12 – Done

Nella schermata successiva indichiamo un nome per il job di migrazione, nella successiva sarà possibile fare l’upload del file CSV e la sua validazione.

Figura 13 – CSV Upload

Dal momento in cui clicchiamo su Finish il processo di importazione inizierà secondo il mapping fornito.

Conclusioni

Abbiamo visto come eseguire un’operazione che, in alcuni casi, può sembrare lunga e laboriosa soprattutto per gli ambienti piccoli che non possono acquistare software di migrazione.