答案是服务注册项缺失,需用sc命令重建mpssvc并修复依赖服务、重置防火墙策略、运行sfc/dism修复系统文件、授予注册表权限及补全mpssvc键值。

当你在 Windows 10 安全中心点击“防火墙”开关时,弹出提示“缺少关联服务”,说明系统已检测不到 mpssvc(Windows Defender Firewall)服务注册项,或其依赖服务(如 BFE、WMI)根本未加载——此时服务列表里可能压根找不到该服务,或显示为“服务不存在”。
确认 mpssvc 服务是否真实缺失
第一步:按 Win + R,输入 services.msc,回车打开服务管理器。
第二步:在服务列表中滚动查找Windows Defender 防火墙(对应服务名 mpssvc)。
若完全找不到该项,或右键菜单中无“属性”选项 → 确认服务注册表项已被删除或损坏,进入下一步;若存在但状态为“已禁用”或“启动类型为禁用”,则属于配置问题,不适用本场景。
重建 mpssvc 服务注册项
方法一:使用 sc 命令手动注册(适用于服务文件 intact 但注册丢失)
以管理员身份运行 Windows 终端(右键开始按钮 → “Windows 终端(管理员)”)。
执行以下命令(注意空格与大小写):
sc create mpssvc binPath= "%SystemRoot%\system32\svchost.exe -k netsvcs -p" start= auto depend= BFE/Winmgmt/Netman type= share
【必须执行此步后立即重启终端】,否则后续命令会因权限缓存失败。
再执行:
sc description mpssvc "Windows Defender Firewall"
最后验证:
sc query mpssvc
若返回 STATE: 4 RUNNING 或 STATE: 1 STOPPED(非 NOT_FOUND),说明注册成功。
修复底层依赖服务与系统组件
第一步:依次重启关键依赖服务 → 右键开始按钮 → Windows 终端(管理员)→ 执行:
net stop bfe && net stop winmgmt && net stop netprofm
net start bfe && net start winmgmt && net start netprofm
第二步:强制重载防火墙策略模块,绕过 UI 层检测异常:
netsh advfirewall reset
第三步:运行系统级修复命令(顺序不可调):
sfc /scannow
DISM /Online /Cleanup-Image /RestoreHealth
这两条命令需逐条执行,每条完成后再敲下一条;DISM 过程中若提示“找不到源”,请忽略并继续——Windows 会自动回退到 Windows Update 在线源。
恢复注册表权限与关键路径
方法一:授予 NT SERVICE\mpssvc 对 SharedAccess 树的完全控制权
以管理员身份运行 regedit → 导航至:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess
右键 → 权限 → 添加 → 输入 NT SERVICE\mpssvc → 勾选“完全控制” → 确定。
方法二:补全 mpssvc 注册表主键(仅当 sc create 失败且 regedit 中完全无 mpssvc 项时使用)
在 regedit 中,定位到:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
右键 Services → 新建 → 项 → 命名为 mpssvc。
在新建的 mpssvc 项内,右键空白处 → 新建 → DWORD (32位) 值 → 命名为 Start → 双击将其数值数据设为 2。
再右键 mpssvc → 新建 → 字符串值 → 命名为 DisplayName → 双击编辑,数值数据填入:@%SystemRoot%\system32\firewallapi.dll,-100。
最后,右键 mpssvc → 新建 → 多字符串值 → 命名为 DependOnService → 双击编辑,在数值数据框中逐行输入:
BFE
Winmgmt











