- Accueil
- Workspace
- Installation
- Enterprise
- Docker
- Migrer les données MS Exchange vers ONLYOFFICE
Migrer les données MS Exchange vers ONLYOFFICE
Introduction
Cet article explique comment transférer des données de MS Exchange vers ONLYOFFICE. Actuellement, les types de données suivants peuvent être transférés :
- utilisateurs,
- boîtes mail,
- messages électroniques.
Dans les prochaines versions, nous prévoyons de prendre en charge les données suivantes :
- calendriers,
- contacts,
- tâches.
Exporter les données depuis MS Exchange
Lancer le service nécessaire
Vérifiez d'abord que le service Microsoft Exchange Mailbox Replication (MSExchangeMailboxReplication) est en cours d'exécution. Exécutez la commande suivante dans la console cmd :
Get-Service -name MSExchangeMailboxReplication
Si le service requis est en cours d'exécution, la commande renvoie un résultat de ce type :
Status Name DisplayName
------ ---- -----------
Running MSExchangeMailb... Microsoft Exchange Mailbox Replication
Vous pouvez également, sous Windows, ouvrir Control Panel > Administrative Tools > Services (Panneau de configuration > Outils d'administration > Services), rechercher le service Microsoft Exchange Mailbox Replication et le lancer.
Attribuer les droits
Attribuez les droits d'administrateur à l'utilisateur qui exportera les boîtes mail depuis MS Exchange :
New-ManagementRoleAssignment –Role "Mailbox Import Export" –User <user name>
Où <user name> désigne le nom de l'utilisateur qui exportera les données. Si vous réalisez l'exportation vous-même, attribuez ce rôle à votre propre compte.
New-ManagementRoleAssignment –Role "Mailbox Import Export" –User JohnEnsuite, redémarrez la console Exchange Web Services (EWS) avec les droits d'administrateur. Pour ce faire, faites un clic droit sur l'icône EWS dans le menu Start (Démarrer) et sélectionnez l'option Run as administrator (Exécuter en tant qu'administrateur).
Exécuter le script
Téléchargez maintenant le script qui effectuera tout le nécessaire pour exporter correctement les données depuis MS Exchange. Le script est disponible via ce lien. Une fois le téléchargement terminé, exécutez le script dans la console EWS :
.\ExportExchangeData.ps1 -dir "C:\Temp"
Où .\ExportExchangeData.ps1 désigne le chemin d'accès au script et -dir "C:\Temp" le chemin d'accès au dossier qui servira à exporter les fichiers.
-dir est partagé avec tout le monde. Ce partage est nécessaire au bon fonctionnement de la commande New-MailboxExportRequest. Une fois le script terminé, le partage du dossier est supprimé.Le dossier contenant les fichiers exportés doit ensuite être transféré vers l'ordinateur sur lequel ONLYOFFICE est installé.
PST créés contiennent les bonnes données, vous pouvez utiliser l'outil gratuit pst-viewer.- Le script commence par créer le dossier défini par le paramètre
-dirci-dessus. Si ce paramètre est absent, le dossier par défautC:\Tempest utilisé. - Une fois créé, le dossier est partagé avec tout le monde, afin que la commande
New-MailboxExportRequestpuisse fonctionner correctement. - Le script vérifie ensuite si le fichier destiné à la liste des utilisateurs a déjà été créé et le supprime le cas échéant. La liste des utilisateurs est exportée à l'aide de la commande suivante :
Get-Mailbox | Select DisplayName, PrimarySmtpAddress, Alias | Export-Csv $usersListPath - Le dossier destiné aux boîtes mail est ensuite créé, l'ancien étant supprimé s'il existe. L'exportation des boîtes mail des utilisateurs démarre alors. Elle prend un certain temps, selon le nombre d'utilisateurs, la taille de leurs boîtes mail et les données contenues dans leurs messages. Les boîtes mail et les messages sont enregistrés au format PST dans le sous-dossier
\PST\du répertoire défini précédemment par le paramètre-dir. Depuis les autres ordinateurs du réseau, ce dossier apparaît sous la forme\\ServerName\Temp\PST\. - Enfin, le partage du dossier est supprimé et le script s'achève.
Certaines erreurs peuvent survenir pendant l'exécution du script. Les plus fréquentes sont présentées ci-dessous, accompagnées de leurs solutions.
-
Erreur #1
The name must be unique per mailbox. There isn't a default name available for a new request owned by mailbox 'mailbox.local/folder/user'. Please clean up existing requests by using the Remove cmdlet or specify a unique name. + CategoryInfo : InvalidArgument: (mailbox.local/folder/user:MailboxOrMailUserIdParameter)[New-MailboxExportRequest], NoAvailableDefaultNamePermanentException + FullyQualifiedErrorId : [Server=ServerName,RequestId=4a67e451-556c-4ba0-9ab9-9d2ce8a120ff,TimeStamp=11/7/2017 9:46:58 AM] [FailureCategory=Cmdlet-NoAvailableDefaultNamePermanentException] 7B0B3FF9, Microsoft.Exchange.Management.Migration.MailboxReplication.MailboxExportRequest.NewMailboxExportRequest + PSComputerName : servername.mailbox.localSolution
Exécutez la commande suivante :
Get-MailboxExportRequest | Remove-MailboxExportRequest -
Erreur #2
New-MailboxExportRequest : The term 'New-MailboxExportRequest' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. At line:1 char:39 + ... oreach ($Mailbox in (Get-Mailbox)) { New-MailboxExportRequest -Mailbo ... + ~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (New-MailboxExportRequest:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundExceptionSolution
Redémarrez la console EWS et assurez-vous de l'exécuter avec les droits d'administrateur.
-
Erreur #3
\\ServerName\Temp\PST\user.pst The server or share name specified in the path may be invalid, or the file could be locked. + CategoryInfo : NotSpecified: (:) [New-MailboxExportRequest], RemotePermanentException + FullyQualifiedErrorId : [Server=ServerName,RequestId=40efdbf2-53bf-47e8-92b8-f8fa8a8f15db,TimeStamp=11/7/2017 9:55:48 AM] [FailureCategory=Cmdlet-RemotePermanentException] 94719DAF, Microsoft.Exchange.Management.Migration.MailboxReplication.MailboxExportRequest.NewMailboxExportRequest + PSComputerName : servername.mailbox.localSolution
Le dossier
\\ServerName\Temp, celui qui sert à l'exportation des boîtes mail et qui est défini par le paramètre-dirdu script, doit être partagé en lecture et en écriture. Si vous l'avez déjà partagé, vérifiez qu'il n'est pas partagé en écriture seule et modifiez les droits d'accès en conséquence.
Importer les données MS Exchange dans ONLYOFFICE
Installer ONLYOFFICE Workspace Édition Entreprise et configurer le serveur de messagerie
Installez la version Docker de ONLYOFFICE Workspace Édition Entreprise. Pour ce faire, installez ONLYOFFICE Workspace Édition Entreprise à l'aide du script et sélectionnez l'option d'installation sous Docker. Configurez ensuite le serveur de messagerie comme décrit dans cet article.
users.csv obtenu à l'étape précédente, en y remplaçant toutes les occurrences de l'ancien domaine MS Exchange par le nouveau. Utilisez pour cela la commande suivante :
sed -i 's/exchange-domain.com/new-domain.com/g' users.csv
Où exchange-domain.com désigne l'ancien nom de domaine utilisé avec MS Exchange et new-domain.com le nouveau nom de domaine que vous allez utiliser.
Télécharger le script et installer ou mettre à jour les dépendances
Vous devez maintenant télécharger et décompresser le script qui réalisera l'importation des données. Utilisez pour cela la commande suivante :
wget -O "ImportExchangeData.tar" "https://help.onlyoffice.com/products/files/httphandlers/filehandler.ashx?action=view&fileid=5549294&version=0&doc=TWVPQks1aUo2MEprc0tkbUF6K2Y4Um1OSi9tTkd6V0lyTHFocG0xZHE0QT0_IjU1NDkyOTQi0" && tar -xvf ImportExchangeData.tar && cd ./Import
Cette commande télécharge et décompresse le fichier, en créant l'arborescence de dossiers suivante :
Import
|-lib
|---create_users.py
|---mbox2imap.py
|---mapping.json
|---pst2mbox.sh
|---get-mailboxes.sh
|---install-passfinder.sh
|---ASC.Mail.PasswordFinder.tar
|-ImportExchangeData.py
|-requirements.txt
Python v2.7 doit être installé. Il l'est souvent par défaut sur diverses distributions Linux, mais s'il est absent, vous devrez l'installer vous-même. Voici comment procéder sur les distributions basées sur Debian :
# apt install python
# python -V
Python 2.7.12
Installez le gestionnaire de paquets pip, lui aussi nécessaire au bon fonctionnement du script :
# apt install python-pip
# pip -V
pip 9.0.1 from /usr/local/lib/python2.7/dist-packages (python 2.7)
Installez enfin les autres paquets requis :
pip install -r requirements.txt
Exécuter le script
Vous pouvez maintenant exécuter le script en indiquant les paramètres nécessaires :
./ImportExchangeData.py -d "<portal domain>" -u "<portal administrator email>" -pw "<portal administrator password>" -f <path to the folder with the exported data>
-s "https" lors de l'exécution du code.Remplacez les paramètres entre crochets par les données de votre propre portail, puis exécutez le script :
./ImportExchangeData.py -d myportal.com -u "my.email.address@gmail.com" -pw "123456" -f /root/Temp/Attendez la fin de l'exécution du script. Celle-ci peut prendre un certain temps, selon le nombre d'utilisateurs et le volume de leurs données.
Résultats de l'exécution du script
Une fois le script terminé, les résultats sont les suivants :
- les nouveaux utilisateurs du portail sont créés avec les adresses email issues du fichier
users.csv; - les boîtes mail sont créées sur ONLYOFFICE Mail Server ; elles contiennent les messages provenant de MS Exchange et sont connectées dans le module Mail d'ONLYOFFICE pour les utilisateurs répertoriés dans le fichier
users.csv; - le fichier
results-ok.txtest enregistré dans le dossierImport; il contient la liste de tous les comptes d'utilisateurs du fichierusers.csvqui ont été créés avec succès, ainsi que leurs mots de passe ; - le fichier
result-err.txtest enregistré dans le dossierImport; il contient la liste de tous les comptes d'utilisateurs du fichierusers.csvqui ont posé problème lors de l'importation et de la création ; - le fichier
mailboxes.json, au formatJSON, est enregistré dans le dossierImport; il contient la liste des paramètres nécessaires pour se connecter aux boîtes mail nouvellement créées depuis des clients de messagerie tiers.
ImportExchangeData.py et exécutez la commande suivante :
bash ./lib/get-mailboxes.sh -j
Le fichier mailboxes.json est alors écrasé et remplacé par les données des nouvelles boîtes mail.
- Au lancement, le script définit les principaux fichiers et dossiers de travail : à la fois ceux qui sont nécessaires aux fichiers de sortie et le dossier contenant les données d'entrée exportées depuis MS Exchange.
- À l'étape suivante, le script crée les utilisateurs, puis leurs boîtes mail.
- Le script convertit ensuite les fichiers exportés au format
mbox. - Cela fait, le script installe le programme
ASC.Mail.PasswordFinder, qui aide à créer le fichiermailboxes.jsoncontenant la liste des paramètres nécessaires pour se connecter aux boîtes mail nouvellement créées depuis des clients de messagerie tiers. - Le fichier
mailboxes.jsonlui-même est ensuite créé. - Enfin, les fichiers au format
mboxsont importés dans les boîtes mail via IMAP.