O erro 0x80070005 (“Access Denied”) no Windows Server 2022 indica que o Windows Update não conseguiu acessar arquivos, serviços ou chaves de Registro essenciais. Abaixo está um roteiro prático, com comandos prontos, diagnóstico e dicas para ambientes com e sem WSUS.
Visão geral do problema
Quando o código 0x80070005 aparece durante a verificação, download ou instalação de atualizações, o sistema sinaliza um bloqueio de acesso. Esse bloqueio pode ocorrer por permissões alteradas, antivírus interceptando operações, serviços do Windows Update parados, cache corrompido, horários não sincronizados (quebrando a validação de assinatura), fila do BITS travada, uso de proxy mal configurado ou metadados expirados em ambientes com WSUS.
Em servidores, a incidência é maior porque políticas (GPO), hardening e agentes de segurança endurecem ACLs e monitoram pastas sensíveis (por exemplo, %windir%\SoftwareDistribution
e %windir%\System32\catroot2
), disparando “Acesso negado” durante o ciclo de atualização.
Sintomas que ajudam a confirmar
- O Windows Update falha com a mensagem genérica “ocorreu um erro” e código 0x80070005.
- No Visualizador de Eventos → Aplicativo e Serviço > Microsoft > Windows > WindowsUpdateClient, eventos de falha de download/instalação.
- Em
C:\Windows\Logs\CBS\CBS.log
ouC:\Windows\WindowsUpdate.log
, entradas como “Access is denied” ou ERRORACCESSDENIED. - Serviços Windows Update (wuauserv), BITS, Criptografia (cryptSvc) iniciam e param repetidamente.
- Em redes com proxy: download inicia, avança alguns MB e interrompe; consumo de largura de banda é mínimo.
Causas prováveis
- Permissões incorretas em
SoftwareDistribution
e/oucatroot2
. - Antivírus/EDR com proteção de pastas, inspeção SSL ou bloqueio de hash.
- Cache do Windows Update corrompido.
- Fila do BITS com transferências travadas.
- Falta de espaço em disco, data/hora fora de sincronia ou fuso incorreto.
- Proxy/Firewall sem liberação para domínios de atualização da Microsoft.
- Metadados expirados/superseded no WSUS, aprovações pendentes ou classificações/produtos incorretos.
- GPOs que alteram ACLs de sistema ou desligam serviços necessários.
Antes de começar
- Janela de manutenção: aplique os passos fora do horário de pico.
- Backup: garanta cópia do System State (especialmente em Controladores de Domínio). Evite rollback de snapshots em DCs.
- Acesso administrativo: execute o Prompt/PowerShell como Administrador.
- Server Core: os comandos abaixo funcionam tanto em Core quanto em Desktop Experience.
Checklist rápido de triagem
Verificação | Como checar | O que esperar |
---|---|---|
Espaço em disco | fsutil volume diskfree c: ou Get-PSDrive -PSProvider FileSystem | ≥ 10% livre na unidade do sistema. |
Serviços essenciais | sc query wuauserv , sc query bits , sc query cryptsvc | Estado RUNNING ou iniciam sem erro. |
Proxy do WinHTTP | netsh winhttp show proxy | Sem proxy indevido ou configurado corretamente. |
Horário | w32tm /query /status | Fonte válida e deriva mínima; sincronize se necessário. |
Fluxo de correção recomendado
Execute as etapas abaixo na ordem sugerida.
Etapa | Ação | Observações úteis |
---|---|---|
1. Solucionador de problemas do Windows Update | Em Configurações/Definições → Atualização do Windows → Solução de problemas → Windows Update. | O assistente tenta reiniciar serviços e reparar chaves do Registro automaticamente. |
2. Redefinir componentes do Windows Update | No Prompt de Comando (Admin), execute na ordem: net stop wuauserv net stop cryptSvc net stop bits net stop msiserver ren %windir%\SoftwareDistribution SoftwareDistribution.old net start wuauserv net start cryptSvc net start bits net start msiserver dism /online /cleanup-image /startcomponentcleanup | Renomear a pasta SoftwareDistribution força o Windows a reconstruir o cache de atualizações, eliminando arquivos corrompidos. |
3. Verificar integridade do sistema | Ainda no Prompt (Admin): DISM /Online /Cleanup-Image /RestoreHealth sfc /scannow | DISM corrige a imagem do sistema; SFC repara arquivos protegidos. Reinicie ao concluir. |
4. Conferir permissões e antivírus | • Verifique se a conta SYSTEM possui controle total em %windir%\System32\catroot2 e %windir%\SoftwareDistribution .• Desative temporariamente antivírus de terceiros durante a instalação. | Permissões restritas ou antivírus agressivo são causas frequentes do erro. |
5. Espaço em disco, proxy e data/hora | • Garanta ≥ 10% de espaço livre na unidade do sistema. • Se houver proxy ou firewall, libere os domínios de atualização da Microsoft. • Sincronize data e hora (NTP). | Falhas de validação de assinatura e download incompleto também geram 0x80070005. |
6. Atualização offline (opcional) | Baixe o arquivo .msu correspondente no Microsoft Update Catalog e instale manualmente. | Útil quando o Windows Update falha mesmo após os passos anteriores. |
Detalhamento prático de cada etapa
Solucionador de problemas do Windows Update
No Windows Server 2022 (Desktop Experience), aceda a Configurações > Atualização do Windows > Solução de problemas e execute o assistente. Em edições que exibem o caminho antigo, utilize Atualização e Segurança > Solucionar problemas. No Server Core, use o sconfig
(opção de atualizações) e, se preferir interface, conecte via MMC/RSAT a partir de outra máquina.
Redefinição dos componentes do Windows Update
Os comandos acima param serviços, renomeiam o cache e reiniciam componentes. Se, após o procedimento, o erro persistir, adicione a renovação do catroot2
(apenas se necessário):
net stop cryptSvc
ren %windir%\System32\catroot2 catroot2.old
net start cryptSvc
Dica: Para filas presas do BITS, limpe-as:
PowerShell -NoLogo -NoProfile -Command "Get-BitsTransfer -AllUsers -State Error | Remove-BitsTransfer -Confirm:$false"
Verificação e reparo de integridade (DISM/SFC)
Execute DISM /RestoreHealth
e sfc /scannow
como Administrador. Anote o código de saída: valores diferentes de 0 indicam correções aplicadas (ou falhas). Se o servidor usa uma imagem de origem personalizada (WIM/ESD), configure uma fonte válida com /Source
.
Permissões e antivírus
Valide ACLs das pastas de atualização. Exemplo de leitura rápida:
icacls "%windir%\SoftwareDistribution"
icacls "%windir%\System32\catroot2"
Em geral, SYSTEM e TrustedInstaller devem manter controle total (F). Evite impor herança/ACLs genéricas ao diretório %windir%
. Caso o antivírus possua Self-Protection, desative-a temporariamente apenas para testar e crie exceções permanentes para SoftwareDistribution
e catroot2
se o teste resolver.
Espaço em disco, proxy e tempo
- Limpeza de componentes:
dism /online /cleanup-image /StartComponentCleanup
. Em ambientes críticos, evite/ResetBase
sem planeamento, pois remove reversão de patches antigos. - Proxy/Firewall: confira
netsh winhttp show proxy
. Se usar proxy autenticado, habilite regra de bypass para:.windowsupdate.com
,.update.microsoft.com
,.windowsupdate.microsoft.com
,.dl.delivery.mp.microsoft.com
,.delivery.mp.microsoft.com
,.msftconnecttest.com
,*.microsoft.com
. Ajuste a lista conforme sua política. - Sincronização de hora:
w32tm /resync
ew32tm /query /status
. Em domínio, valide a origem no PDC Emulator.
Atualização offline
Baixe o pacote .msu
da KB desejada e instale com:
wusa.exe C:\Patches\KB<número>.msu /quiet /norestart
Use esse caminho quando o Windows Update falhar de forma recorrente, mas valide a dependência entre KBs (algumas exigem SSU/LCU anteriores) e agende reinício.
Diagnóstico avançado
Logs do Windows Update
- Gere o log legível:
Get-WindowsUpdateLog
(PowerShell). O arquivo será criado na sua pasta de usuário. - Analise buscas por “0x80070005”, “Access is denied”, “ERRORACCESSDENIED” e nomes de DLLs/paths bloqueados.
Eventos e arquivos de sistema
- Visualizador de Eventos → WindowsUpdateClient e Setup. Observe IDs de falha de download/instalação e códigos complementares.
- CBS.log em
C:\Windows\Logs\CBS\CBS.log
. Filtre por DENIED para achar o arquivo ou chave que falhou. - DISM.log em
C:\Windows\Logs\DISM\dism.log
para detalhes do reparo da imagem.
ProcMon para identificar “Access Denied”
Se o bloqueio persistir e você suspeitar de antivírus/ACL, utilize o Process Monitor (Sysinternals) para capturar eventos de ACCESS DENIED durante StartScan/Download/Install. Filtros úteis: Result contains DENIED e Process Name is svchost.exe ou TiWorker.exe, Path contains SoftwareDistribution.
Ambientes com WSUS
- Produtos e classificações: certifique-se de que o WSUS sincroniza os produtos/versões usados (Windows Server 2022) e as classificações necessárias (Critical/Definition/Feature Packs/Updates/Upgrades, conforme política).
- Metadados: recuse (decline) atualizações superseded/expiradas e execute limpeza de servidor WSUS regularmente.
- Cliente aponta para WSUS: verifique em
HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate
as chavesWUServer
eWUStatusServer
, e a política “Especificar a localização do serviço de atualização da Microsoft na intranet”. - Teste de detecção: no cliente, tente
UsoClient StartScan
(com privilégios). Alternativa:usoclient.exe StartScan
em versões com o binário presente. - Reset do cliente WSUS: se houver corrupção, limpe
SoftwareDistribution
(como na etapa 2) e apliquegpupdate /force
para reescrever políticas. - SSL/Portas: confirme 8530/8531 de acordo com sua implementação; valide certificados se o WSUS usa HTTPS.
Permissões e ACLs: validação objetiva
Para diagnosticar rapidamente se ACLs são o problema, tente criar e remover um arquivo teste nas pastas:
whoami /user
echo test > %windir%\SoftwareDistribution\test.txt
del %windir%\SoftwareDistribution\test.txt
Se falhar para a conta SYSTEM (durante a instalação real quem grava é o serviço), revise as permissões. Em último caso — e apenas se você domina ACLs — reatribua o proprietário para NT SERVICE\TrustedInstaller e garanta controle total a SYSTEM e Administrators. Evite conceder Full Control a Everyone.
Rede e proxy: ajustes que evitam falsos “Access Denied”
- Proxy do sistema: se a organização usa proxy, configure o WinHTTP (o Windows Update usa esse canal) de forma alinhada ao navegador:
netsh winhttp import proxy source=ie
ou defina explicitamente. Caso não use proxy, limpe:netsh winhttp reset proxy
. - Inspeção SSL/TLS: a interceptação de tráfego pode quebrar a cadeia de confiança nos downloads; libere os domínios de atualização sem inspeção quando possível.
- DNS: garanta resolução e saída para CDNs da Microsoft; latência ou perda de pacotes também causam falhas de assinatura.
Automatizando a correção (PowerShell)
O script abaixo reúne os passos essenciais (use em janela elevada e teste antes em laboratório):
$ErrorActionPreference = 'Stop'
\$services = 'wuauserv','bits','cryptsvc','msiserver'
Write-Host "Parando serviços..."
foreach(\$svc in \$services){ sc.exe stop \$svc | Out-Null }
Write-Host "Limpando cache do Windows Update..."
\$sd = "\$env\:windir\SoftwareDistribution"
if (Test-Path \$sd){ Rename-Item -Path \$sd -NewName "SoftwareDistribution.old\_\$(Get-Date -f yyyyMMddHHmmss)" -ErrorAction SilentlyContinue }
Write-Host "Iniciando serviços..."
foreach(\$svc in \$services){ sc.exe start \$svc | Out-Null }
Write-Host "StartComponentCleanup..."
Start-Process -FilePath dism.exe -ArgumentList "/online","/cleanup-image","/startcomponentcleanup" -Wait -WindowStyle Hidden
Write-Host "Restaurando imagem (DISM)..."
Start-Process -FilePath dism.exe -ArgumentList "/Online","/Cleanup-Image","/RestoreHealth" -Wait -WindowStyle Hidden
Write-Host "Verificando arquivos protegidos (SFC)..."
Start-Process -FilePath sfc.exe -ArgumentList "/scannow" -Wait -WindowStyle Hidden
Write-Host "Varredura do Windows Update..."
Start-Process -FilePath "\$env\:windir\system32\usoclient.exe" -ArgumentList "StartScan" -WindowStyle Hidden -ErrorAction SilentlyContinue
Write-Host "Concluído. Reinicie o servidor se solicitado."
Boas práticas para evitar recorrência
- Mantenha uma janela de manutenção fixa e política de reinícios após patches.
- Padronize exceções no antivírus para pastas/serviços do Windows Update.
- Automatize limpeza de WSUS e revisão periódica de classificações/produtos.
- Monitore espaço em disco e saúde do Component Store (DISM) mensalmente.
- Documente GPOs que mexem em serviços/ACLs do sistema e teste-as antes de aplicar em produção.
Erros relacionados e como diferenciar
Código | Resumo | Correção em alta probabilidade |
---|---|---|
0x80244022 | Timeout ao falar com WSUS/serviço | Checar rede, proxy, latência; logs WSUS. |
0x800f081f | Fonte ausente para componentes | DISM com /Source válido ou mídia. |
0x8024a105 | Falha genérica de instalação | Repetir reset de componentes, reiniciar e tentar offline. |
Perguntas frequentes
É seguro renomear a pasta SoftwareDistribution?
Sim. O Windows a recria automaticamente. Você apenas perderá histórico de downloads temporários, não as atualizações já instaladas.
Preciso reiniciar?
Se o SFC/DISM substituir arquivos em uso ou se a atualização instalada exigir, o reinício é necessário. Em servidores, planeje a janela.
Posso deixar o antivírus desligado?
Apenas durante o teste. Restabeleça imediatamente e crie exceções formais caso ele seja o culpado.
Como forçar uma nova verificação?
Use usoclient StartScan
(quando disponível) ou abra a interface do Windows Update e clique em “Procurar atualizações”.
Resultados esperados e validação
Após aplicar as etapas 1 a 3 e reiniciar, a verificação de novas atualizações deve ocorrer sem exibir o erro 0x80070005. Caso persista, aprofunde a análise com o Get-WindowsUpdateLog
para identificar permissões específicas (arquivo, pasta ou chave do Registro) negadas durante o processo, ajuste a causa-raiz (ACL, antivírus, proxy, WSUS) e repita a verificação.
Dicas complementares úteis
- GPOs mal configuradas podem revogar permissões de serviços; revise políticas que alterem ACLs de
%windir%
e de serviços do Windows Update. - Use o
Get-WindowsUpdateLog
para correlacionar a DLL, arquivo ou chave que retorna acesso negado. - Em ambientes WSUS, sincronize e aprove as atualizações mais recentes. Objetos expirados no WSUS levam o cliente a falhar.
Resumo: o 0x80070005 no Windows Server 2022 quase sempre está ligado a permissões, cache corrompido ou interferência de segurança/rede. Siga o fluxo padronizado (solucionador → reset de componentes → DISM/SFC), valide ACLs, verifique proxy/hora e, se necessário, instale offline. Em WSUS, mantenha metadados limpos e políticas corretas.