Windows 10 22H2 (19045.6466): Windows Defender Firewall service (mpssvc) terminates with ERROR_ACCESS_DENIED on every start; netsh wfp show state returns error 1753 (EPT_S_NOT_REGISTERED) — BFE reports Running but its RPC endpoint is not registered

明哲 闫 0 信誉分
2026-09-22T18:19:37.1133333+00:00

三、问题描述(Problem Statement)

mpssvc(Windows Defender Firewall)无法启动。

  • 每次开机自动启动失败,手动 sc start mpssvc 也失败
  • 服务进入 START_PENDING 后终止
  • 系统事件日志 Event ID 7024,服务特定错误为 Access is denied.
  • 已复现数十次(每次开机 + 每次手动尝试)

事件原文(中文系统):

事件 ID 7024,来源 Service Control Manager
Windows Defender Firewall 服务由于下列服务特定错误而终止:  Access is denied.

(另有一条相同事件把服务名写作 mpssvc)

连带影响:

  1. Windows 防火墙完全失效 netsh advfirewall show allprofiles state → An error occurred while attempting to contact the Windows Defender Firewall service.
  2. Internet 连接共享 (ICS) 无法启用 调用 INetSharingConfiguration::EnableSharing 恒返回 HRESULT 0x80040201("An event was unable to invoke any of the subscribers")。 推测原因:ICS 在启用共享时必须由防火墙服务创建共享规则,而该服务不可用。
  3. 移动热点不可用 热点 AP 正常建立(192.168.137.1 已分配给 Wi-Fi Direct 虚拟适配器), 但 192.168.137.1:67 上没有 DHCP 监听,客户端无法获取 IP。

四、关键证据(Key Evidence)

4.1 服务配置

sc qc mpssvc
  TYPE               : 20  WIN32_SHARE_PROCESS
  START_TYPE         : 2   AUTO_START
  BINARY_PATH_NAME   : C:\Windows\system32\svchost.exe -k LocalServiceNoNetworkFirewall -p
  LOAD_ORDER_GROUP   : NetworkProvider
  DISPLAY_NAME       : Windows Defender Firewall
  DEPENDENCIES       : mpsdrv
                       bfe
  SERVICE_START_NAME : NT Authority\LocalService

sc qsidtype mpssvc  -> SERVICE_SID_TYPE: RESTRICTED   (后被我改为 UNRESTRICTED,无改善)
sc qprivs  mpssvc   -> SeAssignPrimaryTokenPrivilege, SeAuditPrivilege, SeChangeNotifyPrivilege,
                       SeCreateGlobalPrivilege, SeImpersonatePrivilege, SeIncreaseQuotaPrivilege

4.2 注册表

HKLM\SYSTEM\CurrentControlSet\Services\mpssvc

DependOnService       = mpsdrv,bfe
Description           = @%SystemRoot%\system32\FirewallAPI.dll,-23091
DisplayName           = @%SystemRoot%\system32\FirewallAPI.dll,-23090
ErrorControl          = 1
FailureActions        = <binary, 44 bytes>
Group                 = NetworkProvider
ImagePath             = C:\Windows\system32\svchost.exe -k LocalServiceNoNetworkFirewall -p
ObjectName            = NT Authority\LocalService
RequiredPrivileges    = SeAssignPrimaryTokenPrivilege,SeAuditPrivilege,SeChangeNotifyPrivilege,
                        SeCreateGlobalPrivilege,SeImpersonatePrivilege,SeIncreaseQuotaPrivilege
ServiceSidType        = 3
Start                 = 2
SvcHostSplitDisable   = 1
SvcMemHardLimitInMB   = 27
SvcMemMidLimitInMB    = 20
SvcMemSoftLimitInMB   = 12
Type                  = 32

子键 Parameters:
  ServiceDll            = C:\Windows\system32\mpssvc.dll
  ServiceDllUnloadOnStop = 1

4.3 ⭐ 核心异常:服务安全描述符被"加固"

修复前 sc sdshow mpssvc 返回:

D:(A;;CCLCLORC;;;AU)(A;;CCDCLCSWRPLORCWDWO;;;SY)(A;;CCLCSWRPLORCWDWO;;;BA)(A;;CCLCLO;;;BU)
S:(AU;FA;CCDCLCSWRPWPDTLOSDRCWDWO;;;WD)

解码后关键点:BA(Administrators)的权限位为 CCLCSWRPLORCWDWO,不含 DC (SERVICE_CHANGE_CONFIG)。这导致:

sc config mpssvc start= auto  ->  [SC] OpenService FAILED 5:  Access is denied.
Set-Service mpssvc -StartupType Automatic -> Access is denied

即管理员无法配置该系统服务。此 SDDL 形态与 CIS/等保类安全基线加固后的服务 ACL 一致 (同机 bfe 的 SDDL 亦为同一加固形态)。

