- Home
- Workspace
- Instalação
- Empresa
- Docker
- Migrando dados do MS Exchange para o ONLYOFFICE
Migrando dados do MS Exchange para o ONLYOFFICE
Introdução
Este artigo mostrará como você pode transferir os dados do MS Exchange para o ONLYOFFICE. Atualmente, os seguintes tipos de dados são suportados para transferência:
- usuários,
- caixas de correio,
- mensagens de e-mail.
Nas próximas versões, planejamos adicionar suporte para os seguintes dados:
- calendários,
- contatos,
- tarefas.
Exportar dados do MS Exchange
Executando o serviço necessário
Primeiramente, você precisa garantir que o serviço Microsoft Exchange Mailbox Replication (ou MSExchangeMailboxReplication) esteja em execução. Execute o seguinte comando no console cmd:
Get-Service -name MSExchangeMailboxReplication
Se o serviço necessário estiver em execução, o resultado do comando será assim:
Status Name DisplayName
------ ---- -----------
Running MSExchangeMailb... Microsoft Exchange Mailbox Replication
Ou você pode ir ao Painel de Controle do Windows - Ferramentas Administrativas - Serviços, encontrar o Microsoft Exchange Mailbox Replication e executá-lo.
Atribuindo os direitos
Atribua os direitos administrativos ao usuário que fará a exportação das caixas de correio do MS Exchange:
New-ManagementRoleAssignment –Role "Mailbox Import Export" –User <user name>
Onde <user name> é o nome do usuário que fará a exportação dos dados. Se você mesmo for fazer isso, atribua este papel à sua conta.
New-ManagementRoleAssignment –Role "Mailbox Import Export" –User JohnDepois disso, reinicie o console do Exchange Web Services (EWS) com direitos de administrador. Isso é feito clicando no ícone do EWS no menu iniciar com o botão direito do mouse e selecionando a opção Executar como administrador.
Executando o script
Agora baixe o script que fará tudo o que você precisa para a exportação correta dos dados do MS Exchange. O script está disponível aqui. Uma vez baixado, execute-o no console EWS:
.\ExportExchangeData.ps1 -dir "C:\Temp"
Onde .\ExportExchangeData.ps1 é o caminho para o script, e -dir "C:\Temp" é o caminho para a pasta que será usada para exportar os arquivos.
-dir será compartilhada para todos. Isso é necessário para o funcionamento correto do comando New-MailboxExportRequest. Após a conclusão do script, o compartilhamento será removido da pasta.A pasta com os arquivos exportados precisa então ser transferida para o computador com o ONLYOFFICE instalado.
PST criados tenham os dados corretos, pode usar a ferramenta gratuita pst-viewer para isso.- Primeiramente, o script cria a pasta definida com o parâmetro
-diracima. Caso o parâmetro esteja ausente, a pasta padrãoC:\Tempserá usada. - Uma vez criada, a pasta é compartilhada para todos, para que o comando
New-MailboxExportRequestpossa funcionar corretamente. - Em seguida, o script verifica se o arquivo para a lista de usuários foi criado anteriormente, o deleta se encontrado e a lista de usuários é exportada para ele usando o comando:
Get-Mailbox | Select DisplayName, PrimarySmtpAddress, Alias | Export-Csv $usersListPath - Depois disso, a pasta para as caixas de correio é criada (a antiga será removida, se presente), e a exportação das caixas de correio do usuário começa. Isso levará algum tempo, dependendo do número de usuários, suas caixas e os dados presentes em suas mensagens de e-mail. As caixas e mensagens serão salvas no formato PST na pasta
\PST\(parecerá\\ServerName\Temp\PST\para os outros computadores na rede) do diretório previamente definido com o comando-dir. - Finalmente, o compartilhamento é removido da pasta e o script termina seu trabalho.
Durante a execução do script, alguns erros podem ocorrer. Abaixo estão os mais frequentes e as maneiras de resolver os problemas.
-
Erro #1
O nome deve ser único por caixa de correio. Não há um nome padrão disponível para uma nova solicitação de propriedade da caixa de correio 'mailbox.local/folder/user'. Limpe as solicitações existentes usando o cmdlet Remove ou especifique um nome ú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.localSolução
Execute o seguinte comando:
Get-MailboxExportRequest | Remove-MailboxExportRequest -
Erro #2
New-MailboxExportRequest : O termo 'New-MailboxExportRequest' não é reconhecido como o nome de um cmdlet, função, arquivo de script ou programa operável. Verifique a ortografia do nome ou, se um caminho foi incluído, verifique se o caminho está correto e tente novamente. At line:1 char:39 + ... oreach ($Mailbox in (Get-Mailbox)) { New-MailboxExportRequest -Mailbo ... + ~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (New-MailboxExportRequest:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundExceptionSolução
Reinicie o console EWS e certifique-se de executá-lo com direitos de administrador.
-
Erro #3
\\ServerName\Temp\PST\user.pst O nome do servidor ou compartilhamento especificado no caminho pode ser inválido, ou o arquivo pode 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.localSolução
A pasta
\\ServerName\Temp(aquela usada para a exportação da caixa de correio e definida com o parâmetro de script-dir) deve ser compartilhada para acesso de leitura e escrita. Se você a compartilhou anteriormente, verifique se ela possui apenas acesso de escrita e altere o acesso corretamente.
Importar os dados do MS Exchange para o ONLYOFFICE
Instalando ONLYOFFICE Workspace Enterprise Edition e configurando o servidor de e-mail
Instale a versão Docker do ONLYOFFICE Workspace Enterprise Edition. Isso pode ser feito instalando o ONLYOFFICE Workspace Enterprise Edition usando o script e selecionando a variante de instalação Docker. Após isso, configure o servidor de e-mail conforme descrito aqui.
users.csv (que foi obtido na etapa anterior), substituindo todas as entradas do antigo domínio do MS Exchange pelo novo. Isso é feito com o seguinte comando:
sed -i 's/exchange-domain.com/new-domain.com/g' users.csv
Onde exchange-domain.com é o antigo nome de domínio usado com o MS Exchange, e new-domain.com é o novo que você está prestes a usar.
Baixando o script e instalando/atualizando dependências
Agora você precisa baixar e descompactar o script que realizará o processo de importação de dados. Isso pode ser feito usando o 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
O comando irá baixar e descompactar o arquivo, criando a seguinte estrutura de pastas:
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
Você precisará ter o Python v2.7 instalado. Ele geralmente vem instalado por padrão em várias distribuições Linux, mas caso esteja ausente, você precisará instalá-lo. Veja como fazer isso para distribuições baseadas em Debian:
# apt install python
# python -V
Python 2.7.12
Instale o pip (gerenciador de pacotes), também necessário para o funcionamento correto do script:
# apt install python-pip
# pip -V
pip 9.0.1 from /usr/local/lib/python2.7/dist-packages (python 2.7)
E instale os outros pacotes necessários:
pip install -r requirements.txt
Executando o script
Agora você pode executar o script especificando os parâmetros necessários:
./ImportExchangeData.py -d "<portal domain>" -u "<portal administrator email>" -pw "<portal administrator password>" -f <path to the folder with the exported data>
-s "https" ao executar o código.Substitua os parâmetros entre colchetes pelos dados do seu portal e execute o script:
./ImportExchangeData.py -d myportal.com -u "my.email.address@gmail.com" -pw "123456" -f /root/Temp/Aguarde até que o script termine de funcionar. Pode levar algum tempo, dependendo do número de usuários e da quantidade de dados deles.
Resultados do trabalho do script
Quando o script concluir todas as suas funções, os resultados serão os seguintes:
- os novos usuários do portal com os endereços de e-mail do arquivo
users.csvserão criados; - as caixas de correio no Servidor de E-mail do ONLYOFFICE serão criadas, contendo as mensagens de e-mail do MS Exchange e serão conectadas no módulo Mail do ONLYOFFICE para os usuários listados no arquivo
users.csv; - o arquivo
results-ok.txtserá salvo na pastaImport, contendo a lista de todas as contas de usuário do arquivousers.csve suas senhas, que foram criadas com sucesso; - o arquivo
result-err.txtserá salvo na pastaImport, contendo a lista de todas as contas de usuário do arquivousers.csv, que tiveram problemas ao serem importadas e criadas; - o arquivo
mailboxes.jsonno formatoJSONserá salvo na pastaImport, contendo a lista de configurações necessárias para conectar às novas caixas de correio a partir de clientes de e-mail de terceiros.
ImportExchangeData.py e execute o comando:
bash ./lib/get-mailboxes.sh -j
O arquivo mailboxes.json será sobrescrito com os dados das novas caixas de correio.
- Ao ser executado, o script define os principais arquivos e pastas de trabalho: tanto para os arquivos e pastas necessários para os arquivos de saída quanto para a pasta com os dados de entrada (que foram exportados do MS Exchange).
- No próximo passo, o script cria os usuários e, em seguida, suas caixas de correio.
- Depois, o script converte os arquivos exportados para o formato
mbox. - Quando concluído, o script instala o programa
ASC.Mail.PasswordFinder, que auxiliará na criação do arquivomailboxes.jsoncontendo a lista de configurações necessárias para conectar às novas caixas de correio a partir de clientes de e-mail de terceiros. - Após isso, o próprio
mailboxes.jsoné criado. - E, finalmente, os arquivos no formato
mboxsão importados para as caixas de correio via IMAP.