- Accueil
- Workspace
- Installation
- Installation
- Docker
- Migrer des données MS Exchange vers ONLYOFFICE
Migrer des données MS Exchange vers ONLYOFFICE
Introduction
Cet article fournit des informations sur le transfert de données depuis MS Exchange vers ONLYOFFICE. À présent, le transfert des données suivantes est pris en charge:
- utilisateurs,
- boîtes mail,
- courriels.
Dans les futures versions, on va prendre en charge les données suivantes:
- calendriers,
- contacts,
- tâches.
Exporter des données depuis MS Exchange
Lancer le service approprié
Tout d'abord, vérifiez que le service Microsoft Exchange Mailbox Replication (ou MSExchangeMailboxReplication) soit lancé. Exécutez la commande suivante depuis la console cmd:
Get-Service -name MSExchangeMailboxReplication
Si le service est déjà exécuté, la commande retourne le résultat suivant:
Status Name DisplayName------ ---- -----------Running MSExchangeMailb... Microsoft Exchange Mailbox Replication
Ou passez à Windows Control Panel - Administrative Tools - Services, recherchez et lancer Microsoft Exchange Mailbox Replication.
Attribuer les droits
Attribuez les droits d'administrateur à l'utilisateur qui va exporter les boîtes mail depuis MS Exchange:
New-ManagementRoleAssignment –Role "Mailbox Import Export" –User <user name>
Où <user name>
est le nom de l'utilisateur qui exportera des données. Si c'est vous qui allez réaliser l'exportation, attribuez les droit à votre compte.
New-ManagementRoleAssignment –Role "Mailbox Import Export" –User John
Ensuite, redémarrez la console Exchange Web Services (EWS) en mode administrateur. Pour ce faire, cliquez avec le bouton droit de la souris sur l'icône EWS du menu Démarrer et sélectionnez Exécuter en tant qu'administrateur (Run as administrator).
Exécuter le script
Maintenant, téléchargez le script qui va effectuer l'exportation des données depuis MS Exchange. Le script est disponible ici. Une fois téléchargé, exécutez le script depuis la console EWS:
.\ExportExchangeData.ps1 -dir "C:\Temp"
Où .\ExportExchangeData.ps1
est le chemin d'accès au script et -dir "C:\Temp"
est le chemin d'accès au dossier qui sera utilisé pour exporter les données.
-dir
sera partagé avec tous pendant l'exécution du script. Cela est nécessaire pour le bon déroulement de la commande New-MailboxExportRequest
. Lorsque le script se termine, le dossier ne sera plus partagé.Il faut transférer le dossier avec les fichiers exportés à l'ordinateur sur lequel ONLYOFFICE est installé.
PST
, vous pouvez utiliser l'outil gratuit pst-viewer .- Premièrement le script créera un dossier que vous avez indiqué dans la commande
-dir
. Dans le cas ce dossier manquant, le dossier par défautC:\Temp
sera utilisé. - Une fois créé, le dossier sera partagé avec tous pour le bon déroulement de la commande
New-MailboxExportRequest
. - Ensuite, le script va vérifier si le dossier comportant la liste d'utilisateurs a été déjà créé, va supprimer le dossier s'il s'en trouve et va exporter la liste d'utilisateurs dans le nouveau dossier en utilisant la commande:
Get-Mailbox | Select DisplayName, PrimarySmtpAddress, Alias | Export-Csv $usersListPath
- Après cela, le dossier pour les boîtes mails sera créé (le dossier existant sera supprimé, si disponible) et l'exportation de la boîte email de l'utilisateur va démarrer. Il faudra du temps en fonction du nombre d'utilisateurs, leurs boîtes et le contenu des courriels. les boîtes et les messages seront sauvegardés au format PST dans le dossier
\PST\
(celui-ci se présente comme ça\\ServerName\Temp\PST\
pour d'autres ordinateurs du réseau) du répertoire que vous avez indiqué dans la commande-dir
. - Enfin, le partage du dossier sera annulé et le scripte se terminera.
Certains erreurs peuvent donc survenir pendant l'exécution du script. Les erreurs les plus fréquentes sont décrits ci-dessous.
Erreur #1
Le nom de la boîte mail doit être unique. Le nom par défaut n'est pas disponible pour une nouvelle requête de la boîte mail 'mailbox.local/folder/user'. Veuillez nettoyer des requêtes existants en utilisant Remove cmdlet ou indiquez un nom unique. + 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 : la notion 'New-MailboxExportRequest' n'est pas reconnu comme un cmdlet, une fonction, un fichier script ou un programme exécutable. Vérifiez l'orthographe du nom, ou vérifiez le chemin d'accès, s'il y en a et essayez encore une fois. 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 vérifiez si vous êtes en mode 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-ci qui est utilisé pour l'exportation des boîtes mail et qui est indiqué dans la commande-dir
) doit être partagé en lecture seul et en écriture. Si vous avez déjà partagé le dossier, vérifiez si l'accès est en écriture seule et corrigez par conséquence.
Importer des données MS Exchange vers ONLYOFFICE
Installer ONLYOFFICE Workspace Enterprise Edition et configurer le serveur de messagerie
Installez la version Docker de ONLYOFFICE Workspace Enterprise Edition. Pour ce faire, installez ONLYOFFICE Workspace Enterprise Edition en utilisant le script et sélectionnez l'installation sous Docker. Ensuite, installez le serveur de messagerie comme il est décrit ici.
users.csv
(que vous avez reçu à l'étape précédent) en remplaçant toutes les occurrences de l'ancien nom de domaine MS Exchange par ce nouveau nom. Pour ce faire, utilisez la commande suivante:
sed -i 's/exchange-domain.com/new-domain.com/g' users.csv
Où exchange-domain.com
est l'ancien nom de domaine de MS Exchange et new-domain.com
est le nouveau nom de domaine que vous allez utiliser.
Télécharger le script et installer/mettre à jour les dépendances
Vous devez télécharger et décompresser le script qui va effectuer le processus d'importation. Pour ce faire, utilisez la commande:
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 va télécharger et décompresser le fichier et va créer la structure de dossier 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
Vous devez installer Python v2.7. Il est parfois installé par défaut avec la plupart des distributions Linux, mais s'il est manquant, installez-le vous-même. C'est comme ça qu'on fait pour les distributions basées sur Debian:
# apt install python# python -VPython 2.7.12
Installez pip (gestionnaire de paquets ), qui est aussi nécessaire pour le 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)
Installer les autres paquets requis:
pip install -r requirements.txt
Exécuter le script
Maintenant, vous pouvez exécuter le script en indiquant les paramètres suivants:
./ImportExchangeData.py -d "<portal domain>" -u "<portal administrator email>" -pw "<portal administrator password>" -f <path to the folder with the exported data>
-s "https"
pendant l'exécution du code.Remplacez les paramètres entre crochets par les données de votre portail et exécutez le script:
./ImportExchangeData.py -d myportal.com -u "my.email.address@gmail.com" -pw "123456" -f /root/Temp/
Attendez pour que le script se termine. Il faudra du temps en fonction du nombre d'utilisateurs et la quantité de leurs données.
Résultats du script
Les résultats du script seront les suivants:
- création de nouveaux utilisateurs du portail avec des adresses email depuis le fichier
users.csv
; - création des boîtes mails sur le serveur de messagerie ONLYOFFICE Mail Server, comportant des messages depuis MS Exchange et connexion des utilisateurs du fichier
users.csv
au module ONLYOFFICE Mail; - enregistrement du fichier
results-ok.txt
dans le dossierImport
, celui-ci comportera la liste de tous les comptes d'utilisateurs du fichierusers.csv
et leurs mots de passe; - enregistrement du fichier
result-err.txt
dans le dossierImport
, celui-ci comportera la liste de tous les comptes d'utilisateurs du fichierusers.csv
ayant des difficultés pendant l'importation ou la création; - enregistrement du fichier
mailboxes.json
au formatJSON
dans le dossierImport
, celui-ci comportera la liste des paramètres pour connecter les nouvelles boîtes mails qui étaient créées à partir des clients de messagerie tiers.
ImportExchangeData.py
et exécutez la commande:
bash ./lib/get-mailboxes.sh -j
Le fichier mailboxes.json
sera écrasé avec de nouvelles données de boîtes mail.
- Lors de l'exécution, le script indiquera les fichiers et les dossiers principaux nécessaires aux fichiers de sortie et le dossier comportant des données entrées (qui ont été exportées depuis MS Exchange).
- À l'étape suivante le script créera les utilisateurs et ensuite leurs boîtes mail.
- Ensuite, le script va convertir les fichiers exportés au format
mbox
. - Une fois terminé, le script va installer le programme
ASC.Mail.PasswordFinder
qui servira à créer le fichiermailboxes.json
comportant la liste des paramètres nécessaires à connecter de nouvelles boîtes mail à partir de clients de messagerie tiers. - Après cela, le
mailboxes.json
lui-même est créé. - Et enfin, les fichiers au format
mbox
seront importés vers les boîtes mail via IMAP.