Aprenda a remover o erro “A DISM session could not be opened. Error: 0x8004015” ao instalar o .NET Framework 3.5 offline no Windows Server 2019. Guia passo a passo com comandos DISM/PowerShell, boas práticas de GPO/WSUS e validação de mídia para ambientes sem Internet.
Visão geral do problema
Você tem um servidor Windows Server 2019 sem acesso à Internet e precisa habilitar o .NET Framework 3.5 (feature NetFx3
). Ao tentar pelo assistente Add Roles and Features, informando a ISO do sistema em Specify an alternate source path, aparece o erro:
The request to add or remove features on the specified server failed.
A DISM session could not be opened. Error: 0x8004015.
Esse erro indica que o DISM (Deployment Image Servicing and Management) não conseguiu iniciar ou manter uma sessão estável para habilitar a feature. Na prática, quase sempre é reflexo de um ou mais fatores: caminho \sources\sxs
incorreto ou inacessível, build da mídia diferente do sistema, pendência de reinicialização/atualizações, tentativa de baixar componentes da Internet (bloqueada) ou corrupção no repositório de componentes.
Resumo rápido (para resolver em minutos)
- Monte a ISO do Windows Server 2019 (mesma edição/idioma/build do servidor) e confirme a pasta
D:\sources\sxs
. - Reinicie o servidor para limpar sessões pendentes do DISM/instalações incompletas.
- No Prompt de Comando (Admin), execute:
dism /online /enable-feature /featurename:NetFx3 /All /Source:D:\sources\sxs /LimitAccess
- Se falhar, rode a sequência de reparo:
dism /online /cleanup-image /scanhealth dism /online /cleanup-image /restorehealth sfc /scannow
e tente a instalação novamente.
Por que o erro 0x8004015 acontece
- Caminho SxS inválido/inacessível: a pasta
\sources\sxs
não existe, está num drive diferente (letra mudou) ou o usuário não tem permissão de leitura. - Mídia não correspondente: ISO de build diferente do Windows Server em execução (ex.: Cumulative Updates divergentes). O DISM recusa os binários.
- Pendência de reinicialização ou atualização: instalações anteriores deixaram o sistema em estado pendente (Pending).
- Políticas/WSUS: o servidor tenta buscar conteúdo de reparo na Internet (WU) mas não tem acesso, gerando falha ou bloqueio.
- Corrupção do repositório de componentes: problemas no Component Store podem impedir a abertura/execução da sessão do DISM.
Pré‑requisitos e boas práticas
- Executar tudo com privilégios elevados (Prompt de Comando/PowerShell “Executar como administrador”).
- Usar a mesma mídia do sistema: edição, idioma e build equivalentes ao servidor (idealmente a ISO de instalação exata).
- Montar a ISO no próprio servidor ou expor a pasta
\sources\sxs
via compartilhamento de rede com leitura garantida. - Evitar downloads externos em ambientes offline: use
/LimitAccess
e/ou configure GPO para fonte alternativa. - Registrar o que fez: anote comandos e resultados, e preserve logs (
C:\Windows\Logs\DISM\DISM.log
eC:\Windows\Logs\CBS\CBS.log
).
Procedimento completo, do básico ao avançado
Validar a mídia e o caminho SxS
Depois de montar a ISO, confirme a existência e o acesso à pasta \sources\sxs
(exemplo com a unidade D:
):
dir D:\sources\sxs
Se estiver usando rede, teste o compartilhamento:
dir \\ServidorDeArquivos\WinServer2019\sources\sxs
Procure arquivos relacionados a NetFx3
na pasta:
dir D:\sources\sxs\netfx3 /b
Reiniciar para limpar sessões pendentes
Reinícios simples resolvem travamentos internos do DISM. Se você já tentou instalar, reinicie o servidor antes da nova tentativa.
Checar pendências e saúde do repositório
Execute o diagnóstico do DISM:
dism /online /cleanup-image /scanhealth
Se apontar problemas, tente o reparo usando a própria ISO como origem (em ambientes offline, isso evita a Internet):
dism /online /cleanup-image /restorehealth /Source:D:\sources\sxs /LimitAccess
Instalar o .NET 3.5 com DISM (modo offline)
Use o comando abaixo. O parâmetro /All
habilita subcomponentes, e /LimitAccess
impede tentativas de contato com a Internet/WSUS.
dism /online /enable-feature /featurename:NetFx3 /All /Source:D:\sources\sxs /LimitAccess
Verificar integridade de arquivos de sistema
Após o DISM, rode o Verificador de Arquivos de Sistema:
sfc /scannow
Alternativa via PowerShell
Se preferir PowerShell, o cmdlet abaixo é equivalente:
Install-WindowsFeature -Name NET-Framework-Features -Source D:\sources\sxs -IncludeAllSubFeature -Verbose
Confirmar a instalação
Cheque o status da feature:
dism /online /Get-Features /Format:Table | findstr /i NetFx3
Ou no PowerShell:
Get-WindowsFeature NET-Framework-Core
Ações e comandos recomendados (tabela rápida)
Objetivo | Comando ou ação | Detalhes |
---|---|---|
Validar o caminho da mídia | Verificar D:\sources\sxs (ou equivalente) | Erro comum quando o caminho está incorreto ou sem permissão de leitura. |
Limpar sessões pendentes / reiniciar | Reiniciar o servidor | Reinícios simples resolvem travamentos de sessão do DISM. |
Checar atualizações pendentes | dism /online /cleanup-image /scanhealth | Confirma que não há pendências que bloqueiem a instalação. |
Instalar via linha de comando | dism /online /enable-feature /featurename:NetFx3 /All /Source:D:\sources\sxs /LimitAccess | Evita o assistente gráfico e dispensa Internet/WSUS. |
Reparar componentes do DISM | dism /online /cleanup-image /restorehealth | Corrige corrupções que podem causar o 0x8004015. |
Verificar integridade do sistema | sfc /scannow | Garante que arquivos de sistema essenciais não estejam corrompidos. |
Alternativa via PowerShell | Install-WindowsFeature -Name NET-Framework-Features -Source D:\sources\sxs | Método equivalente usando o cmdlet do Windows Server. |
Configurar fonte alternativa pela Política de Grupo (GPO)
Em ambientes corporativos, padronize a origem offline para todos os servidores:
- Abra o Editor de Política de Grupo:
gpedit.msc
(ou configure a GPO no AD). - Navegue até: Computer Configuration → Administrative Templates → System → Specify settings for optional component installation and component repair.
- Habilite a política e, em Alternate source file path, informe um caminho estável, por exemplo:
\\FileServer\WinSxS\WS2019\sources\sxs
- ou
D:\sources\sxs
(se cada servidor montar sua própria ISO).
- Em ambientes sem Internet, marque a opção para não tentar obter conteúdo no Windows Update.
- Atualize as políticas e teste:
gpupdate /force
WSUS, ISO virtual e outras práticas
- WSUS: se houver WSUS, garanta que “Features on Demand” estejam autorizadas ou aplique a GPO anterior para direcionar sempre ao caminho offline.
- ISO montada: preferencial em ambientes isolados. Monte a mídia de instalação em uma unidade virtual e use
\sources\sxs
como origem. - Rede dedicada: um compartilhamento interno com
\sources\sxs
de cada versão suportada simplifica a manutenção.
Como montar e identificar a unidade da ISO
PowerShell (Admin):
Mount-DiskImage -ImagePath "C:\ISO\WindowsServer2019.iso"
Get-Volume | Where-Object DriveType -eq 'CD-ROM'
Depois, quando terminar:
Dismount-DiskImage -ImagePath "C:\ISO\WindowsServer2019.iso"
O Get-Volume
exibirá a letra da unidade do DVD virtual (por exemplo, D:
).
Script PowerShell que localiza a pasta SxS e instala automaticamente
Use o script abaixo para encontrar automaticamente \sources\sxs
(em unidades locais, DVD virtual ou caminhos de rede pré-definidos) e habilitar o NetFx3
com segurança.
# Executar no PowerShell (Admin)
$possiveisCaminhos = @()
DVD virtual / mídias com DriveType CD-ROM
$possiveisCaminhos += (Get-Volume | Where-Object DriveType -eq 'CD-ROM' | ForEach-Object { "$($_.DriveLetter):\sources\sxs" })
Caminhos locais comuns
$possiveisCaminhos += @('D:\sources\sxs','E:\sources\sxs','C:\ISO\WS2019\sources\sxs')
(Opcional) Compartilhamentos internos
$possiveisCaminhos += @('\FileServer\WS2019\sources\sxs')
$caminhoSxs = $possiveisCaminhos | Where-Object { Test-Path $_ } | Select-Object -First 1
if (-not $caminhoSxs) { throw "Pasta \sources\sxs não encontrada. Monte a ISO ou ajuste os caminhos." }
Write-Host "Usando origem: $caminhoSxs"
dism /online /enable-feature /featurename:NetFx3 /All /Source:$caminhoSxs /LimitAccess
Validação
dism /online /Get-Features /Format:Table | findstr /i NetFx3
Diagnóstico pelos logs do DISM e CBS
Quando o erro persiste, investigue as entradas mais recentes dos logs:
C:\Windows\Logs\DISM\DISM.log
C:\Windows\Logs\CBS\CBS.log
Filtros úteis (PowerShell):
Select-String -Path 'C:\Windows\Logs\DISM\DISM.log' -Pattern 'Error|0x8004015|NetFx3' -CaseSensitive:$false | Select-Object -Last 50
Select-String -Path 'C:\Windows\Logs\CBS\CBS.log' -Pattern 'Error|Failed|NetFx3' -CaseSensitive:$false | Select-Object -Last 50
Se o log mencionar pending operations ou reboot required, reinicie e repita a instalação.
Cenários especiais que exigem atenção
Build/edição/idioma diferentes
O Windows Server 2019 é comumente identificado pelo build 17763.x. Se a ISO for de build muito diferente, a pasta \sources\sxs
pode não conter binários compatíveis para o seu nível de cumulativos (UBR). Prefira a mídia original do seu ambiente ou uma ISO slipstream com os mesmos cumulativos aplicados.
Server Core vs Desktop Experience
Em Server Core, não há assistente gráfico — use DISM
ou Install-WindowsFeature
. Os comandos apresentados funcionam em ambas as edições.
Permissões e antivírus
Certifique-se de que a conta de instalação tenha leitura sobre a origem (rede/ISO) e verifique se soluções de segurança não estão bloqueando o acesso a \sources\sxs
.
Erros relacionados e correções rápidas
Código | Mensagem típica | Causa provável | Correção |
---|---|---|---|
0x8004015 | “A DISM session could not be opened” | Sessão travada, origem inválida, pendência de reboot | Reinicie, valide \sources\sxs , use /LimitAccess , rode scanhealth/restorehealth |
0x800F081F | “The source files could not be found” | Origem ausente/errada | Apontar a pasta correta \sources\sxs e garantir build compatível |
0x800F0906 | Falha ao baixar pela Internet | Sem Internet/WSUS bloqueando | Forçar origem offline e /LimitAccess ou configurar GPO |
0x800F0954 | Cliente tenta WSUS e falha | Política força WSUS sem conteúdo | Direcionar a fonte via GPO/pasta SxS; não usar WU em offline |
Checklist final de instalação
- ISO correta (mesma edição/idioma/build) montada e
\sources\sxs
acessível. - Servidor reiniciado para limpar pendências.
dism /online /cleanup-image /scanhealth
sem erros críticos.- Instalação com
dism /enable-feature
usando/Source
e/LimitAccess
. - Se necessário,
/restorehealth
+sfc /scannow
concluídos com sucesso. - Validação com
Get-WindowsFeature NET-Framework-Core
oudism /Get-Features
. - GPO ajustada para fonte offline padronizada (opcional, recomendável em domínios).
Perguntas frequentes (FAQ)
Posso usar a pasta SxS de outro Windows (ex.: Windows 10)?
Não. Use a mesma família e build do Windows Server 2019. Misturar fontes costuma gerar erros como 0x800F081F
ou falhas de manutenção.
Preciso estar conectado à Internet?
Não. Em ambientes offline, sempre aponte /Source:<caminho>
e use /LimitAccess
. Assim o DISM não tenta baixar nada.
O assistente gráfico falha; a linha de comando funciona?
Sim. O DISM/PowerShell geralmente contorna falhas do assistente e oferece mensagens de erro mais claras para troubleshooting.
Como confirmar se o servidor precisa reiniciar?
Verifique chaves de pendência ou mensagens do próprio DISM. Como prática, reinicie antes de uma nova tentativa caso tenha ocorrido falha anterior.
Conclusão
O erro DISM 0x8004015 ao instalar o .NET Framework 3.5 no Windows Server 2019 quase sempre se resolve com uma sequência disciplinada: validar o caminho \sources\sxs
, limpar pendências com um reinício, forçar a origem offline (/Source
+ /LimitAccess
) e, se necessário, reparar a imagem com scanhealth/restorehealth
e sfc
. Padronizar a fonte via GPO e, quando aplicável, servir a pasta SxS a partir de um compartilhamento interno reduz o retrabalho e elimina intermitências do assistente. Seguindo este guia, a instalação tende a ser previsível, reproduzível e rápida — mesmo em ambientes totalmente isolados da Internet.
Complementos úteis
- Versão da ISO – Utilize a mesma compilação (build) do Windows Server que está em execução; mídias de versão diferente podem causar falhas.
- Política de Grupo – Em ambientes corporativos, defina o Alternate source file path em Computer Configuration → Administrative Templates → System → Specify settings for optional component installation para que todos os servidores usem a mesma mídia offline.
- WSUS ou DVD virtual – Caso exista um WSUS interno com a feature, autorize o Feature on Demand ou monte o ISO da instalação em uma unidade virtual para simplificar o processo.