- Inicio
- Workspace
- Instalación
- Empresa
- Docker
- Migración de datos de MS Exchange a ONLYOFFICE
Migración de datos de MS Exchange a ONLYOFFICE
Introducción
Este artículo mostrará cómo puede transferir los datos de MS Exchange a ONLYOFFICE. Actualmente se admiten los siguientes tipos de datos para la transferencia:
- usuarios,
- buzones de correo,
- mensajes de correo.
En las próximas versiones, planeamos agregar soporte para los siguientes datos:
- calendarios,
- contactos,
- tareas.
Exportar datos de MS Exchange
Ejecutar el servicio necesario
Primero, debe asegurarse de que el servicio Microsoft Exchange Mailbox Replication (o MSExchangeMailboxReplication) esté iniciado. Ejecute el siguiente comando en la consola cmd:
Get-Service -name MSExchangeMailboxReplication
Si el servicio que necesita está en ejecución, el resultado del comando será similar a este:
Status Name DisplayName
------ ---- -----------
Running MSExchangeMailb... Microsoft Exchange Mailbox Replication
O puede ir al Panel de Control de Windows - Herramientas Administrativas - Servicios, encontrar el Microsoft Exchange Mailbox Replication y ejecutarlo.
Asignación de derechos
Asigne los derechos administrativos al usuario que va a exportar los buzones de correo de MS Exchange:
New-ManagementRoleAssignment –Role "Mailbox Import Export" –User <nombre de usuario>
Dónde <nombre de usuario> es el nombre del usuario que va a exportar los datos. Si va a hacerlo usted mismo, asigne este rol a su cuenta.
New-ManagementRoleAssignment –Role "Mailbox Import Export" –User JohnDespués de eso, reinicie la consola de Exchange Web Services (EWS) con derechos de administrador. Esto se hace haciendo clic en el icono de EWS en el menú de inicio con el botón derecho del ratón y seleccionando la opción Ejecutar como administrador.
Ejecutar el script
Ahora descargue el script que hará todo lo necesario para la correcta exportación de los datos de MS Exchange. El script está disponible aquí. Una vez descargado, ejecútelo en la consola de EWS:
.\ExportExchangeData.ps1 -dir "C:\Temp"
Dónde .\ExportExchangeData.ps1 es la ruta al script, y -dir "C:\Temp" es la ruta a la carpeta que se usará para exportar los archivos.
-dir se compartirá para todos. Esto es necesario para el correcto funcionamiento del comando New-MailboxExportRequest. Después de que el script termine su trabajo, el uso compartido se eliminará de la carpeta.La carpeta con los archivos exportados luego debe ser transferida al ordenador con ONLYOFFICE instalado.
PST creados tienen los datos correctos, puede usar la herramienta gratuita pst-viewer para hacerlo.- Primero, el script crea la carpeta establecida con el parámetro
-dirarriba. En caso de que falte el parámetro, se usará la carpeta predeterminadaC:\Temp. - Una vez creada, la carpeta se comparte para todos, de modo que el comando
New-MailboxExportRequestpueda funcionar correctamente. - Luego, el script verifica si el archivo para la lista de usuarios ha sido creado previamente, lo elimina si se encuentra y la lista de usuarios se exporta a él usando el comando:
Get-Mailbox | Select DisplayName, PrimarySmtpAddress, Alias | Export-Csv $usersListPath - Después de eso, se crea la carpeta para los buzones de correo (la antigua se eliminará, si está presente), y comienza la exportación del buzón de correo del usuario. Esto tomará algún tiempo dependiendo del número de usuarios, sus buzones y los datos presentes en sus mensajes de correo. Los buzones y mensajes se guardarán en el formato PST en la carpeta
\PST\(se verá como\\ServerName\Temp\PST\para otros ordenadores a través de la red) del directorio previamente establecido con el comando-dir. - Finalmente, se elimina el uso compartido de la carpeta y el script termina su trabajo.
Durante el trabajo del script pueden ocurrir algunos errores. A continuación se presentan los más frecuentes y las formas de resolver los problemas.
-
Error #1
El nombre debe ser único por buzón de correo. No hay un nombre predeterminado disponible para una nueva solicitud propiedad del buzón 'mailbox.local/folder/user'. Por favor, limpie las solicitudes existentes usando el cmdlet Remove o especifique un nombre único. + 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.localSolución
Ejecute el siguiente comando:
Get-MailboxExportRequest | Remove-MailboxExportRequest -
Error #2
New-MailboxExportRequest : El término 'New-MailboxExportRequest' no se reconoce como el nombre de un cmdlet, función, archivo de script o programa operable. Verifique la ortografía del nombre, o si se incluyó una ruta, verifique que la ruta sea correcta e intente nuevamente. At line:1 char:39 + ... oreach ($Mailbox in (Get-Mailbox)) { New-MailboxExportRequest -Mailbo ... + ~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (New-MailboxExportRequest:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundExceptionSolución
Reinicie la consola de EWS y asegúrese de ejecutarla con derechos de administrador.
-
Error #3
\\ServerName\Temp\PST\user.pst El nombre del servidor o recurso compartido especificado en la ruta puede ser inválido, o el archivo podría estar bloqueado. + 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.localSolución
La carpeta
\\ServerName\Temp(la que se utiliza para la exportación del buzón y se establece con el parámetro del script-dir) debe estar compartida para acceso de lectura y escritura. Si la compartiste previamente, verifica si solo tiene acceso de escritura y cambia el acceso correctamente.
Importar los datos de MS Exchange a ONLYOFFICE
Instalación de ONLYOFFICE Workspace Enterprise Edition y configuración del Servidor de Correo
Instala la versión Docker de ONLYOFFICE Workspace Enterprise Edition. Esto se puede hacer instalando ONLYOFFICE Workspace Enterprise Edition usando el script y seleccionando la variante de instalación Docker. Después de eso, configura el servidor de correo como se indica aquí.
users.csv (que se obtuvo en el paso anterior), reemplazando todas las entradas del antiguo dominio de MS Exchange por el nuevo. Esto se hace con el siguiente comando:
sed -i 's/exchange-domain.com/new-domain.com/g' users.csv
Donde exchange-domain.com es el nombre del dominio antiguo usado con MS Exchange, y new-domain.com es el nuevo que vas a utilizar ahora.
Descargar el script e instalar/actualizar dependencias
Ahora necesitas descargar y descomprimir el script que realizará el proceso de importación de datos. Esto se puede hacer usando el comando:
wget -O "ImportExchangeData.tar" "https://help.onlyoffice.co/products/files/httphandlers/filehandler.ashx?action=view&fileid=5549294&version=0&doc=TWVPQks1aUo2MEprc0tkbUF6K2Y4Um1OSi9tTkd6V0lyTHFocG0xZHE0QT0_IjU1NDkyOTQi0" && tar -xvf ImportExchangeData.tar && cd ./Import
El comando descargará y descomprimirá el archivo, creando la siguiente estructura de carpetas:
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
Necesitarás tener instalado Python v2.7. A menudo se instala por defecto con varias distribuciones de Linux, pero en caso de que falte, tendrás que instalarlo tú mismo. Así es como se hace para distribuciones basadas en Debian:
# apt install python
# python -V
Python 2.7.12
Instala el pip (gestor de paquetes), también necesario para el correcto funcionamiento del script:
# apt install python-pip
# pip -V
pip 9.0.1 from /usr/local/lib/python2.7/dist-packages (python 2.7)
Y instala los otros paquetes requeridos:
pip install -r requirements.txt
Ejecutar el script
Ahora puedes ejecutar el script especificando los parámetros necesarios:
./ImportExchangeData.py -d "<portal domain>" -u "<portal administrator email>" -pw "<portal administrator password>" -f <path to the folder with the exported data>
-s "https" al ejecutar el código.Reemplaza los parámetros entre corchetes con los datos de tu propio portal y ejecuta el script:
./ImportExchangeData.py -d myportal.com -u "my.email.address@gmail.com" -pw "123456" -f /root/Temp/Espera a que el script termine de trabajar. Puede tardar algún tiempo dependiendo del número de usuarios y la cantidad de sus datos.
Resultados del trabajo del script
Cuando el script realiza todo lo que se propone, los resultados serán los siguientes:
- se crearán los nuevos usuarios del portal con las direcciones de correo del archivo
users.csv; - se crearán los buzones en el Servidor de Correo de ONLYOFFICE, que tendrán los mensajes de correo de MS Exchange y estarán conectados en el módulo Correo de ONLYOFFICE para los usuarios listados en el archivo
users.csv; - el archivo
results-ok.txtse guardará en la carpetaImport, contendrá la lista de todas las cuentas de usuario del archivousers.csvy sus contraseñas, que se crearon con éxito; - el archivo
result-err.txtse guardará en la carpetaImport, contendrá la lista de todas las cuentas de usuario del archivousers.csv, que tuvieron problemas cuando fueron importadas y creadas; - el archivo
mailboxes.jsonen formatoJSONse guardará en la carpetaImport, contendrá la lista de configuraciones necesarias para conectar a los nuevos buzones desde los clientes de correo de terceros.
ImportExchangeData.py y ejecuta el comando:
bash ./lib/get-mailboxes.sh -j
El archivo mailboxes.json será sobrescrito con los datos de los nuevos buzones.
- Al ejecutarse, el script configura los archivos y carpetas de trabajo principales: tanto para los archivos y carpetas necesarios para los archivos de salida como para la carpeta con los datos de entrada (que se han exportado de MS Exchange).
- En el siguiente paso, el script crea los usuarios y luego sus buzones.
- Luego, el script convierte los archivos exportados al formato
mbox. - Cuando termina, el script instala el programa
ASC.Mail.PasswordFinderque ayudará a crear el archivomailboxes.jsonque contiene la lista de configuraciones necesarias para conectar a los nuevos buzones desde los clientes de correo de terceros. - Después de eso, se crea el propio
mailboxes.json. - Y finalmente, los archivos en formato
mboxse importan a los buzones a través de IMAP.