Solución Error 0x8007045b en Windows Defender Firewall de Windows Server 2022/2019

¿El servicio Windows Defender Firewall se inicia y se detiene al instante en tu servidor recién actualizado y cada intento de netsh advfirewall reset finaliza con el código 0x8007045b? A continuación encontrarás un procedimiento probado para restaurar el firewall sin reinstalar el sistema ni afectar la producción.

Índice

Sintomatología y contexto

Tras una actualización in‑place de Windows Server 2019 a 2022 el rol de seguridad funciona aparentemente bien, salvo el cortafuegos. Los indicios típicos son:

  • Evento 7024 en el registro del Sistema: “The Windows Defender Firewall service terminated with service‑specific error 0x8007045b.”
  • El comando sc query mpssvc muestra STOPPED casi inmediatamente después de un START_PENDING.
  • Algunos equipos pierden conectividad RDP o sólo aceptan conexiones desde redes previamente permitidas.

Por qué ocurre tras un upgrade

Durante una actualización mayor se migran reglas, descriptores de seguridad y DLLs de filtrado. Si algo interrumpe el proceso—por ejemplo, un agente EDR que bloquea escrituras en el registro—los permisos de las claves HKEYLOCALMACHINE\SYSTEM\CurrentControlSet\Services\mpssvc y HKEYLOCALMACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess pueden quedar incompletos. Cuando el servicio arranca intenta leer su ACL, falla y devuelve 0x8007045b (ERRORSHUTDOWNIN_PROGRESS), código que Microsoft reutiliza aquí para indicar que no puede continuar.

Diagnóstico rápido

  1. Confirma que no existe otro firewall instalado y que la desinstalación de herramientas como CrowdStrike, Cylance o Symantec no altera el síntoma.
  2. Ejecuta dism /online /cleanup-image /scanhealth y sfc /scannow. Si ambos terminan sin reparar nada, el problema suele estar en permisos y no en archivos corruptos.
  3. Abre el Visor de eventos > Registros de aplicaciones y servicios > Microsoft > Windows > Firewall‑with‑Advanced‑Security. Los eventos 2041 o 2043 confirman una falla al leer la configuración.

Solución paso a paso

Descartar software de terceros

Aunque ya hayas retirado CrowdStrike, dedica un momento a inspeccionar HKLM\SYSTEM\CurrentControlSet\Services en busca de controladores de filtro de red residuales (por ejemplo, csagent). Si los encuentras, respalda la clave y elimínala temporalmente.

Reinicializar el servicio

Un reinicio forzado del servicio puede revertir un inicio fallido si el descriptor de seguridad aún es válido. Desde un Command Prompt elevado:

net stop "Windows Defender Firewall"
sc config mpssvc start= disabled
shutdown /r /t 0
sc config mpssvc start= auto
net start "Windows Defender Firewall"

Si recibes “Access denied” o “The requested control is not valid for this service”, la ACL está dañada y será necesario repararla.

Reparación selectiva con Windows Repair

La herramienta gratuita Windows Repair (All‑in‑One) de Tweaking.com sobrescribe las ACL predeterminadas del firewall y de BFE (Base Filtering Engine) sin tocar otros componentes. Procedimiento:

  1. Inicia sesión como administrador local (no con una cuenta de dominio con GPO restrictivas).
  2. Crea un punto de restauración y, opcionalmente, un backup de las reglas con netsh advfirewall export "%systemdrive%\backup.wfw".
  3. Ejecuta Windows Repair, selecciona únicamente “Repair Windows Firewall” y presiona Start Repair.
  4. Al finalizar, reinicia. El servicio mpssvc arrancará normalmente y netsh advfirewall reset ya no arrojará 0x8007045b.

Verificación posterior

  • Comprueba que el perfil de dominio vuelva a mostrarse como Activo con Get-NetFirewallProfile.
  • Abre el puerto 3389 con Enable-NetFirewallRule -DisplayGroup "Remote Desktop" y verifica la conectividad.
  • Reinstala CrowdStrike o cualquier EDR y observa el Visor de eventos durante 24 h para descartar interacciones.

Métodos alternativos si no puedes usar software externo

Restaurar permisos con SetACL o SubInACL

En entornos altamente regulados es frecuente que no se permita ejecutar utilidades de terceros. Aun así, las ACL pueden restaurarse con SetACL.exe (Microsoft) o SubInACL.exe (obsoleta pero eficaz):

sc stop mpssvc
SetACL.exe -on "HKLM\SYSTEM\CurrentControlSet\Services\mpssvc" -ot reg 
  -actn setowner -ownr "n:NT SERVICE\mpssvc"
SetACL.exe -on "HKLM\SYSTEM\CurrentControlSet\Services\mpssvc" -ot reg 
  -actn ace -ace "n:NT SERVICE\mpssvc;p:full"
sc start mpssvc

Tras la operación, vuelve a ejecutar netsh advfirewall reset.

Reinstalar la función de Seguridad

En Windows Server no existe un rol exclusivo para el firewall, pero eliminar y volver a agregar IP Security Policies y Routing and Remote Access fuerza la regeneración de dependencias. Esta vía consume más tiempo y exige varias reconfiguraciones manuales de IPsec.

Ejecutar un segundo upgrade in‑place

Como último recurso, repetir la instalación “sobre sí misma” utilizando los medios de Windows Server 2022 preserva datos y roles. Sin embargo, implica varias horas de downtime y la reinstalación de parches posteriores, por lo que suele reservarse para laboratorios o para servidores que ya planeaban una ventana de mantenimiento extensa.

Buenas prácticas para evitar la recaída

AcciónObjetivoNotas
Crear punto de restauraciónReversión rápidaSiempre antes de tocar registro o firewall
Exportar reglas con .wfwBackup de configuraciónPermite restaurar grupos personalizados
Supervisar ACL con DSCDetectar cambios accidentalesEjecuta Test-TargetResource a diario
Revisar GPO de dominioEvitar sobrescriturasDesvincula GPOs que impongan mpssvc=disabled
Mantener Windows RepairReparaciones futurasLa versión básica es gratuita

Preguntas frecuentes

¿El error 0x8007045b es exclusivo de Windows Defender Firewall?

No. También aparece en Windows Update y en la aplicación Servicios. Sin embargo, cuando lo ves junto al servicio mpssvc se relaciona casi siempre con permisos incorrectos en el registro.

¿Puedo automatizar la reparación?

Sí. Windows Repair dispone de línea de comandos: Repair_Windows.exe /Firewall /Silent. Integra la ejecución en tu pipeline de CI antes de poner en producción máquinas generadas por plantillas antiguas.

¿Es seguro ejecutar netsh advfirewall reset en un servidor en producción?

El comando no reinicia el servicio y no corta conexiones activas, pero elimina reglas personalizadas. Exporta las reglas y aplica las necesarias mediante GPO o PowerShell tan pronto termine el proceso de reparación.

Conclusión

El código de error 0x8007045b después de un upgrade de Windows Server rara vez indica un fallo profundo del sistema. En la mayoría de los casos es una combinación de ACL corruptas y servicios de filtrado que no se inician. Con la reparación selectiva de Windows Repair (o, en entornos restringidos, con SetACL) puedes restaurar el firewall en menos de 15 minutos, evitando reinstalaciones costosas y prolongadas ventanas de mantenimiento.

Índice