Erro 0x8007045b no Windows Defender Firewall (Windows Server 2019/2022): como corrigir sem perder RDP

Após um upgrade in‑place do Windows Server 2019 para 2022, o Windows Defender Firewall (MpsSvc) pode iniciar e parar em segundos com o erro 0x8007045b. Este guia traz diagnóstico objetivo, correção validada e rotinas de validação, sem derrubar RDP.

Índice

Visão geral

Em alguns cenários de atualização in‑place (2019 → 2022), o serviço Windows Defender Firewall (MpsSvc) falha em permanecer em execução. O comando netsh advfirewall reset retorna “an unrecoverable Windows Defender Firewall error (0x8007045b) occurred”. Mesmo após DISM e SFC, nada é corrigido. O impacto é amplo: políticas de firewall não carregam, perfis de rede podem ficar inconsistentes e auditorias de segurança apontam não conformidade — ainda que as sessões RDP existentes continuem funcionando.

O que o código 0x8007045b significa

O 0x8007045b encapsula o erro Win32 ERRORSHUTDOWNIN_PROGRESS (decimal 1115). Na prática, ele costuma aparecer quando o serviço depende de um componente que não sobe (ou cujas permissões estão incorretas), levando o Windows a interpretar a inicialização como inviável e encerrar a tentativa. É um indício forte de permissões/ACLs quebradas nas chaves de serviço ou de uma dependência essencial em pane — quase sempre o Base Filtering Engine (BFE).

Sintomas observáveis

  • services.msc exibe o Windows Defender Firewall como StartingStopped após alguns segundos.
  • Event Viewer > System: Eventos do Service Control Manager (7000/7031/7023) indicando término inesperado do MpsSvc.
  • netsh advfirewall reset retorna o erro irrecuperável 0x8007045b.
  • Get-Service BFE pode indicar Stopped ou falha ao iniciar; dependências de rede ficam incoerentes.
  • Acesso RDP permanece ativo, porém novas regras não são aplicadas e o firewall pode ficar parcialmente desativado.

Soluções já tentadas (sem êxito)

AçãoResultado
DISM /online /cleanup‑image /scanhealth /restorehealth e SFC /scannowNenhuma corrupção encontrada ou corrigida
Verificar/ remover firewalls de terceirosNão havia; CrowdStrike foi removido sem mudar o quadro
Comparar permissões de registro (SharedAccess, mpssvc)Nenhuma diferença relevante
Parar/ desativar o serviço e reativá‑lo (sc config mpssvc)Mensagem Access Denied e o erro 0x8007045b persiste

Solução aceita

Usar a ferramenta “Windows Repair (All in One)” no modo de reparos customizados, com o item Repair Windows Firewall selecionado. Esta rotina repara chaves de registro, ACLs e dependências do serviço relacionadas ao MpsSvc, BFE e SharedAccess.

Por que funciona

Durante a atualização in‑place, pode ocorrer uma migração incompleta de descritores de segurança (SDDL), permissões de serviço e ACLs de chaves de registro sob HKLM\SYSTEM\CurrentControlSet\Services, além de relações de dependência entre BFE e MpsSvc. O módulo de reparo do Windows Repair regrava permissões padrão, recria dependências e restaura entradas sob SharedAccess\Parameters\FirewallPolicy, permitindo que o firewall seja inicializado normalmente.

Procedimento detalhado

  1. Janela de manutenção: planeje uma intervenção com possibilidade de reinicialização.
  2. Backup:
    • Exportar chaves: BFE, MpsSvc e SharedAccess: reg export HKLM\SYSTEM\CurrentControlSet\Services\BFE C:\Temp\BFE.reg reg export HKLM\SYSTEM\CurrentControlSet\Services\MpsSvc C:\Temp\MpsSvc.reg reg export HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess C:\Temp\SharedAccess.reg
    • Snapshot/backup de sistema conforme política corporativa.
  3. Executar o Windows Repair (All in One) como administrador:
    • Abra o utilitário, vá em Repairs > Open Repairs > Custom Mode.
    • Selecione Repair Windows Firewall. Em ambientes problemáticos, é comum também marcar:
      • Reset Registry Permissions (se aprovado pela política; redefine ACLs de chaves sensíveis).
      • Repair Important Services e Set Windows Services to Default Startup (garante BFE e MpsSvc em Automatic).
      • Repair Network (recria pilha Winsock e interfaces em estados padrão).
    • Inicie o reparo e aguarde a conclusão. O processo pode solicitar reinicialização.
  4. Validação pós-reparo: sc query BFE sc query mpssvc netsh advfirewall reset netsh advfirewall show allprofiles Get-NetFirewallProfile | Format-Table Name, Enabled Esperado: BFE e MpsSvc em Running; netsh advfirewall reset finaliza sem erro; perfis do firewall (Domain/Private/Public) em Enabled.

