驱动卸载了、文件删了,注册表里的服务项却还留着。它们不会被加载,却会拖慢启动、污染事件日志,有时还藏着恶意驱动的痕迹。 本工具枚举 HKLM\SYSTEM\CurrentControlSet\Services 下全部服务,逐个校验目标文件是否真实存在, 标记风险、先备份再删除,全程可视化。
Windows 10 / 11 x64 · 删除操作需要管理员权限 · reports\ 目录自动留存扫描报告与 .reg 备份
| ✓ | 服务名 | 类型 | 启动方式 | 状态 | 目标路径 | 风险 |
|---|---|---|---|---|---|---|
| ☑ | Eg21dy | 内核驱动 | 3 手动 | 驱动文件缺失 | C:\Windows\System32\drivers\Eg21dy.sys | 可清理 |
| ☑ | zestqu | 内核驱动 | 3 手动 | 驱动文件缺失 | C:\WINDOWS\Fonts\zestqu.sys | 可清理 |
| ☑ | OpenArkDrv64 | 内核驱动 | 3 手动 | 驱动文件缺失 | …\AppData\Roaming\OpenArk\kernel\OpenArkDrv64.sys | 可清理 |
| ☐ | 360netmon | 内核驱动 | 1 系统启动 | 驱动文件缺失 | C:\WINDOWS\system32\drivers\360netmon.sys | 需人工确认 |
| ☐ | DXGKrnl | 内核驱动 | 0 引导启动 | 文件正常 | C:\WINDOWS\System32\drivers\dxgkrnl.sys | 禁止删除 |
| ☐ | Ntfs | 文件系统驱动 | 3 手动 | 无 ImagePath | — | 禁止删除 |
注册表里 HKLM\...\Services 下的每一项都不该被草率对待。工具做的第一步永远是读取与核验,而不是删除。
枚举 Services 下 1000+ 个子键,读取 Type / Start / Group / ImagePath / ServiceDll,扫描阶段不写任何注册表。
支持 \??\、\\?\、\SystemRoot\、环境变量、相对文件名,以及「.sys 后面跟着启动参数」的命令行写法。
「可清理」会进入默认预选;「需人工确认」需要你自己拿主意;被打上「禁止删除」的核心项不会出现在自动勾选里,手动勾选也会被直接拦截。
内置 120+ Windows 关键服务(ntfs / tcpip / dxgkrnl / storahci / usb 栈…),即便文件缺失也一律标记「禁止删除」。
遍历 Control\Class 的 UpperFilters / LowerFilters,仍在被过滤器引用的服务会被降级为「需人工确认」。
一键生成 HTML 可视化报告 + JSON 结构化数据,自动落在程序同级的 reports\ 目录,便于二次分析或存档。
requireAdministrator 清单,双击自动弹 UAC 提权driver_cleanup.py scan / clean,可脚本化批处理扫描只读、勾选可控、删除之前必先成功备份——任何一个环节失败,流程都会停在原地。
打开程序即自动开始,枚举全部服务项并校验每一条 ImagePath 指向的文件是否真实存在。
Parameters\ServiceDll默认只预勾选第三方残留项,支持四种视图切换与关键词模糊搜索,勾错了随时能取消。
点下按钮后,先对每一项执行 reg export,再递归删除整棵注册表子树。
.reg + 一份合并 _all_services_*.reg误删注册表服务项最坏的结果是系统无法启动。所以工具的默认策略写得相当保守。
OpenKey / EnumKey / EnumValue,「重新扫描」点到多少次都不会改动系统。PROTECTED 集合里。即便它们的 .sys 找不到,也标记为绿色「禁止删除」,CLI 会直接剔除,GUI 勾选会弹窗拒绝。Control\Class 的过滤器列表里,说明设备还在用它,降为「需人工确认」,不参与自动预选。Start = 0 / 1(引导或系统启动阶段加载)的缺失项会被标为黄色「需人工确认」,交由你决定,不替你做主。reg export;任何一项导出失败都会被跳过,并在日志里点名。想还原时双击对应的 .reg 即可。以下是开发机上的实际扫描结果。清理上述项目前的分布,可以看出残留驱动喜欢躲在哪里。
564 个驱动类服务里,105 个的目标文件已经不在磁盘上:104 个被判定为可安全清理,1 个(360netmon,Start=1)因属于引导/系统启动阶段加载而留待人工确认。
核心组件黑名单项缺失数为 0 —— 也就是说,被发现的残留 100% 来自第三方软件,不涉及系统自身.
数据来自 2026-09-14 的一次扫描,报告文件保留在 reports\ 目录下。
程序启动后自动扫描、自动预勾选安全项,你只需要复核一眼清单,然后点右上角那个按钮。
| ✓ | 服务名 | 显示名 | 类型 | 启动方式 | 状态 | 目标路径 | 风险 |
|---|---|---|---|---|---|---|---|
| ☑ | 10170vrEPc | 10170vrEPc | 内核驱动 | 3 手动 | 驱动文件缺失 | C:\Users\…\AppData\Local\Temp\wxA131ypQ.sys | 可清理 |
| ☑ | Eg21dy | Eg21dy | 内核驱动 | 3 手动 | 驱动文件缺失 | C:\Windows\System32\drivers\Eg21dy.sys | 可清理 |
| ☑ | OpenArkDrv64 | OpenArkDrv64 | 内核驱动 | 3 手动 | 驱动文件缺失 | C:\Users\…\AppData\Roaming\OpenArk\kernel\OpenArkDrv64.sys | 可清理 |
| ☑ | TF23Es | TF23Es | 内核驱动 | 3 手动 | 驱动文件缺失 | C:\Windows\System32\drivers\TF23Es.sys | 可清理 |
| ☑ | zestqu | zestqu | 内核驱动 | 3 手动 | 驱动文件缺失 | C:\WINDOWS\Fonts\zestqu.sys | 可清理 |
| ☐ | 360netmon | 360netmon | 内核驱动 | 1 系统启动 | 驱动文件缺失 | C:\WINDOWS\system32\drivers\360netmon.sys | 需人工确认 |
| ☐ | DXGKrnl | Microsoft DirectX 图形内核 | 内核驱动 | 0 引导启动 | 文件正常 | C:\WINDOWS\System32\drivers\dxgkrnl.sys | 禁止删除 |
| ☐ | bowser | Browser | 文件系统驱动 | 3 手动 | 文件正常 | C:\WINDOWS\system32\DRIVERS\bowser.sys | 禁止删除 |
| ☐ | Ntfs | Ntfs | 文件系统驱动 | 3 手动 | 无 ImagePath | — | 禁止删除 |
reg export 再删除.reg 即可还原工具只处理目标文件已经不存在的服务项——这类服务本来就无法被加载,系统启动时会被直接跳过。真正危险的是删除「文件还在」的关键服务,那部分已被白名单硬性拦截。
当然,注册表操作始终存在风险。所以流程里强制先 reg export 备份,且备份失败就不删。稳妥起见,清理前请先创建系统还原点。
两种情况会被降为黄色「需人工确认」:① 该服务名仍出现在 Control\Class 的 UpperFilters / LowerFilters 里,说明某个设备还在引用它;② 它的 Start 值为 0 或 1,属于引导/系统启动阶段加载,删掉的后果更需要你本人确认。
这类项仍可手动勾选(删除前会有二次确认弹窗),但工具不会替你做这个决定。
本机 1014 个服务项,扫描耗时约 8 秒。整个过程只读注册表、只读文件属性,不修改任何内容,不加载驱动,不影响正在运行的程序。
说明当前进程没有管理员权限。exe 已内嵌 requireAdministrator 清单,正常情况下双击会自动弹 UAC;若被安全软件拦截或你手动点了「否」,请右键 → 以管理员身份运行。
每次删除都会在 exe 同级目录生成 reports\backup\backup-时间戳\,里面每一项一个 .reg,外加一份合并的 _all_services_*.reg。还原时双击对应文件导入即可;也可以点界面上的「打开备份目录」。
程序的行为特征(提权、读写注册表)确实容易被启发式引擎误判。源码完全开放可自行审阅;若被拦截,把它加入白名单即可。