Erro 0x80070005 no Windows Server 2022: como corrigir o “Access Denied” no Windows Update

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.

Índice

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 ou C:\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/ou catroot2.
  • 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çãoComo checarO que esperar
Espaço em discofsutil volume diskfree c: ou Get-PSDrive -PSProvider FileSystem≥ 10% livre na unidade do sistema.
Serviços essenciaissc query wuauserv, sc query bits, sc query cryptsvcEstado RUNNING ou iniciam sem erro.
Proxy do WinHTTPnetsh winhttp show proxySem proxy indevido ou configurado corretamente.
Horáriow32tm /query /statusFonte válida e deriva mínima; sincronize se necessário.

Fluxo de correção recomendado

Execute as etapas abaixo na ordem sugerida.

EtapaAçãoObservações úteis
1. Solucionador de problemas do Windows UpdateEm 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 UpdateNo 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 /startcomponentcleanupRenomear a pasta SoftwareDistribution força o Windows a reconstruir o cache de atualizações, eliminando arquivos corrompidos.
3. Verificar integridade do sistemaAinda no Prompt (Admin): DISM /Online /Cleanup-Image /RestoreHealth sfc /scannowDISM 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 e w32tm /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 EventosWindowsUpdateClient 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 chaves WUServer e WUStatusServer, 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 aplique gpupdate /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ódigoResumoCorreção em alta probabilidade
0x80244022Timeout ao falar com WSUS/serviçoChecar rede, proxy, latência; logs WSUS.
0x800f081fFonte ausente para componentesDISM com /Source válido ou mídia.
0x8024a105Falha genérica de instalaçãoRepetir 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.

Índice