必须从服务控制、注册表策略、调试器入口三路封堵:停用wersvc与diagtrack双服务;在hkey_current_user和hkey_local_machine下设disabled=1及doreport=0;清空aedebug下的debugger字符串值并设auto=0。

你在使用 Windows 11 时反复看到“Windows 正在向 Microsoft 报告问题”弹窗,或发现 werfault.exe 占用 CPU、ReportArchive 文件夹持续增长、事件查看器里堆满 WER 错误日志——这说明 Windows Error Reporting 后台调试器仍在运行,它不仅捕获崩溃现场,还主动启动调试器(如 WerFault.exe)分析 minidump、生成诊断包、触发上报流程。仅关设置或停一个服务无法切断其调试行为,必须从服务控制、注册表策略、调试器入口三路封堵。
停掉 WerSvc 与 DiagTrack 双核心服务
WerSvc 是错误调试器的执行主体,DiagTrack 是它获取上下文数据的来源。两者任一存活,werfault.exe 就可能被唤醒并拉起调试会话。
按下 Win + R → 输入 services.msc → 回车打开服务管理器。
找到【Windows 错误报告服务】(可能显示为 Windows Error Reporting Service 或 Problem Reports and Solutions),右键 → 属性 → 先点“停止”按钮 → 将“启动类型”设为“禁用” → 点击“应用”→“确定”。
再找到【连接的用户体验和遥测】(Connected User Experiences and Telemetry),同样执行:停止 → 启动类型设为禁用 → 应用 → 确定。
【若只停 WerSvc 而未停 DiagTrack,系统仍会在后台预加载调试上下文,导致 werfault.exe 静默启动并卡住进程】
注册表双路径封死调试器触发逻辑
服务停了,但系统仍可能通过注册表策略调用 WerFault.exe 处理未捕获异常。必须在用户级和系统级同时写入禁用标记,覆盖所有调试器唤起路径。
方法一:屏蔽当前账户的调试器调用链
按下 Win + R → 输入 regedit → 回车;
导航至 HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\Windows Error Reporting;
若路径不存在,逐级新建 Policies → Microsoft → Windows → Windows Error Reporting;
右键右侧空白处 → 新建 → DWORD (32 位) 值 → 命名为 Disabled → 双击设数值数据为 1(十进制)。
方法二:封锁全系统级调试器入口
继续在 regedit 中导航至 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\PCHealth\ErrorReporting;
新建 DWORD (32 位) 值,命名为 DoReport,数值数据填 0;
再导航至 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Windows Error Reporting;
新建 DWORD 值 Disabled,数值设为 1。
注意:这两处注册表路径若缺任何一级,werfault.exe 都可能绕过策略直接启动。
删除 WerFault.exe 的默认调试器注册项
Windows 会将 werfault.exe 注册为全局 JIT(即时)调试器,一旦程序崩溃且未指定其他调试器,系统就自动调它。这步不清理,哪怕服务停了、注册表也改了,崩溃瞬间仍会闪出 werfault 窗口。
第一步:按下 Win + R → 输入 regedit → 回车;
第二步:导航至 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug;
第三步:双击右侧的 Debugger 字符串值 → 将原内容(通常是 "C:\Windows\System32\WerFault.exe -e %ld -p %ld -s %ld")全部删空 → 点击“确定”;
第四步:确保该键值下 Auto 值为 0(若不存在,右键新建 DWORD 值 Auto,设为 0);
【清空 Debugger 值后,系统不再默认调用 werfault.exe,崩溃时将直接终止进程而不弹窗、不调试】