Após o reparo, o serviço inicia normalmente; o reset volta a funcionar e o acesso RDP permanece íntegro.

Possíveis causas raiz e como agir

Possível causa raizExplicação sucintaAção recomendada
Corrupção nas ACLs das chaves de serviço (BFE, MpsSvc, SharedAccess)Quebra a inicialização do Firewall e dispara 0x8007045b (“system shutdown in progress”)Usar script para redefinir permissões ou a própria “Windows Repair”
Dependência corrompida do serviço Base Filtering Engine (BFE)Sem o BFE o Firewall não sobeVerificar se o BFE está em Automatic e inicia sem erros
Políticas herdadas de antivírus/EDRRestrições de driver ou chave de registro bloqueiam MpsSvcDesinstalar temporariamente o EDR, remover drivers residuais e limpar políticas deixadas
Falha residual da atualização in‑placeArquivos e permissões não migram corretamenteComo último recurso, executar In‑place Repair com ISO do Windows Server ou preparar reinstalação limpa

Dica corporativa: após a correção, exporte uma imagem do sistema (ou snapshot) e documente as chaves de registro afetadas. Isso acelera futuros rollbacks ou automações de reparo.

Checklist de diagnóstico rápido

  • Confirmar serviços sc qc bfe sc qc mpssvc sc queryex bfe sc queryex mpssvc sc enumdepend mpssvc Cheque se MpsSvc depende de BFE e se ambos estão em Automatic.
  • Validar perfis e política netsh advfirewall show allprofiles netsh advfirewall show rule name=all state=enabled
  • Verificar logs
    • Event Viewer > Windows Logs > System: SCM (7000–7031).
    • Applications and Services Logs > Microsoft > Windows > Windows Firewall With Advanced Security > Firewall.
    • Se disponível: Microsoft‑Windows‑Base‑Filtering‑Engine/Operational.
  • Auditar EDR/AV Remova drivers e políticas residuais. Garanta reinicialização após a desinstalação.
  • Conferir GPO Computador > Configurações do Windows > Configurações de Segurança > Windows Defender Firewall with Advanced Security. Procure regras conflitantes (por exemplo, proibir serviço de firewall).

Plano B com correções manuais

Se você não puder usar a ferramenta de reparo, aplique a rotina abaixo. Execute em console elevado (Run as Administrator) e registre cada etapa para auditoria.

Garantir BFE e MpsSvc em automático e com dependência correta

sc config bfe start= auto
sc start  bfe

sc config mpssvc depend= bfe
sc config mpssvc start= auto
sc start  mpssvc 

Observe os espaços após start= e depend= (são obrigatórios no sc.exe).

Reparar pilha de rede e política do firewall

netsh winsock reset
netsh int ip reset
netsh advfirewall reset

Restaurar segurança padrão de serviços e registro (cautela)

Em servidores que herdaram permissões incorretas, a seguinte estratégia restaura ACLs padrão do sistema:

secedit /export /cfg C:\Temp\secpol-backup.inf
secedit /configure /db C:\Temp\reset.sdb /cfg %windir%\inf\defltbase.inf /areas REGKEYS FILESTORE SERVICES /verbose
gpupdate /force

Atenção: evite aplicar em Domain Controllers sem planejamento; revise exceções de segurança e softwares que exigem ACLs customizadas.

Reaplicar SDDL a partir de um servidor saudável

De um servidor funcional com a mesma versão/patch level, exporte os descritores de segurança:

sc sdshow bfe     > C:\Temp\bfe.sddl
sc sdshow mpssvc  > C:\Temp\mpssvc.sddl

