Migrar do Exchange 2010 para o Exchange 2013
Neste documento poderemos ver todos os requisitos e os passos que devemos seguir para proceder à migração de um ambiente de Microsoft Exchange 2010 para Exchange Server 2013. Deveremos ter em conta que é um processo longo e, sobretudo, dependente do número de servidores, assim como das caixas de correio que tivermos ou dos seus tamanhos, será uma migração que não requererá paragem de serviço em momento algum.
A tener en cuenta: Tener actualizados los Windows Update de los servidores, además de al menos el SP3 en todos los Exchange 2010, caso contrário, lo instalaremos primero en los CAS, luego en los HUB y finalmente en los servidores de buzones si es que tenemos los roles separados. Adicionalmente sería recomendable tener los Update Rollup instalados post SP3 de igual forma. Tendremos que tener en cuenta que a Exchange 2013 sólo podrán acceder las siguientes versiones de Outlook (e este parche si no se conectan las carpetas públicas a los Outlooks):
- Perspetivas 2013.
- Perspetivas 2010 con SP1 y esta actualización.
- Perspetivas 2007 con SP3 y esta actualización.
- Outlook para Mac 2011.
- Entourage 2008 para Mac, Web Services Edition.
Teremos de garantir que os níveis funcionais da floresta e do domínio sejam pelo menos ‘Windows Server 2003', o mestre de esquema deverá ser Windows 2003 SP2 ou superior, bem como um catálogo global na zona com esse SO. Também atenção especial às quotas a nível de utilizador ou limites, para que não falhem as migrações ao exceder os valores predefinidos, bem como se vamos mover uma grande quantidade de caixas de correio, teremos cuidado com os LOGs.
Preparação do esquema do AD,
O primeiro passo será aplicar a atualização do esquema para o nosso Diretório Ativo, poderemos fazer este passo manualmente ou ignorá-lo e deixar que a instalação do nosso primeiro servidor Exchange o faça 2013 da organização. Podremos actualizarlo desde cualquier servidor miembro del dominio que sea x64, siendo Administradores de Esquema, Administradores de dominio y Administradores de Empresa, desde una consola DOS o PowerShell (con permiso de administrador) Correr:
setup /PrepareSchema /IAcceptExchangeServerLicenseTerms
Instalación de requisitos de Exchange 2013 en Windows 2012 R2,
Podremos continuar con la instalación de los prerequisitos de Exchange Server 2013 sobre nuestro Windows Server 2012 R2, para ello desde PowerShell ejecutaremos:
Install-WindowsFeature RSAT-ADDS
Install-WindowsFeature AS-HTTP-Activation, Experiência de Ambiente de Trabalho, NET-Framework-45-Features, RPC-over-HTTP-proxy, RSAT-Clustering, Web-Mgmt-Console, WAS-Process-Model, Web-Asp-Net45, Web-Basic-Auth, Web-Client-Auth, Web-Digest-Auth, Web-Dir-Browsing, Web-Dyn-Compression, Web-Http-Errors, Web-Http-Logging, Web-Http-Redirect, Web-Http-Tracing, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Lgcy-Mgmt-Console, Web-Metabase, Web-Mgmt-Console, Web-Mgmt-Service, Web-Net-Ext45, Web-Request-Monitor, Web-Server, Web-Stat-Compression, Web-Static-Content, Web-Windows-Auth, Web-WMI, Windows-Identity-Foundation, RSAT-Clustering-CmdInterface -Reiniciar
Deveremos ainda instalar Microsoft Unified Communications Managed API 4.0, ademais Microsoft Office 2010 Filter Pack de 64 bit e o seu SP1. Instalação do primeiro servidor Exchange 2013 sempre que possível com o último SP incorporado. Uma vez instalado deveremos entrar no ECP (Exchange Control Panel), tendo uma instalação mista como é este cenário a URL predefinida “https (em inglês)://SERVIDOR_EXCHANGE_2013/ecp” nos levará à gestão das caixas de correio no Exchange 2010, se quisermos gerir o Exchange 2013 devemos aceder à seguinte URL “https (em inglês)://SERVIDOR_EXCHANGE_2013/ecp?ExchClientVer=15”.
Se quisermos, podemos criar um administrador temporário para o Exchange 2015 e assim o ECP não nos redirecionará para o Exchange 2010, como criar um utilizador no nosso AD e torná-lo membro do grupo ‘Organization Management'’ bastará.
Instalamos o Exchange 2013 com o assistente de instalação e aplicamos o último Update Rollup ao concluir a instalação do Exchange!
Criamos a estrutura de pastas para as BDD e os Logs no nosso servidor, renomearemos e moveremos a BD de caixas de correio que vem com o sistema para o nosso caminho correto com:
Move-DatabasePath -Identity NOME_BD -EdbFilePath "F:BDDNOME_BD.edb" –LogFolderPath "G:LOGsNOME_BD"
Além disso, configuraremos a Lista de endereços offline predefinida do Exchange 2013 em cada BD que tivermos no novo Exchange, poderemos verificar que temos tudo OK executando:
Get-MailboxDatabase | select name,offlineaddressbook | sort name
1º Instalar os certificados correspondentes aos serviços do Exchange
Teremos de instalar neste servidor Exchange 20013 (ou nos servidores que venhamos a ter) os certificados SSL para assegurar os protocolos que utilizarmos, como sabemos que serão necessários para garantir a segurança de:
- HTTPS – Outlook Anywhere, OWA, ECP/EAC, ActiveSync, EWS, OAB ou Autodiscover: correio.dominio.com
- IMAPS: correio.dominio.com
- POPS: correio.dominio.com
- SMTPS: correio.dominio.com
Para fazer isso,, importaremos o .pfx de um certificado existente para os certificados do computador local ou teremos de gerar um pedido de certificado a partir do ECP > Servidores > Certificados > Novo & seguir o assistente selecionando o domínio para o qual deve responder.
Uma vez instalado o certificado, iremos atribuí-lo aos serviços anteriores que nos interessarem.
2º Configurar URLs dos sites
O mais simples para configurar corretamente todas as URLs dos sites do Exchange seria executar estes comandos, caso contrário, podremos hacerlo de forma tradicional desde la GUI con ECP:
Set-OABVirtualDirectory -identity "SERVIDOR_EXCHANGE_2013OAB (Default Web Site)" -ExternalURL https://correo.dominio.com/OAB -InternalUrl https://correo.dominio.com/OAB Set-WebServicesVirtualDirectory -identity "SERVIDOR_EXCHANGE_2013EWS (Default Web Site)" -ExternalURL https://correo.dominio.com/EWS/Exchange.asmx -InternalUrl https://correo.dominio.com/ews/Exchange.asmx Set-ActiveSyncVirtualDirectory -Identity "SERVIDOR_EXCHANGE_ 2013Microsoft-Server-ActiveSync (Default Web Site)" -ExternalURL https://correo.dominio.com/Microsoft-Server-ActiveSync -InternalUrl https://correo.dominio.com/Microsoft-Server-ActiveSync Set-OWAVirtualDirectory -Identity "SERVIDOR_EXCHANGE_2013owa (Default Web Site)" -ExternalURL https://correo.dominio.com/owa -InternalUrl https://correo.dominio.com/owa Set-ECPVirtualDirectory -Identity "SERVIDOR_EXCHANGE_2013ecp (Default Web Site)" -ExternalURL https://correo.dominio.com/ecp -InternalURl https://correo.dominio.com/ecp Set-PowerShellVirtualDirectory -Identity "SERVIDOR_EXCHANGE_2013PowerShell (Default Web Site)" -ExternalURL https://correo.dominio.com/powershell -InternalURl https://correo.dominio.com/powershell Set-ClientAccessServer -Identity SERVIDOR_EXCHANGE_2013 -AutoDiscoverServiceInternalUri https://correo.dominio.com/Autodiscover/Autodiscover.xml Set-AutodiscoverVirtualDirectory -identity "SERVIDOR_EXCHANGE_2013Autodiscover (Default Web Site)" -ExternalUrl 'https://correo.dominio.com/Autodiscover/Autodiscover.xml' -InternalUrl 'https://correo.dominio.com/Autodiscover/Autodiscover.xml
3º Límites y quotas
Deberemos conocer los límites y las quotas que tenemos en nuestra organización 2010 antes de comenzar cualquier progreso a la 2013. Lo primero será poner las mismas quotas a nivel de BD tanto de Warning, como de prohibir enviar o prohibir recepción; así como los periodos de retención de buzones de usuario o correos eliminados. É recomendável eliminar as quotas individuais que tivermos por utilizador enquanto é realizada a migração, portanto, de igual forma, iremos anotá-las. Por exemplo, com este PowerShell iremos obter as quotas estabelecidas nas caixas de correio:
Get-Mailbox | Where {$_.UseDatabaseQuotaDefaults -eq $False} | ft name,prohibit*,issue*
E com este PowerShell iremos obter os limites estabelecidos nas bases de dados de 2010 para poder estabelecê-los posteriormente de igual forma nas novas bases de dados de 2013, além dos tempos de retenção para caixas de correio eliminadas ou itens individuais :
Get-MailboxDatabase | fl Name,IssueWarningQuota,ProhibitSendQuota,ProhibitSendReceiveQuota,DeletedItemRetention,MailboxRetention
4º Configurar Outlook Anywhere
Deveremos configurar o Outlook Anywhere, poderemos modificar o tipo de autenticação, o diretamente con este PowerShell su nombre para redes externas o internas:
Set-OutlookAnywhere -Identity "SERVIDOR_EXCHANGE_2031Rpc (Default Web Site)" -InternalHostname correo.dominio.com -ExternalHostname correo.dominio.com
5º Cambiar paths de logs de transporte
Desde ECP, en las propiedades del servidor podremos cambiar fácilmente los paths de los logs de Transporte.
6º Conector de envío
Habrá que crear un conector de envío para el Exchange 2013 con la misma configuración que ya teníamos en 2010 (Limites…) o bien, más fácil, asociarle y darle permisos de envío desde un conector ya generado en los anteriores servidores Exchange 2010.
7º Migración de aplicativos o dispositivos,
A tener en cuenta que habrá que mover los buzones que utilicen servicios, aplicaciones o dispositivos como software de backup, AV, impressoras, FAX, PBX, scanners, sites web… Assim como se tivermos algum relay auxiliar (conector de receção) no Exchange 2010, será necessário configurá-lo da mesma forma neste 2013, além de configurar a mesma autenticação, ou o mesmo endereço IP, caso contrário, teremos de reconfigurar todas estas apps que enviam emails através do servidor Exchange 2010.
8º Mover caixas de correio,
Continuar, o seguinte será mover as caixas de correio dos utilizadores, devemos ter em conta que, se o utilizador tiver a caixa de correio aberta, esta será desligada e será solicitado que abra o Outlook novamente para que se reconfigure automaticamente no novo servidor de correio.
Selecionamos os utilizadores que queremos mover a partir do ECP > “Destinatários” > “Caixas de correio” > E selecionamos mover a caixa de correio para outra base de dados.
Le indicamos un nombre a la tarea de migración e indicamos a qué base de datos moveremos los buzones, “Próximo”,
Indicaremos si iniciar la tarea de migración de forma automática y si además también la finalizaremos o de forma manual, “Novo” para crearla.
Deberemos ir al panel de Migración para ver el estado de los movimientos de buzones, “Sim”,
Podremos pulsar en “Ver detalhes…” para ver más detalles del proceso de migración,
Donde veremos de forma individual el estado de la migración de cada buzones! Esperaremos mientras copia…
Lo más comodo seguramente, sea mover los buzones por PowerShell, moveremos los buzones usando el siguiente comando:
Get-Mailbox -Database BASE_DATOS_2010 | New-MoveRequest -TargetDatabase BASE_DATOS_2013
Para ver el estado de migración podremos ejecutar:
Get-MoveRequestStatistics -MoveRequestQueue BASE_DATOS_2013
E para verificar que não nos restam caixas de correio nas bases de dados antigas do 2010:
Get-MailboxDatabase -Identity BASE_DATOS_2010 | Get-Mailbox
9º Migrar pastas públicas,
Após mover as caixas de correio vamos migrar as pastas públicas do servidor Exchange 2010 para o Exchange 2013, vamos primeiro descarregar estes Scripts daqui.
Executaremos primeiro no shell do Exchange 2010:
Para obter um snapshot da estrutura de pastas:
Get-PublicFolder -Recurse | Export-CliXML C:PFMigrateLegacy_PFStructure.xml
Obtiremos um snapshot das estatísticas das pastas públicas, como número de itens, tamanho ou proprietário:
Get-PublicFolderStatistics | Export-CliXML C:PFMigrateLegacy_PFStatistics.xml
E um último para obter as permissões:
Get-PublicFolder -Recurse | Get-PublicFolderClientPermission | Select-Object Identity,User -ExpandProperty AccessRights | Export-CliXML C:PFMigrateLegacy_PFPerms.xml
No Exchange 2013 no deberemos tener carpetas públicas creadas, para verificarl y si tenemos debemos deshacer la migración anterior, Correr:
Get-Mailbox -PublicFolder
Get-PublicFolder
Verificaremos además desde el Exchange 2010 que no tenemos carpetas públicas con nombres no válidos:
Get-PublicFolderStatistics -ResultSize Unlimited | Where {$_.Name -like “**”} | Format-List Name, Identity
Empezamos en el Exchange 2010, comenzamos ejecutando el siguiente script que nos generará un fichero con el nombre de las carpetas públicas y sus tamaños:
.Export-PublicFolderStatistics.ps1 PfMapNameToSize.csv SERVIDOR_EXCHANGE_2010
Ejecutaremos el siguiente script para crear el archivo de mapeos entre las carpetas públicas y el buzón:
.PublicFolderToMailboxMapGenerator.ps1 TAMANHO_CAIXA PFMapNameToSize.csv PFmapFolderToMailbox.csv
Criaremos as caixas de correio das pastas públicas já no Exchange 2013, a primeira caixa de correio deve ser do tipo master hierarchy mailbox, por isso, iremos criá-la por defeito com o modo HoldForMigration. Poderemos alterar o nome da caixa de correio no ficheiro 'PFmapFolderToMailbox.csv'’ e assim indicá-lo no seguinte comando!
Para criar a primeira caixa de correio executamos:
New-Mailbox -PublicFolder Mailbox1 -HoldForMigration:$true -Database BD_EXCHANGE_2013 -IsExcludedFromServingHierarchy $True
E se tivermos mais pastas para migrar, criaremos mais caixas de correio com:
New-Mailbox -PublicFolder Mailbox2 -Database BD_EXCHANGE_2013 -IsExcludedFromServingHierarchy $True
Após preparar a migração, empezamos ya la migración de las carpetas en el Exchange 2013
New-PublicFolderMigrationRequest -SourceDatabase (Get-PublicFolderDatabase -Server SERVIDOR_EXCHANGE_2010) -CSVData (Get-Content PFmapFolderToMailbox.csv -Encoding Byte)
Para verificar que la migración ha comenzado y de una forma más sencilla el % de avance y estado, Correr:
Get-PublicFolderMigrationRequest | Get-PublicFolderMigrationRequestStatistics
Si tenemos algún error, lo más fácil será verlo con el siguiente comando, puede que tengamos los Alias de las carpetas publicas del 2010 con espacios… comando para verlo:
Get-PublicFolderMigrationRequest | Get-PublicFolderMigrationRequestStatistics -IncludeReport | Format-List
Si tenemos que resumir la migración por que hemos tenido un error (y lo habremos visto con el mensaje anterior, Correr: Resume-PublicFolderMigrationRequest -identity “PublicFolderMigration”
Cuando el estado de la migración haya llegado al estado 'AutoSuspended’ e 95%, podremos continuar con el siguiente paso, que será bloquear las carpetas públicas en el Exchange 2010.
A partir de ahora los usuarios no podrían acceder a las carpetas públicas del Exchange 2010, ejecutamos en el 2010:
Set-OrganizationConfig -PublicFoldersLockedForMigration:$Verdadeiro
De vuelta en el Exchange 2013, para finalizar el proceso de migración deberemos ejecutar:
Set-PublicFolderMigrationRequest -Identity PublicFolderMigration -PreventCompletion:$Falso
Y finalizamos con la ultima sincronización con las diferencias entre las distintas carpetas públicas.
Resume-PublicFolderMigrationRequest -Identity PublicFolderMigration
Confirmamos como está a migração:
Get-PublicFolderMigrationRequest | Get-PublicFolderMigrationRequestStatistics
E esperamos que termine em 100%!
Podemos testar com um utilizador se as pastas públicas estão corretas, por isso, podemos associar a um utilizador de testes à caixa de correio de pastas públicas já no Exchange 2013, Executando:
Set-Mailbox -Identity UTILIZADOR_TESTES -DefaultPublicFolderMailbox CaixaCorreio1
Antes de executar o comando anterior, podemos abrir o Outlook desse utilizador em questão com o parâmetro “outlook /rpcdiag” para ver o estado das ligações entre o Outlook e o servidor Exchange. Inicialmente veremos que as pastas públicas continuam a estar no servidor antigo…
Y tras ejecutar el comando para establecer el buzon de carpetas publicas a un usuario en cuestión y abramos de nuevo su Outlook con el parámetro /rpcdiag, veremos que ya conecta contra el nuevo servidor de Exchange.
Una vez que las pruebas realizadas son correctas, deberemos habilitar el acceso a estas carpetas al resto de usuarios de la organización, Correr:
Get-Mailbox -PublicFolder | Set-Mailbox -PublicFolder -IsExcludedFromServingHierarchy $false
Confirmamos que tenemos la migración Completed y al 100% de migración completada, e indicamos que la migración se finalizó con:
Get-PublicFolderMigrationRequest | Get-PublicFolderMigrationRequestStatistics Set-OrganizationConfig -PublicFolderMigrationComplete:$true Set-OrganizationConfig -PublicFoldersEnabled Local
Deshacer la migración de Exchange 2013
En el Exchange 2010 Executar:
Set-OrganizationConfig -PublicFoldersLockedForMigration:$False
10º Eliminando recursos del 2010
Despues de tener ya las carpetas públicas en el 2013 en producción, lo siguiente será confirmar que hemos movido todos los buzones de los usuarios y que no quedan más buzones de sistema como pueden ser los de Archivo o Arbitration, los buscamos con:
Get-Mailbox -Archive | fl name,database
Get-Mailbox -Arbitration | fl name,database
Si tenemos alguno lo moveremos ejecutando lo siguiente desde una PowerShell del Exchange 2013:
Get-Mailbox -Database BASE_DATOS_2010 -Archive | New-MoveRequest -TargetDatabase BASE_DATOS_2013
Get-Mailbox -Database BASE_DATOS_2010 -Arbitration | New-MoveRequest -TargetDatabase BASE_DATOS_2013
Además de mover el buzón de descubrimiento o Discovery Search Mailbox:
New-MoveRequest DiscoverySearchMailbox* -TargetDatabase BASE_DATOS_2013
Para ver el estado de migración podremos ejecutar:
Get-MoveRequestStatistics -MoveRequestQueue BASE_DATOS_2013
Una vez realizado y verificando de nuevo que ya no tenemos más buzones, poderemos desmontar e eliminar a BD.
O passo seguinte será eliminar a OAB do Exchange 2010, poderemos fazê-lo facilmente a partir da GUI, desde que não a tenhamos atribuída a nenhuma BD do Exchange 2013.
Último, eliminaremos a BD de pastas públicas do 2010, desmontá-las-emos & eliminaremos.
Poderíamos proceder já à desinstalação do Exchange 2010!






























