用 sc sdset 换成带 DC 的旧版 SDDL 后:

sc sdset -> [SC] SetServiceObjectSecurity SUCCESS
sc config mpssvc start= auto -> [SC] ChangeServiceConfig SUCCESS
sc sidtype mpssvc unrestricted -> [SC] ChangeServiceConfig2 SUCCESS

→ 服务配置权限问题已解决,但 mpssvc 仍然以 Access is denied 终止。 随后我进一步把 SD 改为给 LocalService (LS) 与 NT SERVICE\mpssvc 授予服务对象完全控制(含 DC), sc sdset 成功,服务依旧 Access is denied。

结论:该失败并非服务权限/配置层面问题。

4.4 其他环境异常

  • C:\Windows\System32\LogFiles\Firewall 目录原本不存在 (防火墙日志目录,正常系统应存在;疑似被清理/优化工具删除)。 已重建并授予 SYSTEM/Administrators/LOCAL SERVICE 完全控制 → 无改善。
  • 同机曾存在多个第三方 WFP 驱动,现均已禁用(Start=4): hrwfpdrv / nfwfp / sysdiag(火绒 Huorong,已卸载)、 miobles_wfp(WinpkFilter, "Junchang")、idmwfp(Internet Download Manager)、 savitar2_wfp("Proxy Network" v1.6.1.7)。
  • 已重置 BFE 的 WFP 持久化存储(HKLM\SYSTEM\CurrentControlSet\Services\BFE\Parameters\Policy\Persistent)。

4.5 相关组件状态(均正常)

BFE        Running  Automatic
mpsdrv     Running  (Start=3)
wfplwfs    Start=0 存在
SharedAccess Running Manual
icssvc     Running  Manual

SharedAccess 进程中 ipnathlp.dll 加载正常(ICS 引擎本身可用)。

4.6 ⭐⭐ 关键证据:netsh wfp show state 立即失败,报 RPC 端点未注册(error 1753)

在本机(管理员权限)执行:

netsh wfp show state

立即返回(耗时 0 秒,退出码 1),输出为:

Unable to write output to the XML file; error = 1753 (EPT_S_NOT_REGISTERED)
There are no more endpoints available from the endpoint mapper.

1753 = EPT_S_NOT_REGISTERED —— "RPC 端点映射器中没有任何可用端点"。

这条证据为什么关键:

  1. netsh wfp show state 的正常实现是:通过 RPC 调用 BFE(Base Filtering Engine) 取得完整过滤平台状态,再写入 wfpstate.xml。
  2. 现在它在发起 RPC 调用时就失败了,错误是 端点未在 RPC 端点映射器注册。 也就是说:BFE 服务虽然显示 Running,但它并没有把自己的 RPC 接口注册到端点映射器 —— 即 BFE 处于**"服务已启动但未完成初始化 / 假运行"**状态。
  3. 这直接解释了 mpssvc 的失败:mpssvc 的 ServiceMain 必须通过 RPC 与 BFE 交互 (注册/枚举自己的 WFP provider、sublayer、callout、filter)。 BFE 的 RPC 端点不存在 → 该步骤无法完成 → 服务以 Access is denied 终止。
  4. 该现象可稳定复现,微软工程团队可在本机一条命令验证。

附带的对照测试(同一方法、同样参数):

命令结果netsh wfp show state立即失败:error = 1753 (EPT_S_NOT_REGISTERED)``netsh wfp show counters立即返回:The following command was not found: wfp show counters.(此 build 无该子命令)netsh advfirewall show allprofiles立即返回:An error occurred while attempting to contact the Windows Defender Firewall service.``netstat -ano -p UDP正常返回(证明网络栈基本可用)Get-NetAdapter / Get-NetIPInterface正常返回> 说明:以上命令均不挂起,全部在 1 秒内返回。请勿把"命令挂起"当作本问题特征;

本问题的特征是 BFE 的 RPC 端点未注册(1753)。

给微软的关键提问由此收敛为: 为什么 BFE 报告 Running、但其 RPC 端点未注册到端点映射器?如何在不重装系统的前提下重建 BFE 的 RPC/WFP 状态? (见第六节问题 6)


五、已执行的排查与修复(全部无效)

Troubleshooting Already Performed (all without success)

