Office365 – Exchange Import de fichiers PST

o365-logo.jpg

Lors de projets de migration de messagerie à destination de la suite Office 365, il est courant de devoir importer des fichiers au format PST, qu’il s’agissent d’une boite aux lettres toujours configurée en POP3 ou un simple PST d’archives.

Nous allons voir comment se déroule l’import de ceux-ci dans une BAL ou une archive en ligne Office 365.

Sommaire

Depuis quelle console ?

Historiquement l’opération d’import des PST est a réalisé depuis la console “protection.office.com”.

Depuis quelques temps, cette console a été séparée en deux parties :

  • Une pour la gestion de la sécurité de Microsoft 365 (security.microsoft.com).
  • Une seconde pour la gestion de la donnée d’Office 365 (compliance.microsoft.com).

Dans ce post, les manipulation seront réalisées depuis la “nouvelle” console “compliance.microsoft.com”. Si vous souhaiter utiliser la console “protection.microsoft.com”, aucun souci, les menus sont assez proches et les fonctionnalités restent es même.

Protection.office.com

Comme expliqué ci-dessus, vous pouvez utiliser la console “protection.office.com” accessible à l’adresse :

https://protection.office.com/

Se rendre dans “Information governance” –> “Import” –> “Import PST Files”.

O365-ImportPST_0005
Import PST depuis protection.office.com
Compliance.microsoft.com

Depuis la console “compliance.microsoft.com”, accessible à l’adresse :

https://compliance.microsoft.com/

Se rendre dans “Information governance” –> “Import”.

Import PST depuis compliance.office.com

Dans le reste de ce post, nous utiliserons cette console.

Permission Exchange pour Import

Nativement, l’import de PST dans des BAL n’est pas autorisé. Il est nécessaire de créer un nouveau rôle dans Exchange ou d’en modifier un déjà existant.

Cette limitation est visible depuis les deux consoles par le message suivant :

To create import jobs, you must be assigned the Mailbox Import Export role in Exchange Online. After this role is assigned, it might take up to 24 hours before you can start creating jobs.

Console “protection.office.com”

Console “compliance.microsoft.com”

Pour ce faire, se rendre dans la console de management d’Exchange Online :

https://admin.exchange.microsoft.com/

Se rendre dans “Roles” –> “Admin roles”. Cliquer sur “Add role group”.

O365-ImportPST_0020
Add role group

Nommer le nouveau rôle, donner une description et sélectionner le scope (ici “Default”, ce qui donne accès l’ensemble des mailboxs du tenant).

O365-ImportPST_0030
Setup new role

Dans la liste des permissions exchange disponible, sélectionner “Mailbox Import Export”.

Add permissions

Sélectionner les comptes auquel vous souhaitez attribuer ce nouveau rôle.

O365-ImportPST_0050
Add users

Cliquer sur “Add role group” pour terminer la création du nouveau rôle.

Add role group

Le rôle est créé.

O365-ImportPST_0080
Rôle ajouté

Notre nouveau rôle est présent, il est possible d’y ajouter des nouveau membres, ou des permissions supplémentaires depuis cet même interface.

La prise en compte des permissions ajoutées par ce rôle peut mettre jusqu’à 24h pour être effectives. Je n’ai pas chronométrer, mais je peux confirmer que ce n’est pas immédiat.

Création du job d'import

L’import des PST dans les différentes mailboxs se découpe en 4 étapes :

  • Récupération de l’URL du blob de dépôt et téléchargement d’AzCopy.
  • Copie des PST dans le blob.
  • Création du fichier de mapping PST –> Mailboxs.
  • Import des PST dans les mailboxs.
Récupération de l'URL du blob de dépôt et téléchargement d'AzCopy

Dans cette étapes, nous allons initialiser la création d’un nouveau job d’import afin de récupérer l’URL où déposer les fichiers PST et télécharger l’utilitaire AzCopy.

 

Se rendre dans la console compliance Office 365 :

https://compliance.microsoft.com/

Se rendre dans “Information governance” –> “Import”. Et cliquer sur “New import job”.

Si vous rencontrez le message :

To create import jobs, you must be assigned the Mailbox Import Export role in Exchange Online. After this role is assigned, it might take up to 24 hours before you can start creating jobs.

