- Home
- Workspace
- Installazione
- Impresa
- Docker
- Migrazione dei dati di MS Exchange a ONLYOFFICE
Migrazione dei dati di MS Exchange a ONLYOFFICE
Introduzione
Questo articolo mostrerà come trasferire i dati da MS Exchange a ONLYOFFICE. Attualmente, i seguenti tipi di dati sono supportati per il trasferimento:
- utenti,
- caselle di posta,
- messaggi di posta elettronica.
Nei prossimi rilasci aggiungeremo il supporto per i seguenti dati:
- calendari,
- contatti,
- attività.
Esportare dati da MS Exchange
Avviare il servizio necessario
Prima di tutto, è necessario assicurarsi che il servizio Microsoft Exchange Mailbox Replication (o MSExchangeMailboxReplication) sia avviato. Esegui il seguente comando nella console cmd:
Get-Service -name MSExchangeMailboxReplication
Se il servizio necessario è in esecuzione, il risultato del comando sarà simile a questo:
Status Name DisplayName
------ ---- -----------
Running MSExchangeMailb... Microsoft Exchange Mailbox Replication
Oppure puoi andare al Pannello di Controllo di Windows - Strumenti di Amministrazione - Servizi, trovare il Microsoft Exchange Mailbox Replication e avviarlo.
Assegnare i diritti
Assegna i diritti amministrativi all'utente che eseguirà l'esportazione delle caselle di posta da MS Exchange:
New-ManagementRoleAssignment –Role "Mailbox Import Export" –User <user name>
Dove <user name> è il nome dell'utente che esporterà i dati. Se intendi farlo tu stesso, assegna questo ruolo al tuo account.
New-ManagementRoleAssignment –Role "Mailbox Import Export" –User JohnDopo di che, riavvia la console dei Servizi Web di Exchange (EWS) con i diritti di amministratore. Questo si fa cliccando con il tasto destro del mouse sull'icona EWS nel menu di avvio e selezionando l'opzione Esegui come amministratore.
Eseguire lo script
Ora scarica lo script che farà tutto il necessario per l'esportazione corretta dei dati da MS Exchange. Lo script è disponibile qui. Una volta scaricato, eseguilo nella console EWS:
.\ExportExchangeData.ps1 -dir "C:\Temp"
Dove .\ExportExchangeData.ps1 è il percorso dello script, e -dir "C:\Temp" è il percorso della cartella che verrà utilizzata per esportare i file.
-dir sarà condivisa per tutti. Questo è necessario per il corretto funzionamento del comando New-MailboxExportRequest. Dopo che lo script ha terminato il suo lavoro, la condivisione verrà rimossa dalla cartella.La cartella con i file esportati deve quindi essere trasferita sul computer con ONLYOFFICE installato.
PST creati contengano i dati corretti, puoi utilizzare lo strumento gratuito pst-viewer per verificarlo.- Prima di tutto, lo script crea la cartella impostata con il parametro
-dirsopra. Nel caso in cui il parametro manchi, verrà utilizzata la cartella predefinitaC:\Temp. - Una volta creata, la cartella è condivisa per tutti, in modo che il comando
New-MailboxExportRequestpossa funzionare correttamente. - Quindi lo script verifica se il file per l'elenco degli utenti è stato precedentemente creato, lo elimina se trovato e l'elenco degli utenti viene esportato in esso utilizzando il comando:
Get-Mailbox | Select DisplayName, PrimarySmtpAddress, Alias | Export-Csv $usersListPath - Dopo di che, viene creata la cartella per le caselle di posta (quella vecchia verrà rimossa, se presente), e inizia l'esportazione delle caselle di posta degli utenti. Ci vorrà del tempo a seconda del numero di utenti, delle loro caselle e dei dati presenti nei loro messaggi di posta. Le caselle e i messaggi verranno salvati nel formato PST nella cartella
\PST\della directory precedentemente impostata con il comando-dir. - Infine, la condivisione viene rimossa dalla cartella e lo script termina il suo lavoro.
Durante l'esecuzione dello script potrebbero verificarsi alcuni errori. Di seguito sono riportati i più frequenti e i modi per risolverli.
-
Errore #1
Il nome deve essere univoco per casella di posta. Non è disponibile un nome predefinito per una nuova richiesta posseduta dalla casella di posta 'mailbox.local/folder/user'. Si prega di pulire le richieste esistenti utilizzando il cmdlet Remove o specificare un nome univoco. + 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.localSoluzione
Esegui il seguente comando:
Get-MailboxExportRequest | Remove-MailboxExportRequest -
Errore #2
New-MailboxExportRequest : Il termine 'New-MailboxExportRequest' non è riconosciuto come nome di un cmdlet, funzione, file di script o programma eseguibile. Controlla l'ortografia del nome, o se è stato incluso un percorso, verifica che il percorso sia corretto e riprova. At line:1 char:39 + ... oreach ($Mailbox in (Get-Mailbox)) { New-MailboxExportRequest -Mailbo ... + ~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (New-MailboxExportRequest:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundExceptionSoluzione
Riavvia la console EWS e assicurati di eseguirla con i diritti di amministratore.
-
Errore #3
\\ServerName\Temp\PST\user.pst Il nome del server o della condivisione specificato nel percorso potrebbe essere non valido, o il file potrebbe essere bloccato. + 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.localSoluzione
La cartella
\\ServerName\Temp(quella utilizzata per l'esportazione della casella di posta e impostata con il parametro dello script-dir) deve essere condivisa per l'accesso in lettura e scrittura. Se l'hai condivisa in precedenza, verifica se ha solo l'accesso in scrittura e modifica correttamente l'accesso.
Importare i dati di MS Exchange in ONLYOFFICE
Installazione di ONLYOFFICE Workspace Enterprise Edition e configurazione del Mail Server
Installa la versione Docker di ONLYOFFICE Workspace Enterprise Edition. Questo può essere fatto installando ONLYOFFICE Workspace Enterprise Edition usando lo script e selezionando la variante di installazione Docker. Successivamente, configura il server di posta come descritto qui.
users.csv (ricevuto nel passaggio precedente), sostituendo tutte le voci per il vecchio dominio MS Exchange con quello nuovo. Questo viene fatto con il seguente comando:
sed -i 's/exchange-domain.com/new-domain.com/g' users.csv
Dove exchange-domain.com è il vecchio nome di dominio utilizzato con MS Exchange, e new-domain.com è quello nuovo che intendi utilizzare.
Scaricare lo script e installare/aggiornare le dipendenze
Ora devi scaricare e decomprimere lo script che eseguirà il processo di importazione dei dati. Questo può essere fatto utilizzando il 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
Il comando scaricherà e decomprimerà il file, creando la seguente struttura di cartelle:
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
Avrai bisogno di Python v2.7 installato. È spesso installato di default con varie distribuzioni Linux, ma nel caso manchi, dovrai installarlo tu stesso. Ecco come si fa per le distribuzioni basate su Debian:
# apt install python
# python -V
Python 2.7.12
Installa il pip (gestore pacchetti), anch'esso necessario per il corretto funzionamento dello script:
# apt install python-pip
# pip -V
pip 9.0.1 from /usr/local/lib/python2.7/dist-packages (python 2.7)
E installa gli altri pacchetti richiesti:
pip install -r requirements.txt
Esecuzione dello script
Ora puoi eseguire lo script specificando i parametri necessari:
./ImportExchangeData.py -d "<portal domain>" -u "<portal administrator email>" -pw "<portal administrator password>" -f <path to the folder with the exported data>
-s "https" quando esegui il codice.Sostituisci i parametri tra parentesi con i dati del tuo portale e avvia lo script:
./ImportExchangeData.py -d myportal.com -u "my.email.address@gmail.com" -pw "123456" -f /root/Temp/Attendi che lo script termini il suo lavoro. Potrebbe richiedere del tempo a seconda del numero di utenti e della quantità di dati.
Risultati del lavoro dello script
Quando lo script avrà completato tutte le sue operazioni, i risultati saranno i seguenti:
- verranno creati i nuovi utenti del portale con gli indirizzi email dal file
users.csv; - verranno create le caselle di posta sul Mail Server di ONLYOFFICE, che conterranno i messaggi di posta da MS Exchange e saranno collegate nel modulo Mail di ONLYOFFICE per gli utenti elencati nel file
users.csv; - il file
results-ok.txtsarà salvato nella cartellaImport, conterrà l'elenco di tutti gli account utente dal fileusers.csve le loro password, che sono stati creati con successo; - il file
result-err.txtsarà salvato nella cartellaImport, conterrà l'elenco di tutti gli account utente dal fileusers.csv, che hanno avuto problemi durante l'importazione e la creazione; - il file
mailboxes.jsonin formatoJSONsarà salvato nella cartellaImport, conterrà l'elenco delle impostazioni necessarie per connettersi alle nuove caselle di posta dai client di posta di terze parti.
ImportExchangeData.py ed esegui il comando:
bash ./lib/get-mailboxes.sh -j
Il file mailboxes.json sarà sovrascritto con i dati delle nuove caselle di posta.
- Quando viene eseguito, lo script imposta i file e le cartelle di lavoro principali: sia per i file e le cartelle necessari per i file di output sia per la cartella con i dati di input (che sono stati esportati da MS Exchange).
- Nel passaggio successivo, lo script crea gli utenti e poi le loro caselle di posta.
- Successivamente, lo script converte i file esportati nel formato
mbox. - Quando ha finito, lo script installa il programma
ASC.Mail.PasswordFinderche aiuterà a creare il filemailboxes.jsoncontenente l'elenco delle impostazioni necessarie per connettersi alle nuove caselle di posta dai client di posta di terze parti. - Dopo di ciò, viene creato il file
mailboxes.jsonstesso. - E infine, i file in formato
mboxvengono importati nelle caselle di posta tramite IMAP.