必须先启用隐藏设备并卸载幽灵驱动以解除注册表引用,再用driverstore explorer删除未使用inf包、dism命令清除未引用驱动、pnputil定向清理oem残留、清空softwaredistribution缓存并禁用自动备份。

Windows 11 的 DriverStore 文件夹(C:\Windows\System32\DriverStore\FileRepository)长期积累旧版、重复、未启用的驱动包,导致 C 盘无故丢失数 GB 甚至数十 GB 空间,且设备管理器中频繁出现灰色“幽灵设备”,常规卸载与磁盘清理完全无效——必须绕过系统锁定机制,从注册表引用、物理文件、组件缓存三层面同步清除。
启用隐藏设备并卸载幽灵驱动,切断注册表残留源头
这一步是后续所有清理生效的前提:不先清除已断开硬件在注册表中遗留的驱动引用,DriverStore 中对应 INF 包将始终被标记为“in use”,任何删除操作都会失败或被系统自动恢复。
按下 Win + R,输入 sysdm.cpl 回车,打开系统属性窗口。
切换到“高级”选项卡 → 点击右下角“环境变量”按钮 → 在“系统变量”区域点击“新建” → 变量名填 devmgr_show_nonpresent_devices,变量值填 1 → 连续点击“确定”保存。
再次 Win + R,输入 devmgmt.msc 回车,打开设备管理器。
顶部菜单栏点击“查看” → 勾选“显示隐藏设备” → 展开“显示适配器”“网络适配器”“声音、视频和游戏控制器”等全部大类 → 找出图标为灰色、名称含“已停用”或“该设备以前在此计算机上安装过”的条目。
右键该条目 → 选择“卸载设备” → 务必勾选“删除此设备的驱动程序软件” → 点击“卸载”确认。此操作会同步清除注册表中对该 INF 的引用记录,使 DriverStore 中对应包变为可删除状态。
用 DriverStore Explorer 图形化精准删除冗余驱动包
这是最安全、最直观、成功率最高的物理层清理方式,能实时识别“Not in use”“Old”“Duplicate”状态,且支持强制绕过系统文件锁。
方法一:从 GitHub 官方镜像下载最新版 DriverStoreExplorer.exe(地址:https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer),解压至 D:\DSExplorer 等非系统盘路径。
右键 DriverStoreExplorer.exe → 选择“以管理员身份运行” → 等待扫描完成(约 40 秒)。
点击顶部“Select Old Drivers”按钮,程序自动勾选所有发布日期早于当前日期 90 天、且状态为“No”或“Not in use”的驱动条目。
重点检查列表:忽略所有“In Use”列显示为“Yes”、设备名称为黑色字体(如“NVIDIA GeForce RTX 4090”)、或“Hardware ID”与你当前显卡/网卡完全匹配的条目;只保留勾选灰色字体、厂商为“Realtek RTL8168”“Intel(R) Ethernet Connection I219-V”等已淘汰型号的旧包。
点击右侧“Delete selected drivers”按钮 → 弹窗中必须勾选 “Also delete driver packages from Driver Store” → 点击“OK”执行删除。操作完成后无需重启,立即生效。
用 DISM 命令强制标记并清除未引用驱动缓存
DISM 是微软官方部署工具,其 /WindowsDriverCleanup 参数专为 DriverStore 设计,能扫描并移除所有未绑定到当前硬件配置的 INF 安装包及关联缓存文件,不破坏正在使用的驱动。
右键“开始”按钮 → 选择“Windows 终端(管理员)”。
输入命令:dism /online /Cleanup-Image /StartComponentCleanup /ResetBase → 回车执行 → 等待完成(约 8–12 分钟),此步重建组件索引,为后续清理铺路。
再输入命令:dism /online /Cleanup-Image /StartComponentCleanup /WindowsDriverCleanup → 回车执行 → 系统将深入扫描 C:\Windows\System32\DriverStore\FileRepository,识别并删除所有未引用驱动包。
执行完毕后,必须重启系统,否则部分被占用的句柄无法释放,物理文件不会真正删除。
用 pnputil 批量清除指定 OEM 驱动残留
当 DriverStore 中存在大量 oem0.inf、oem1.inf 等 OEM 预装驱动残留,且它们既不在用、又未被 Explorer 自动识别时,需用 pnputil 精准定位并定向清除。
第一步:列出全部驱动并筛选 OEM 条目
以管理员身份运行 Windows 终端(PowerShell 模式),执行:
pnputil /enum-drivers | findstr "oem" | findstr /v "Published"
第二步:逐条确认并删除
从上步输出中,复制每行末尾的 INF 文件名(如 oem12.inf),对每个确认无用的条目,执行:
pnputil /delete-driver oem12.inf /uninstall
注意:pnputil 删除的是驱动包元数据注册项,不是直接删文件夹;执行后需等待几秒再运行下一条,避免命令队列阻塞。
清空 SoftwareDistribution 缓存并禁用自动备份
Windows 更新服务会将驱动更新包缓存至 C:\Windows\SoftwareDistribution\Download,且默认启用“保留旧版驱动备份”策略,这部分内容虽不在 DriverStore 内,但属于同一驱动生命周期的冗余产物,不清除会导致下次更新继续堆积。
右键“开始”按钮 → 选择“终端(管理员)” → 依次执行以下三条命令:
net stop wuauserv
net stop cryptSvc
rd /s /q %windir%\SoftwareDistribution\Download
执行完毕后,重新启用服务:
net start wuauserv
net start cryptSvc
最后,禁用自动备份策略:按 Win + R 输入 gpedit.msc 回车 → 依次展开“计算机配置 → 管理模板 → Windows 组件 → Windows 更新” → 双击“配置驱动程序包清理” → 设置为“已启用” → “清理时间间隔(天)”填 30 → 点击“确定”。该策略将阻止系统无限期保留旧驱动备份。