C’est que le compte que vous utilisez n’a pas les permissions d’importer les PST. Se référer à la partie : “Permission Exchange pour Import”.

O365-ImportPST_n1010
New import job

Nommer le nouveau job d’import.

Nous réalisons un import de fichier PST, Sélectionner “Upload your data”.

Notons que Microsoft propose l’import de PST depuis un device physique. utile pour les gros volume de PST. Nous ne traiterons pas ce cas dans ce post.

O365-ImportPST_n1030
Upload your data

Dans l’étape suivante, nous allons récupérer l’URL du blob où seront déposés nos fichiers PST puis télécharger l’utilitaire AzCopy.

Ci-dessous le lien du guide Microsoft pour l’import :

https://docs.microsoft.com/en-us/microsoft-365/compliance/importing-pst-files-to-office-365?view=o365-worldwide#BKMK_NetworkUpload

Cliquer sur “Show network upload SAS URL” pour générer l’URL du blob.

Puis sur “Download Azure AzCopy” pour télécharger l’utilitaire AzCopy.

Dès que l’URL est générée, cliquer sur “Copy to clipboard” et conserver l’URL dans un notepad.

Cette URL contient le token d’accès au blob. Ce token donne uniquement le droit de lister le contenu du dépôt et d’ajouter des nouveaux fichiers.

Une fois l’utilitaire AzCopy téléchargé, vous pouvez l’installer sur la machine qui réalisera le transfert des PST vers le blob. De preference une machine avec un accès rapide aux fichiers PST et un accès à internet (connexion au blob) disposant d’une bande passante élevé si possible.

Vous pouvez fermer cet assistant en cliquant sur “Cancel”, nous créerons un nouveau job une fois les fichiers PST transférés et le fichier de mapping créé.

Microsoft ne support que la version de l’utilitaire AzCopy fournis dans le lien de téléchargement.

Le blob de dépôt des fichiers PST est unique au tenant. Une fois que celui-ci a été généré et l’URL récupérée il n’est pas nécessaire de générer une URL à chaque import.

Transfert des PST (AzCopy)

Le transfert des fichiers PST sur le blob ne peut être réalisé uniquement à partir de l’utilitaire AzCopy. L’utilitaire Azure Storage Explorer ne fonctionne pas pour l’import, il sera utilisé plus tard à des fins de vérifications.

Sur la machine où AzCopy a été installé, lancer Powershell en tant qu’admin. AzCopy n’est pas ajouté dans la path lors de son installation, il est donc nécessaire de se déplacer dans le répertoire d’installaton de celui-ci (nativement : “C:\Program Files (x86)\Microsoft SDKs\Azure\AzCopy”).

Il est possible de lancer plusieurs fois l’utilitaire AzCopy à partir de répertoire contenant des fichiers PST différents. Seul des répertoires et non des fichiers sont pris en charge par l’attribut source. Eviter d’avoir une arborescence de répertoire contenant des fichiers PST. déposer tous les de préférence PST dans le même répertoire. Si vous avec des sous-répertoires, vous pouvez utiliser l’option “/S” d’AzCopy.

Il est vivement recommander d’avoir un nommage claire des fichiers PST. Ceux-ci simplifiera la création du fichier de correspondance entre PST et mailboxs.

Pour ce post, nous allons importer 2 fichiers PST, l’un correspondant à une mailbox et le second à une archive.

$Src = "C:\Temp\ImportPST"
$Dest = "https://monblob.xxxxx"
$Log = "c:\temp\azcopy.log"

Set-Location "C:\Program Files (x86)\Microsoft SDKs\Azure\AzCopy"
Get-ChildItem $Src
.\AzCopy.exe /Source:$Src /Dest:$Dest /V:$Log /Y

Le fichier de log est plutôt utile en cas de souci.

Microsoft déconseille l’import de fichiers PST de plus de 20Go.

Visualiser contenu du blob

A des fins de vérifications uniquement, il est possible d’utiliser l’utilitaure “Azure Storage Explorer” pour explorer le contenu du blob de dépôts des PST.

Azure Storage Explorer peut être téléchargé à l’adresse :

