Precisa levar seu Exchange Server 2019 de Windows Server 2019 para 2022? Entenda por que o in‑place upgrade não é suportado e veja dois caminhos 100% suportados — migração paralela e reinstalação com RecoverServer
— com checklists, comandos e boas práticas.
Visão geral da pergunta
É possível fazer in‑place upgrade (manter arquivos, definições e apps) do Windows Server 2019 para Windows Server 2022 quando o servidor hospeda o Exchange Server 2019? Muitos administradores notam que o programa de instalação do Windows exibe apenas “instalação limpa” (clean install) e a opção “manter arquivos e apps” aparece desativada. Afinal, há algum passo faltando?
Resposta e solução (resumo direto)
- Resposta curta: Não é suportado realizar in‑place upgrade do sistema operacional quando o Exchange está instalado. À época da conversa (abril/2024), a própria documentação da Microsoft indicava “não suportado”, e por isso o instalador tende a desativar a opção “manter arquivos e apps”.
- Caminho suportado: efetue migração paralela (side‑by‑side) para um novo Windows Server 2022 ou reinstale o mesmo host com
Setup /RecoverServer
do Exchange (reconstruindo o servidor a partir dos metadados do AD).
Caminhos suportados
Opção A — Migração paralela para um novo servidor (recomendada)
- Preparar o Windows Server 2022 (mesma floresta/organização).
- Instalar Exchange Server 2019 no novo host com CU/SU suportados, em versão igual ou mais recente que a do servidor atual.
- Recriar/transferir configurações: certificados, URLs virtuais (Autodiscover/EWS/OAB/ActiveSync/OWA), Send/Receive Connectors, Accepted Domains, Address Book Policies, transport rules, agentes/integrações.
- Mover dados e serviços:
- Caixas de correio (ou migrar para Exchange Online, se híbrido).
- Pastas públicas (se houver).
- Fluxo de e‑mail/DNS/LB para o novo servidor.
- Testar tudo (clientes Outlook/OWA/ECP, fluxo SMTP, mobilidade, backup).
- Descomissionar o servidor antigo (sair do LB/DNS, desinstalar Exchange, remover do domínio/hypervisor).
Opção B — Reinstalação no mesmo host usando Setup /RecoverServer
Útil para reaproveitar o mesmo hardware/nome sem in‑place upgrade. O objeto do servidor deve permanecer no AD.
- Backups completos (bancos, chaves/certificados, scripts, caminhos de DB/log, export de configurações).
- Anotar caminhos de bancos e logs e exportar certificados.
- Retirar do tráfego/LB, parar serviços; não desinstalar o Exchange.
- Reinstalar o Windows Server 2022 com mesmo nome e IP; ingressar no domínio.
- Executar
Setup /Mode:RecoverServer
com o mesmo build/CU do Exchange e, depois, aplicar CU/SU atuais. - Restaurar/montar bancos, reimportar certificados e validar conectividade.
Resumo: ambos os caminhos são suportados. Se precisa de risco e downtime mínimos, escolha migração paralela. Se precisa manter o mesmo nome/IP e tem janela dedicada, RecoverServer é direto e previsível.
Por que “Manter arquivos, definições e apps” aparece desativado
Quando há Exchange instalado, o time de Exchange não dá suporte ao in‑place upgrade do Windows. Ainda que “possa funcionar”, você fica fora de suporte. O instalador do Windows detecta aplicativos críticos (Exchange, drivers, agents etc.) e, em muitos cenários, desabilita a opção de manter apps para evitar estados inconsistentes.
Outros fatores que podem desativar a opção (mesmo sem Exchange):
- Mídia do Windows de edição ou idioma diferente do SO instalado.
- Pré‑requisitos pendentes, políticas de compatibilidade, disk layout ou criptografia/BitLocker sem preparo.
- Bloqueios de drivers, antivírus/EDR, ou “verificações de compatibilidade” que exigem instalação limpa.
Checklist rápido (boas práticas e pré‑requisitos)
- Backups verificados: bancos (VSS), System State (se aplicável), chaves e certificados (PFX), scripts e export de configurações.
- Atualizar Exchange de origem a um CU/SU suportado antes da migração; alinhar o mesmo CU entre origem e destino (especialmente para
/RecoverServer
). - Tamanho e capacidade: CPU/RAM/Disco conforme sizing do Exchange; volumes/logs com IOPS adequados; page file ajustado.
- Documentar tudo: namespaces, URLs, conectores, Accepted Domains, políticas, transport rules, receive connectors customizados, portas de firewall.
- Antivírus/EDR: aplicar exclusões específicas do Exchange (bancos, logs, pastas de transporte, process names).
- Validação pós‑migração: Autodiscover, OWA/ECP, MAPI/HTTP, EWS, ActiveSync, SMTP in/out, mobilidade, jobs de backup e monitoramento.
- Ambientes híbridos: validar HCW, conectores do Exchange Online, Autodiscover e federation conforme aplicável.
Tabela de decisão — qual caminho escolher?
Cenário | Método recomendado | Observações |
---|---|---|
Servidor único (sem DAG) e janela curta | Migração paralela | Permite testar tudo antes do corte e reverter rapidamente. |
Não pode mudar nome/IP | RecoverServer | Reconstrói o Exchange no mesmo host lógico; requer preparação e boa cópia dos caminhos dos bancos. |
Ambiente com DAG | Migração paralela + mover cópias | Adicione o novo servidor ao DAG, replique DBs, troque ativação e remova o antigo. |
Híbrido com M365 | Migração paralela | Menos risco para conectores/HCW; valide Autodiscover e fluxo híbrido. |
Hardware antigo mas ainda útil | RecoverServer | Reaproveita o mesmo servidor físico/VM, mantendo identidade. |
Passo a passo — Opção A (migração paralela)
Preparação do novo servidor
- Instale o Windows Server 2022, aplique updates, defina IPs, DNS, NTP e junte ao domínio.
- Instale prereqs do Exchange (funções do IIS/RSAT/etc.). O
Setup.exe
pode instalar itens faltantes. - Instale o Exchange 2019 no novo servidor com um CU suportado (igual ou mais novo que o vigente na origem) e aplique o SU atual.
Replicar configurações
Exporte do servidor antigo e aplique no novo. Exemplos úteis:
# Exportar certificados com chave privada
$pwd = Read-Host "Senha do PFX" -AsSecureString
Get-ExchangeCertificate | Where-Object {$_.HasPrivateKey} |
ForEach-Object {
$file = "C:\Temp\cert-$($_.Thumbprint).pfx"
Export-ExchangeCertificate -Thumbprint $_.Thumbprint -FileName $file -Password $pwd
}
Capturar URLs virtuais atuais
Get-OwaVirtualDirectory | fl Server,InternalUrl,ExternalUrl
Get-EcpVirtualDirectory | fl Server,InternalUrl,ExternalUrl
Get-WebServicesVirtualDirectory | fl Server,InternalUrl,ExternalUrl
Get-MapiVirtualDirectory | fl Server,InternalUrl,ExternalUrl
Get-OabVirtualDirectory | fl Server,InternalUrl,ExternalUrl
Get-ActiveSyncVirtualDirectory | fl Server,InternalUrl,ExternalUrl
Exportar conectores
Get-SendConnector | Select Name,AddressSpaces,SmartHosts,Port,SourceTransportServers | Export-Csv C:\Temp\send-connectors.csv -NoTypeInformation
Get-ReceiveConnector | Select Server,Name,Bindings,RemoteIPRanges,AuthMechanism,PermissionGroups | Export-Csv C:\Temp\recv-connectors.csv -NoTypeInformation
No novo servidor, importe certificados e vincule aos serviços:
# Importar e habilitar
$pwd = Read-Host "Senha do PFX" -AsSecureString
$bytes = Get-Content C:\Temp\cert-THUMBPRINT.pfx -Encoding Byte
$cert = Import-ExchangeCertificate -FileData $bytes -Password $pwd
Enable-ExchangeCertificate -Thumbprint $cert.Thumbprint -Services "IIS,SMTP"
Configure as URLs virtuais segundo o seu namespace padrão (interno/externo):
Set-OwaVirtualDirectory -Identity "EXCH2022\owa (Default Web Site)" `
-InternalUrl https://mail.contoso.com/owa -ExternalUrl https://mail.contoso.com/owa
Set-EcpVirtualDirectory -Identity "EXCH2022\ecp (Default Web Site)" `
-InternalUrl https://mail.contoso.com/ecp -ExternalUrl https://mail.contoso.com/ecp
Set-WebServicesVirtualDirectory -Identity "EXCH2022\EWS (Default Web Site)" `
-InternalUrl https://mail.contoso.com/ews/exchange.asmx -ExternalUrl https://mail.contoso.com/ews/exchange.asmx
Set-MapiVirtualDirectory -Identity "EXCH2022\mapi (Default Web Site)" `
-InternalUrl https://mail.contoso.com/mapi -ExternalUrl https://mail.contoso.com/mapi
Set-OabVirtualDirectory -Identity "EXCH2022\oab (Default Web Site)" `
-InternalUrl https://mail.contoso.com/oab -ExternalUrl https://mail.contoso.com/oab
Set-ActiveSyncVirtualDirectory -Identity "EXCH2022\Microsoft-Server-ActiveSync (Default Web Site)" `
-InternalUrl https://mail.contoso.com/Microsoft-Server-ActiveSync -ExternalUrl https://mail.contoso.com/Microsoft-Server-ActiveSync
Mover caixas de correio e pastas públicas
Para migração dentro da mesma organização (on‑premises), use New-MoveRequest
para mover caixas de correio do servidor antigo para o banco do novo servidor:
# Exemplo: mover todas as caixas do servidor antigo para DB01 no novo
Get-Mailbox -Server EXCH2019 | New-MoveRequest -TargetDatabase "DB01"
Acompanhar progresso
Get-MoveRequest | Get-MoveRequestStatistics | ft DisplayName,Status,PercentComplete -Auto
Inclua caixas especiais (arbitration, audit, discovery e PF). Exemplo:
Get-Mailbox -Arbitration | New-MoveRequest -TargetDatabase "DB01"
Get-Mailbox -AuditLog | New-MoveRequest -TargetDatabase "DB01"
Get-Mailbox -Monitoring | New-MoveRequest -TargetDatabase "DB01"
Get-Mailbox -PublicFolder | New-MoveRequest -TargetDatabase "DB01"
Ajustar fluxo de e‑mail e DNS/LB
- Recrie Receive Connectors customizados no novo servidor com as mesmas ligações/intervalos de IP.
- Atualize o balanceador (VIP/pool) para incluir o novo servidor e excluir o antigo após validação.
- Aponte registros DNS (interno/externo) para o novo servidor/serviço conforme o design do namespace.
Validações essenciais
# Saúde de serviços
Test-ServiceHealth
Conectividade de protocolos
Test-OwaConnectivity -HostName mail.contoso.com
Test-EcpConnectivity -HostName mail.contoso.com
Test-MAPIConnectivity
Test-WebServicesConnectivity -ClientAccessServer EXCH2022
Test-ActiveSyncConnectivity -URL [https://mail.contoso.com/Microsoft-Server-ActiveSync](https://mail.contoso.com/Microsoft-Server-ActiveSync)
Descomissionar o servidor antigo
- Confirme que não há caixas (incluindo arbitrations/monitoring) remanescentes no antigo.
- Remova conectores específicos do servidor antigo, tarefas/agents e do LB/DNS.
- Execute a desinstalação do Exchange no antigo. Ao final, remova do domínio e do hypervisor.
Passo a passo — Opção B (Setup /RecoverServer
no mesmo host)
Antes da reinstalação
- Documente paths dos bancos e logs (por exemplo,
D:\DBs\DB01.edb
,E:\Logs\DB01
). - Exporte certificados em PFX com senha.
- Salve scripts, agentes (backup/antivírus) e anotações de conectores/URLs.
- Planeje a suspensão do tráfego (LB/DNS), parando serviços do Exchange no corte.
Reinstalação do Windows e recuperação do Exchange
- Instale o Windows Server 2022, aplique updates, configure IPs/hostname idênticos e junte ao domínio.
- Garanta que o objeto do servidor Exchange ainda existe no AD (não desinstalado anteriormente).
- Instale pré‑requisitos (IIS/RSAT) e execute:
.\Setup.exe /Mode:RecoverServer /IAcceptExchangeServerLicenseTerms
Use o mesmo CU que o servidor tinha antes. Em seguida, atualize para o CU/SU atuais. - Recrie os paths de bancos/logs (mesmas letras/unidades). Se os discos foram preservados, mantenha as letras e mount points.
- Monte os bancos, reimporte certificados e valide conectividade (testes acima).
Ambientes com DAG (Database Availability Group)
Se você usa DAG, a migração é ainda mais segura com paralelismo:
- Adicione o novo servidor ao DAG:
Add-DatabaseAvailabilityGroupServer -Identity DAG01 -MailboxServer EXCH2022
- Crie cópias de cada base:
Add-MailboxDatabaseCopy -Identity DB01 -MailboxServer EXCH2022
- Ative as bases no novo servidor e verifique replicação/lag.
- Remova cópias do servidor antigo e, por fim, remova-o do DAG:
Remove-DatabaseAvailabilityGroupServer -Identity DAG01 -MailboxServer EXCH2019
Edge Transport, agentes e integrações
- Edge Transport: exporte Edge Subscriptions e conectores; recrie o Edge no Windows Server 2022 e refaça a assinatura (re-subscribe).
- Antivírus/backup/EDR: instale versões compatíveis com Windows Server 2022 e Exchange 2019. Aplique exclusões específicas do Exchange.
- Integrações SMTP/Apps/Multifator: valide autenticação, TLS e ranges de IP nos conectores.
Riscos comuns e como evitá‑los
Risco | Como mitigar |
---|---|
Mover caixas sem alinhar CUs | Instale no destino o mesmo CU (ou mais novo) antes de iniciar move requests. |
Perder identidades de certificados | Exportar PFX com privada; registrar onde cada certificado é habilitado (IIS/SMTP). |
Receive Connector incompleto | Reaplicar bindings, intervalos de IP e PermissionGroups exatamente como no antigo. |
Antivírus bloqueando I/O do Exchange | Aplicar exclusões para pastas de banco/log, Transport, e processos do Exchange. |
Queda de Autodiscover/OWA pós‑corte | Atualizar VIP/DNS e certificar que URLs virtuais estão corretas, internas e externas. |
Perguntas frequentes
“Consegui fazer in‑place upgrade e funcionou; posso seguir assim?”
Relatos de sucesso não alteram o status de suporte. Em produção, escolha side‑by‑side ou /RecoverServer
para não ficar fora de suporte em incidentes.
“Posso desinstalar o Exchange, atualizar o Windows e reinstalar?”
Se você desinstalar o Exchange, o objeto do servidor no AD geralmente é removido, inviabilizando RecoverServer
. Isso vira uma nova instalação, exigindo migração paralela. Planeje corretamente antes de remover.
“Qual a ordem de atualização: Exchange ou Windows?”
Como in‑place de Windows não é suportado com Exchange instalado, a prática segura é: novo Windows 2022 → Exchange com CU suportado → migrar cargas → retirar antigo. Para RecoverServer
, recupere com o mesmo CU e depois atualize.
“E quanto ao .NET, IIS e pré‑requisitos?”
Instale versões compatíveis com o CU alvo. O Setup.exe
do Exchange bloqueia versões incompatíveis e oferece instalar features do Windows necessárias.
Plano de rollback (rapidinho)
- Migração paralela: mantenha o servidor antigo íntegro até validar 100% o novo. Se algo sair do esperado, volte VIP/DNS/LB e cancele move requests pendentes.
- RecoverServer: snapshot/backup do SO antes do corte; se necessário, restaure o Windows antigo e remonte bancos enquanto corrige o plano.
Modelo de roteiro de mudança (cutover)
- Freeze de alterações no Exchange/DNS/LB.
- Backup final e health check.
- Mover caixas de baixa criticidade → validar → mover restante.
- Trocar VIP/DNS e liberar tráfego.
- Validações funcionais e de desempenho.
- Descomissionar antigo (após N dias de estabilidade).
Comandos úteis de saúde e limpeza
# Filtrar move requests concluídos com sucesso e limpar
Get-MoveRequest -MoveStatus Completed | Remove-MoveRequest
Verificar filas de transporte
Get-Queue | ft Identity,MessageCount,Status -Auto
Verificar espaço em disco dos volumes de banco/log
Get-PSDrive -PSProvider FileSystem | ft Name,Used,Free
Verificar serviços essenciais do Exchange
Get-Service MSExchangeIS, MSExchangeTransport, W3SVC | ft Name,Status
Boas práticas adicionais
- Logs separados dos bancos em discos distintos para resiliência.
- Time Service consistente (NTP) para evitar problemas de Kerberos/TLS.
- IPv6: se não usar, desabilite cuidadosamente conforme política; se usar, garanta DNS/rotas adequadas.
- Monitoramento: configure alertas de fila SMTP, espaço em disco, latência de I/O e serviços.
- Licenciamento: confirme chaves/ativação do Windows e do Exchange no novo ambiente.
Conclusão
Ao migrar do Windows Server 2019 para 2022 com Exchange Server 2019, o atalho do in‑place upgrade não é suportado. Em vez disso, adote um dos dois caminhos suportados — migração paralela ou Setup /RecoverServer
. Ambos oferecem previsibilidade, permitem validações robustas e preservam o suporte do fabricante. Com planejamento, checklists e testes, a transição é segura e transparente para os usuários.
Apêndice — checklist imprimível
Item | Status | Notas |
---|---|---|
Backups (bancos, System State, PFX) | [ ] | |
Exchange origem em CU/SU suportado | [ ] | |
Servidor Windows 2022 preparado e no domínio | [ ] | |
Exchange 2019 instalado no novo (mesmo ou > CU) | [ ] | |
Certificados importados e vinculados (IIS/SMTP) | [ ] | |
URLs virtuais configuradas | [ ] | |
Conectores Send/Receive recriados | [ ] | |
Move requests criados e finalizados | [ ] | |
Cutover de DNS/LB concluído | [ ] | |
Validações pós‑corte (OWA/ECP/EWS/MAPI/SMTP) | [ ] | |
Backup reativado/validado no novo servidor | [ ] | |
Desinstalação do Exchange no antigo | [ ] |
Nota final: relatos de “deu certo aqui” não mudam o suporte. Em ambientes de produção, siga side‑by‑side ou /RecoverServer
para garantir atendimento do fabricante e reduzir risco operacional.