#操作结果1卸载火绒安全软件 + 重启(清除其 HIPS/WFP 驱动)无效2sc sdset 将服务 SD 换为含 DC 的旧版 SDDLsc config 恢复可用,服务仍失败3给 LocalService / NT SERVICE\mpssvc 授予服务对象完全控制无效4sc sidtype mpssvc unrestricted(RESTRICTED→UNRESTRICTED)无效5禁用全部第三方 WFP 驱动无效6重置 BFE WFP 持久化存储无效7重建 LogFiles\Firewall 并修正权限无效8修正 SharedAccess\Parameters\FirewallPolicy\{Domain,Standard,Public}Profile 的 ACL无效9secedit /export /areas USER_RIGHTS 核查用户权限分配6 项必需权限均含 S-1-5-19(LOCAL SERVICE),与 Windows 默认一致 → 正常10sfc /scannow退出码 0,"未找到任何完整性冲突"11DISM /Online /Cleanup-Image /RestoreHealth退出码 0,"The operation completed successfully."12netsh winsock reset + netsh int ip reset + 多次重启无效13regsvr32 hnetcfg.dll / netcfgx.dll / netman.dll / netshell.dll无改善14netsh wfp show state立即失败(0 秒):Unable to write output to the XML file; error = 1753 (EPT_S_NOT_REGISTERED)「RPC 端点映射器中无可用端点」 —— 证明 BFE 虽为 Running 但其 RPC 端点未注册。见 4.6---

六、希望微软协助确认的问题(Questions)

What we are asking Microsoft to confirm

  1. 如何在不必重装系统的情况下修复/重新注册 Windows Defender Firewall 服务及其 WFP 组件?
  2. 是否存在受支持的方式重置 Windows 防火墙服务注册与 WFP 持久状态(例如通过 DISM 重新安装相关组件、 或 msdt/故障排除包、或某个官方修复工具)?
  3. mpssvc 的 ServiceMain 在何种具体条件下会返回 ERROR_ACCESS_DENIED? 是否有办法获取该失败点的详细跟踪(例如 WPP/ETW 跟踪 mpssvc.dll, 或 Microsoft-Windows-Windows Firewall With Advanced Security 分析日志)?
  4. 请确认:就地修复安装(in-place repair install,同一 Win10 22H2,保留个人文件与应用) 是否为该情形的受支持修复手段;若是,是否有更轻量的官方替代方案。
  5. 本机服务 SDDL 呈 CIS 基线加固形态、LogFiles\Firewall 被删 —— 是否有官方的 "安全基线回滚/服务 ACL 还原"工具可恢复系统默认可写状态。
  6. netsh wfp show state 在本机立即失败: Unable to write output to the XML file; error = 1753 (EPT_S_NOT_REGISTERED) ("RPC 端点映射器中无可用端点")。请问:
  • 为什么 BFE 服务显示 Running、但其 RPC 端点没有注册到 RPC 端点映射器? 这是否就是 mpssvc 的 ServiceMain 返回 ERROR_ACCESS_DENIED 的直接原因?
    • 是否存在受支持的方式重建 BFE 的 RPC/WFP 状态 (例如重新注册 BFE 的 RPC 接口、重置 HKLM\SYSTEM\CurrentControlSet\Services\BFE\Parameters\Policy\Persistent, 或通过 DISM/官方工具重新安装 BFE 与 Windows 防火墙组件)?
    • 是否有办法拿到 mpssvc 初始化阶段(经 RPC 向 BFE 注册 WFP 组件)的 ETW/WPP 跟踪,以定位返回 ERROR_ACCESS_DENIED 的确切调用点?
Windows 家庭版 | Windows 10 | 安全性和隐私
0 个注释 无注释

1 个答案

排序依据: 非常有帮助
  1. Carl-L 22,915 信誉分 Microsoft 外部员工 审查方
    2026-09-23T06:41:25.67+00:00

    免责声明:请注意,所提供的信息系使用自动翻译工具翻译而成。尽管我们力求准确,但译文未必能完全体现原文的含义、语境或意图。


    您好明哲 闫,

    欢迎来到 Microsoft Q&A 论坛。

    由于您的日志可能包含敏感信息,我已经将其转移到了一个安全的 存储区中。您可以通过“Message”按钮进行访问。根据日志判断,BFE 运行正常,但 MpsSvc 持续出现“ERROR_ACCESS_DENIED”(拒绝访问)这一特定服务错误;当两者同时发生时,便导致了故障。

    关于您的问题,经我核实,目前尚无无需重装系统即可修复防火墙的方法。不过,在考虑重置之前,我建议先进行一些进一步的诊断。该事件尚未揭示导致错误的原因,因此我们需要从中获取更多诊断信息。进行就地升级是一个合理的方案,您可以尝试一下,看看是否有助于解决问题。仅凭错误 1703 无法证明 BFE 未在运行或属于误报,因此 BFE 处于运行状态是正常的。在继续之前,能否请您先使用 Microsoft 的 TSS.ps1 脚本(场景参数为 NET_WFP)捕获原始的 Event 7024 故障日志?期待您的回复。

    此答案是否有帮助?


你的答案

提问者可以将答案标记为“已接受”,审查方可以将答案标记为“已推荐”,这有助于用户了解答案是否解决了提问者的问题。