https://azure.microsoft.com/en-us/features/storage-explorer/

Dès que l’utilitaire “Azure Storage Explorer” a été téléchargé et installé, naviguez dans :

“Local & Attached” –> “Storage Accounts”. Puis clic droit et cliquer “Connect to Azure storage

Sélectionner : “Use a shared access signature (SAS) URI”

Nommer votre stockage et renseigner l’URL du blob que vous avez utilisé dans les étapes précédentes.

Puis pour finir, “Connect”.

Nous pouvons a partir d’Azure Storage Explorer visualiser les fichiers PST importés.

Les fichiers PST sont conservés 30 jours après le dernier job d’import. Ils sont automatiquement supprimé passé l’échéance.

Création du fichier de mapping entre PST et Mailbox

Maintenant que les fichier PST sont transférés, nous allons créer un fichier de correspondence entre le fichier PST et la mailbox dans lequel il va devoir être déversé.

Pour ce faire, Microsoft fourni un exemple de fichier de mapping. Vous pouvez le récupérer à l’adresse suivante :

https://go.microsoft.com/fwlink/p/?LinkId=544717

Vous trouverez toute la documentation sur le format du fichier sur le site de Microsoft :

https://docs.microsoft.com/fr-fr/microsoft-365/compliance/use-network-upload-to-import-pst-files?view=o365-worldwide#step-4-create-the-pst-import-mapping-file

Le fichier est découpé en dix colonnes :

  • Workload : le service concerné, Exchange dans notre cas.
  • FilePath : chemin dans le blob où se situe le fichier, laissé à vide pour la racine.
  • Name : le fichier PST à importer.
  • Mailbox : le nom de la BAL où doit être fait l’import.
  • IsArchive : boolean $true ou $false si l’import est à réaliser dans l’archive en ligne de la BAL ou dans la BAL directement.
  • TargetRootFolder : répertoire de destination de l’import dans la BAL (laissé à vide dans cet  exemple).
  • ContentCodePage : Permet de spécifier le code de la langue du PST source.
  • SPFileContainer : Non utilisé pour les import de PST.
  • SPManifestContainer : Non utilisé pour les import de PST.
  • SPSiteUrl : Non utilisé pour les import de PST.

L’ensemble des colonnes sont décrites dans le lien mentionné ci-dessus.

Dans notre cas, voici le fichier de mappage que j’utilise :

Workload,FilePath,Name,Mailbox,IsArchive,TargetRootFolder,ContentCodePage,SPFileContainer,SPManifestContainer,SPSiteUrl
Exchange,,b.nugues@teddycorp.net.pst,b.nugues@teddycorp.net,FALSE,,,,,
Exchange,,b.nugues@teddycorp.net-Archives.pst,b.nugues@teddycorp.net,TRUE,,,,,

Dans les grandes lignes : service Exchange ; a la racine du blob ; je prends le fichier PST et je l’import dans le recipiend correspondant.

Notons la valeur FALSE en première ligne et TRUE en seconde permet de spécifier si l’import à lieu dans la boite de l’utilisateur où dans son archive en ligne.

L’absence de valeur pour l’attribut “TargetRootFolder” importera le contenu dans un répertoire nommé “Imported”. Vous pouvez vous référer  la documentation mentionnée plus haut pour avoir l’ensemble des détails. Personnellement, je préfère laisser cette valeur à vide, ce qui me permet de contrôler de ce qui a été importé dans la BAL et me prénumir d’éventuelle souci de langue.

Vous pouvez ajuster la valeur “TargetRootFolder” du fichier de mapping selon vous attentes, dans cette exemple, celui-ci a été laissé à vide et créé un répertoire “Imported” dans la mailbox contenant les données importées. Si vous souhaitez importer les données à leur emplacement d’origine, spécifier la valeur “/”.

O365-ImportPST_user0030

De plus lors de l’utilisation de “/”,  il est nécessaire de vérifier la langue de la mailbox source et destination afin que les répertoires tel que “Boite de réception” soient importé dans un répertoire du même nom et non “Inbox”.

https://docs.microsoft.com/en-us/outlook/troubleshoot/user-interface/incorrect-folder-names#method-3

get-MailboxRegionalConfiguration
set-MailboxRegionalConfiguration
Finalisation de la création du job

