Você viu um alerta pedindo “instalar o MSXML 6.0” no Windows Server 2019 e ficou na dúvida? A resposta curta: quase sempre não é preciso baixar nada. A seguir, o guia completo para confirmar, reparar e responder a auditorias sem perder tempo.
Resumo rápido (para decidir em 30 segundos)
- Windows Server 2019 e 2022 já incluem o MSXML 6.0 como componente do sistema (desde o Windows Vista).
- Baixar msxml6.msi só faz sentido para máquinas legadas (Windows 2000/XP/Server 2003) ou cenários de redistribuição controlada.
- Para verificar, procure
msxml6.dll
emC:\Windows\System32
e, em sistemas 64 bits, também emSysWOW64
. - Se houver corrupção, use
DISM
eSFC
para reparar a imagem do Windows, não um instalador externo. - Desinstale apenas MSXML 4.0 ou anteriores. O MSXML 6.0 deve permanecer.
MSXML 6.0 no Windows Server 2019: preciso baixar?
Não. O MSXML 6.0 faz parte do sistema operativo desde o Windows Vista e permanece integrado nas versões modernas do Windows e Windows Server, incluindo 2019 e 2022. Isso significa que o componente já está presente, é mantido pelo Windows Update e não requer download separado. A recomendação histórica da documentação oficial é usar o pacote msxml6.msi
apenas para redistribuição com aplicações voltadas a sistemas mais antigos. [1]
Tabela de decisão
Situação | Explicação |
---|---|
Servidor moderno (2019/2022) | O MSXML 6.0 já faz parte do sistema operativo desde o Windows Vista e continua embutido nas versões atuais do Windows Server, portanto nenhum download é necessário. [1] |
Conferir se já existe | Verifique C:\Windows\System32 (e SysWOW64 em 64 bits) e confirme o ficheiro msxml6.dll . Se estiver lá, o componente está instalado e registado. [2] |
Ferramentas ou auditorias exigem .MSI | O instalador msxml6.msi só é preciso para redistribuir em sistemas mais antigos (Windows 2000/XP/Server 2003). A própria documentação indica como incorporá‑lo num setup de aplicação. [1] |
O que é o MSXML 6.0 e por que ele importa
MSXML (Microsoft XML Core Services) é o conjunto de bibliotecas COM nativas da Microsoft para processar XML (DOM, SAX, validadores XML Schema, consultas XPath, etc.). A versão 6.0 trouxe melhorias de segurança e conformidade com XML Schema (XSD), além de remover protocolos descontinuados. É a versão recomendada para novas aplicações e a que vem embutida no Windows moderno.
Como confirmar que o MSXML 6.0 está instalado
Método 1 — Verificar o ficheiro
- Abrir Explorador de Ficheiros e navegar até
C:\Windows\System32
. Em sistemas 64 bits, verificar tambémC:\Windows\SysWOW64
. - Localizar
msxml6.dll
. - Clicar com o botão direito → Propriedades → separador Detalhes para ver a versão.
Se o ficheiro existir e a versão for 6.x, o MSXML 6.0 está presente e registado.
Método 2 — Testar via PowerShell (COM)
Este teste valida que os objetos COM de MSXML 6.0 são criáveis pelo sistema:
$d = New-Object -ComObject 'Msxml2.DOMDocument.6.0'
$d.loadXML('<root/>') | Out-Null
$d.documentElement.Name
Saída esperada: root
. Se o objeto não puder ser criado, será emitida uma exceção; nesse caso, veja a secção “Reparar componentes”.
Método 3 — Inventário (com ressalva)
Algumas equipas usam WMI/WMIC para listar produtos MSI:
wmic product where "Name like '%%MSXML 6%%'" get Name, Version
Atenção: o MSXML 6.0 que vem com o Windows geralmente não aparece como “produto MSI” — ele é componente do SO. Este comando pode não retornar nada mesmo quando você tem o MSXML 6.0 instalado. Prefira os métodos 1 e 2 para confirmação. Além disso, Win32_Product
pode disparar reconfiguração MSI e é desaconselhado em ambientes de produção.
Quando (e apenas quando) usar o msxml6.msi
O pacote msxml6.msi
foi concebido para redistribuição de aplicações que precisam levar a biblioteca para sistemas legados (Windows 2000/XP/Server 2003) ou cenários específicos de instalação lado‑a‑lado. Em sistemas modernos (Windows 7 SP1+ e Windows Server 2008 R2+), o SO já possui MSXML 6.0 mantido pelo Windows Update. [1]
Se a sua ferramenta de empacotamento ou auditoria exige um artefacto MSI por política, documente a exceção: “No Windows Server 2019, o MSXML 6.0 é componente do sistema; o .MSI destina‑se apenas a redistribuição em sistemas legados”. Em pipelines de setup que ainda pedem o MSI, a documentação clássica descreve a propriedade APPGUID
para vincular o instalador à sua aplicação:
msiexec /i msxml6.msi /qn APPGUID="{SUA-GUID-DE-APLICACAO}"
Use isso somente para máquinas legadas. Em Windows Server 2019, não instale um pacote externo por cima do componente do sistema.
Etapas práticas recomendadas
Confirmar a versão já presente
wmic product where "Name like '%%MSXML 6%%'" get Name, Version
Ou abra as Propriedades → Detalhes de msxml6.dll
em System32
.
Caso o ficheiro falte ou esteja corrompido
DISM /Online /Cleanup-Image /RestoreHealth
sfc /scannow
O que cada comando faz:
DISM /RestoreHealth
repara a imagem do Windows usando a fonte de componentes (ou WSUS quando configurado), restaurando ficheiros do sistema ausentes/danificados.sfc /scannow
verifica e substitui ficheiros protegidos do Windows por cópias corretas do cache do sistema.
Distribuir para máquinas legadas
- Copie o
msxml6.msi
que acompanha kits antigos (ex.: SDKs ou SQL Server 2005) ou use o Update Catalog corporativo. - Inclua o .MSI no seu instalador e declare a dependência pelo parâmetro
APPGUID
, como descrito na documentação oficial. [1]
Remover versões obsoletas
Desinstale apenas o MSXML 4.0 e anteriores. Essas versões estão fora de suporte e podem disparar achados de segurança em scanners. O MSXML 6.0 deve permanecer, pois muitas aplicações dependem dele.
Por que alguns utilizadores “não encontram o link” do MSXML 6.0?
- O link de download direto do pacote foi retirado pela Microsoft desde 2021; a orientação é não instalar o MSI em sistemas que já incluem MSXML 6.0 nativamente.
- Respostas curtas em fóruns (do tipo “NO”) refletem essa mudança de política — não há defeito no Windows Server 2019, apenas não se recomenda baixar um pacote redundante. [3]
Arquitetura 32/64 bits e onde procurar ficheiros
Local | Plataforma | O que significa |
---|---|---|
C:\Windows\System32\msxml6.dll | 64 bits | Biblioteca MSXML 6.0 para processos 64 bits. |
C:\Windows\SysWOW64\msxml6.dll | 32 bits em SO 64 bits | Biblioteca MSXML 6.0 para processos 32 bits (WOW64). |
Scripts úteis para operações e auditoria
PowerShell: confirmar criação de objetos COM
try {
$d = New-Object -ComObject 'Msxml2.DOMDocument.6.0'
$ok = $d.loadXML('<root/>')
if ($ok) { Write-Output 'MSXML 6.0 OK (COM criado e XML carregado).' }
else { Write-Error 'MSXML 6.0 encontrado, mas falha ao carregar XML.' }
} catch {
Write-Error ('Falha ao criar COM Msxml2.DOMDocument.6.0: ' + $_.Exception.Message)
}
PowerShell: ler a versão do ficheiro
$paths = @('C:\Windows\System32\msxml6.dll','C:\Windows\SysWOW64\msxml6.dll')
foreach ($p in $paths) {
if (Test-Path $p) {
(Get-Item $p).VersionInfo | Select-Object FileName,ProductVersion,FileVersion
}
}
CMD: reparar imagem e verificar ficheiros do sistema
DISM /Online /Cleanup-Image /RestoreHealth
sfc /scannow
FAQ — Perguntas frequentes
Preciso instalar MSXML 6.0 manualmente no Windows Server 2019?
Não. O MSXML 6.0 já vem com o sistema e é atualizado pelo Windows Update.
Por que minha ferramenta de inventário não encontra “MSXML 6.0”?
Porque o MSXML embutido não é um “produto MSI” e pode não aparecer em Win32_Product
. Confirme pelo ficheiro msxml6.dll
ou pelo teste COM.
O que fazer se um auditor exigir “o .MSI instalado”?
Explique que, em 2019/2022, o MSXML 6.0 é componente do SO. Se houver política que exige MSI, restrinja‑se a máquinas legadas ou à redistribuição junto da sua aplicação, seguindo a propriedade APPGUID
. [1]
Posso remover o MSXML 6.0?
Não. Muitas aplicações dependem dele. Remova apenas MSXML 4.0 e anteriores.
Qual a diferença entre MSXML 3.0, 4.0 e 6.0?
O 6.0 é a versão moderna e segura (XSD atualizado, recursos removidos por segurança). O 4.0 está obsoleto; o 3.0 existe por compatibilidade, mas novas aplicações devem usar 6.0.
O wmic product
é confiável para este caso?
Não para componentes embutidos. Além disso, o WMIC/WMI MSI pode ser intrusivo. Prefira verificação por ficheiro e teste COM.
Como reparar se o msxml6.dll
estiver faltando?
Use DISM
e SFC
. Evite copiar DLLs manualmente ou instalar MSI externo no Windows Server 2019.
Há riscos ao manter MSXML 4.0?
Sim. O 4.0 não recebe correções de segurança e costuma gerar achados em avaliações de vulnerabilidade. Remova‑o.
Erros comuns e como evitá‑los
- Instalar um MSI redundante no Windows Server 2019. Correto: usar os mecanismos nativos do Windows (DISM/SFC) e manter o componente do SO.
- Confiar apenas em inventários MSI. Correto: confirmar por ficheiro e por criação de objeto COM.
- Excluir a DLL manualmente. Correto: nunca apagar DLLs do sistema; use os utilitários de reparo.
- Deixar MSXML 4.0 instalado. Correto: remover versões obsoletas e manter o 6.0.
Checklist de ação
- Verifique
msxml6.dll
emSystem32
/SysWOW64
. - Teste a criação COM com PowerShell (
Msxml2.DOMDocument.6.0
). - Repare com
DISM
eSFC
se necessário. - Remova somente MSXML 4.0 e anteriores.
- Documente para auditoria: no Server 2019, MSXML 6.0 é componente nativo; MSI somente para legados. [2][3]
Como responder a exigências de auditoria
Modelo de resposta que você pode adaptar:
No Windows Server 2019, o MSXML 6.0 é componente do sistema operativo e já está presente como
msxml6.dll
emSystem32
/SysWOW64
. A instalação viamsxml6.msi
é destinada a redistribuição em sistemas legados. Validamos a criação COM deMsxml2.DOMDocument.6.0
e a integridade comDISM
eSFC
.
Mensagem‑chave
No Windows Server 2019 o MSXML 6.0 já está instalado (verifique msxml6.dll
). Só procure o .MSI
se precisar redistribuir a biblioteca para versões antigas do Windows.
Notas e referências
- [1] “Installing and Redistributing MSXML 6.0” — diretrizes sobre quando usar
msxml6.msi
e a propriedadeAPPGUID
. - [2] Discussões recentes em Q&A da Microsoft indicam remoção do link público do instalador e recomendam usar o componente já embutido.
- [3] Tópicos de fórum reforçam: para Windows Server 2019/2022, não há necessidade de download separado.
Conclusão
Se a sua meta é deixar o Windows Server 2019 conforme, seguro e auditável, não instale um pacote separado do MSXML 6.0. Em vez disso, comprove a presença do msxml6.dll
, valide a criação COM e, quando necessário, utilize DISM
e SFC
para reparar o sistema. Reserve o msxml6.msi
para cenários legados onde realmente faça sentido.