¿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.
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
- Confirma que no existe otro firewall instalado y que la desinstalación de herramientas como CrowdStrike, Cylance o Symantec no altera el síntoma.
- Ejecuta
dism /online /cleanup-image /scanhealth
ysfc /scannow
. Si ambos terminan sin reparar nada, el problema suele estar en permisos y no en archivos corruptos. - 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:
- Inicia sesión como administrador local (no con una cuenta de dominio con GPO restrictivas).
- Crea un punto de restauración y, opcionalmente, un backup de las reglas con
netsh advfirewall export "%systemdrive%\backup.wfw"
. - Ejecuta Windows Repair, selecciona únicamente “Repair Windows Firewall” y presiona Start Repair.
- Al finalizar, reinicia. El servicio
mpssvc
arrancará normalmente ynetsh 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ón | Objetivo | Notas |
---|---|---|
Crear punto de restauración | Reversión rápida | Siempre antes de tocar registro o firewall |
Exportar reglas con .wfw | Backup de configuración | Permite restaurar grupos personalizados |
Supervisar ACL con DSC | Detectar cambios accidentales | Ejecuta Test-TargetResource a diario |
Revisar GPO de dominio | Evitar sobrescrituras | Desvincula GPOs que impongan mpssvc=disabled |
Mantener Windows Repair | Reparaciones futuras | La 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.