Nous sommes désormais prêt à lancer l’import.

Pour ce faire, retourner dans “Information governance” –> “Import”. Et cliquer sur “New import job”.

Créer votre job d’import identique à celui que nous avons déjà créé dans l’étape :

Création du job et récupération de l’URL du blob

Nous nous étions arrêter à cette étape ci.

Maintenant nous pouvons cocher les options suivantes :

  • I’m done uploading my files.
  • I have access to the mapping file.
Ready

Dans l’étape suivante, nous allons ajouter le fichier de mappage entre PST et Mailboxs que nous avons créé à l’étape précédente.

O365-ImportPST_n1080
Mapping

Puis cliquer sur “Validate” afin de vérifier notre user mapping.

OK

Si les tests du fichier de mappage sont bons, vous pouvez passer à l’étape suivante. Qui n’est que le resumé du job d’import avant de le soumettre. Cliquer sur “Submit”.

Review
Done
Lancer l'import

Le job d’import des PST va lancer un pré-traitement des PST avant de lancer l’import. Phase d’analyse, qui a deux états :

  • Analyse (in progress)
  • Analyse (completed)

Nous pouvons suivre son avancement dans la liste des jobs.

O365-ImportPST_n1102
Work in progress

Après quelques minutes, l’analyse est terminée “Analyse (completed)”, les données sont prêtes à être importées.

Cliquer sur “Import to Office 365”.

O365-ImportPST_n1103
Ready to import

A ce moment ci, vous avez la possibilité de filtrer les données que vous souhaitez importer.

Dans ce cas si, je ne vais pas filtrer, car je souhaites importer l’ensembles de données.

Mais vous êtes en mesure de n’importer que les données qui sont plus récentes de 2 ans ou autre.

O365-ImportPST_n1104
Ready to import

Voici les différents filtres disponibles si vous souhaitez les appliquer.

O365-ImportPST_n1105
Review
Submit

Voilà, l’import est belle et bien en cours. Vous pouvez monitorer son avancement en cliquant sur le job. Cette étape va durée quelques minutes /heures selon la volumétrie à traiter.

Plusieurs états sont possible :

  • Import (in progress)
  • Import (completed)
  • Import (completed with error)
  • Import (completed with skipped items)
O365-ImportPST_n1107
Import en cours

Après environ 1 heure pour 1.2Go, l’import est terminé.

Nous pouvons voir le status du job passé en “Completed with skipped items” dans notre test (effet démo).

Il est possible de télécharger le log, mais je n’ai pas trouver d’informations permettant d’identifier précisément les fichiers qui ne serait pas passés.

O365-ImportPST_n1108
Import terminé
O365-ImportPST_n1109
Fichier de logs

Du coté du temps que prend l’importation, j’ai noté plus de 12h pour des PST d’environ 30 à 50Go.

Résultat de l'import coté utilisateur

Dans cet exemple nous avons importé deux fichiers PST, le premier dans la mailbox de l’utilisateur et un second dans l’archive en ligne de ce même utilisateur.

Ci-dessous, la boite mail avant l’import :

O365-ImportPST_user0010
Etat initial

Ci-dessous, la boite mail après l’import :

O365-ImportPST_user0020
Après import

Dans les deux cas, nous pouvons constaté que les mails et les répertoires ont été importés. Comme expliqué lors de la phase de mapping, le PST a été déversé dans le répertoire “Imported”.

Pour rappel :

O365-ImportPST_user0030
TargetRootFolder

Conclusion

Comme toutes technologie, il faut quelques tests avant de maitriser la technologie.

Dans ce post nous avons utilisé des fichiers PST de petite volumétrie, celà permet d’avoir un temps de traitement de l’ordre de l’heure. Si les PST sont plus volumineux, il n’est pas rare qui l’import se prolonge sur de nombreuses heures. Dans l’ensemble l’import fonctionne très bien. Notons tout de même qu’il est important d’avoir une bande passante sortante conséquente pour la copie des PST sur le blob Microsoft.

Ne pas négliger la bande passante entre le client de messagerie et Office 365, l’import coté 0fiice 365 peut engendrer un téléchargement des emails sur le client.