No servidor afetado, valide diferenças e, se necessário, regrave com sc sdset. Faça isso apenas se dominar SDDL, pois um SDDL incorreto pode impedir o boot.

Validações essenciais após a correção

  • Estado dos serviços: Get-Service BFE, MpsSvc | Select-Object Name, Status, StartType
  • Política aplicada: Get-NetFirewallProfile | Format-Table Name, Enabled, DefaultInboundAction, DefaultOutboundAction
  • Regras ativas: Get-NetFirewallRule -Enabled True | Measure-Object
  • Conectividade RDP: confirme que a porta 3389 está permitida para o perfil vigente: netsh advfirewall firewall show rule name="Remote Desktop - User Mode (TCP-In)"
  • Eventos limpos: verifique se não há novos 7000/7031 relacionados a MpsSvc ou BFE.

Boas práticas para evitar recorrência

  • Desinstale EDR/AV legados antes do upgrade e reinstale versões certificadas para o novo SO.
  • Desative políticas conflituosas de firewall durante a janela de migração.
  • Execute DISM/SFC pré‑upgrade para reduzir ruído: dism /online /cleanup-image /startcomponentcleanup /resetbase dism /online /cleanup-image /scanhealth sfc /scannow
  • Automatize snapshots de VM imediatamente antes do upgrade e tags de mudança para rastreabilidade.

Perguntas frequentes

Posso aplicar a correção sem reiniciar? Na maioria dos casos, a reescrita de ACLs e serviços exige reinicialização para liberar handles e recarregar drivers/serviços dependentes.

O RDP cai durante o reparo? Em geral, não. O reparo do Firewall não remove regras padrão do RDP; ainda assim, valide acessos alternativos (iDRAC/iLO/Console VM).

Devo limpar repositórios do Windows Update? Não é obrigatório para esse erro, mas, se houver indícios de falha residual de upgrade, incluir Repair Windows Updates no Windows Repair pode ajudar.

E se o BFE não iniciar de forma alguma? Revise SDDL/ACLs, aplique secedit como acima, verifique drivers de EDR e considere In‑place Repair com ISO.

Roteiro de execução sugerido

  1. Coletar evidências: eventos, saída do sc query, export de chaves de registro.
  2. Garantir janela de manutenção e backup/snapshot.
  3. Rodar Windows Repair (All in One) com foco em Repair Windows Firewall (e reparos complementares quando aprovados).
  4. Reiniciar e validar serviços/perfis com os comandos deste guia.
  5. Documentar SDDL/ACLs atuais e armazenar para auditoria.

Apêndice técnico

Serviços e chaves relevantes

  • HKLM\SYSTEM\CurrentControlSet\Services\BFE (Base Filtering Engine)
  • HKLM\SYSTEM\CurrentControlSet\Services\MpsSvc (Windows Defender Firewall)
  • HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess (Firewall e ICS)
  • HKLM\SYSTEM\CurrentControlSet\Services\PolicyAgent (IPsec)

Comandos úteis para inventário

# PowerShell
$svcs = 'BFE','MpsSvc','PolicyAgent','IKEEXT'
Get-Service $svcs | Select Name, Status, StartType

Get-NetFirewallProfile | Select Name, Enabled, DefaultInboundAction, DefaultOutboundAction

Políticas de firewall

(Get-Item 'HKLM:\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy').Property

Regras habilitadas

Get-NetFirewallRule -Enabled True | Sort-Object DisplayName | Select -First 20 DisplayName, Direction, Action | Format-Table 

Indicadores de sucesso

  • Sem novos eventos 7000/7031/7023 para MpsSvc.
  • netsh advfirewall reset concluindo com Ok.
  • BFE e MpsSvc em Running após reboot.
  • Perfis Domain/Private/Public em Enabled e regras de produção carregadas.

Resumo executivo

O erro 0x8007045b após upgrade do Windows Server costuma estar ligado a permissões/ACLs e dependências corrompidas do BFE/MpsSvc. A correção mais direta e consistente foi executar o “Windows Repair (All in One)” com o reparo de firewall, que restaura chaves, ACLs e dependências. Valide serviços, perfis e regras com os comandos indicados e, em ambientes corporativos, registre um snapshot pós‑correção e padronize a automação para rollback/novas ocorrências.

Índice