适用场景 :Windows 11 卸载 360 安全卫士、360 软件管家后,仍残留
winToolBox、SoftMgr、SoftMgrExt64.dll等文件夹或 DLL,
删除时提示“文件正在使用”“文件已在另一个程序中打开”,
即使管理员权限、CMD、PowerShell、甚至安全模式都删不掉。
2026/06/11 声明: 经过 XiGou (Xi Gou) · GitHub 测试,本文所讲解之方案确实有效,且补充被设置占用 小节
Source: https://blog.csdn.net/weixin_70874886/article/details/159324879
一、问题背景
前段时间误装了 360 安全卫士 。卸载后,本以为事情结束了,结果系统里还留下了一堆残留组件,典型包括:
最麻烦的是,这些残留文件和文件夹 根本删不掉 。
我尝试了资源管理器直接删除、管理员 CMD 删除、PowerShell 删除,甚至进入了 安全模式 ,结果仍然提示:
操作无法完成,因为文件已在另一个程序中打开。
请关闭该文件并重试。
从现象看像是“权限问题”,但实际上不是。
二、报错现象
1. 删除 winToolBox 文件夹时报错
删除路径:
C:\Users\Chen\AppData\Local\winToolBox

系统提示文件夹正在被占用。
2. 即使在安全模式下,SoftMgrExt64.dll 仍然被占用
更关键的是,进入安全模式后,删除 SoftMgr 目录下的 DLL,仍然提示:
- 文件名:
SoftMgrExt64.dll - 文件说明: 360软件管家
- 公司: 360.cn
这一步基本说明:
问题不在于普通程序没关,而在于这个 DLL 被系统组件加载了。
三、尝试过但无效的方法
方法 1:资源管理器直接删除
结果: 失败
提示“文件正在使用”。
方法 2:管理员 CMD 强删
我尝试过类似下面的命令:
rd /s /q "C:\Users\Chen\AppData\Local\winToolBox"
bat1
结果: 失败
原因是文件并不是单纯权限不足,而是被占用。
方法 3:PowerShell 强删
Remove-Item -LiteralPath "C:\Users\Chen\AppData\Local\winToolBox" -Force -Recurse
powershell1结果: 失败
方法 4:安全模式删除
结果: 依然失败
这一步很容易让人误解:
不是说安全模式不会加载第三方组件吗?为什么还会被占用?
实际情况是:
安全模式只是不加载大部分第三方服务和驱动,不代表所有通过外壳扩展、COM 注册、Explorer 插件方式挂载的组件都不会被加载。
方法 5:删除 ContextMenuHandlers 中的 SoftMgrOEMExt
我在注册表里找到过这个位置:
HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers\SoftMgrOEMExt
但后来证明:
SoftMgrOEMExt不是最终锁文件的核心对象- 它更像是一个 右键菜单入口
- 真正被系统加载、导致文件无法删除的,是
SoftMgrExt64.dll
这也是整个排查过程中最关键的认知转折点。
四、问题根因:不是权限问题,而是 Explorer 加载了 360 的 DLL
经过一步步排查,最终确认:
真正的元凶是:
SoftMgrExt64.dll
而不是:
SoftMgrOEMExt
两者的区别可以简单理解为:
| 项目 | 作用 |
|---|---|
| SoftMgrOEMExt | 右键菜单/外壳入口 |
| SoftMgrExt64.dll | 真正被加载的核心 DLL |
Windows 资源管理器加载这类 DLL 的典型链路如下:
Explorer → CLSID → InprocServer32 → SoftMgrExt64.dll
也就是说:
- 注册表中有一个 CLSID
- 这个 CLSID 的
InprocServer32指向SoftMgrExt64.dll - Explorer 根据这个注册信息加载 DLL
- DLL 被占用后,文件就删不掉了
注册表里仍然保留着 COM/外壳扩展的注册信息,Explorer 还在加载它。
五、正确排查思路
这里是整个问题最值得复用的方法论。
第一步:不要只盯着“删文件”
删文件失败时,先判断它是不是:
- 被普通进程占用
- 被系统服务占用
- 被 Explorer 通过外壳扩展或 COM 方式加载
如果报错里直接出现 DLL 名称,比如:
SoftMgrExt64.dll
那就优先怀疑 Shell 扩展 / COM 注册 。
第二步:先搜 DLL,而不是先删目录
打开注册表 :
Win + R → regedit
然后搜索:
SoftMgrExt64.dll
一旦搜到类似下面的结构:
HKEY_CLASSES_ROOT\CLSID\{GUID}\InprocServer32
并且右侧值明确指向:
SoftMgrExt64.dll
就说明已经命中真正的加载源。
六、最终可行的解决方案
步骤 1:搜索 SoftMgrExt64.dll
在 注册表编辑器 中按 Ctrl + F ,搜索:
SoftMgrExt64.dll
找到相关位置后,重点关注:
HKEY_CLASSES_ROOT\CLSID\{GUID}\InprocServer32
步骤 2:确认该 CLSID 确实属于 360
确认方法很简单:
InprocServer32里指向的是SoftMgrExt64.dll- 路径里带有
SoftMgr、360、winToolBox等字样
只要确认是它,就可以继续下一步。
步骤 3:删除整个对应的 {GUID} 项,而不是只删 InprocServer32
为什么不是只删 InprocServer32?
因为注册结构通常是:
CLSID
└─ {GUID}
└─ InprocServer32 → SoftMgrExt64.dll
如果只删 InprocServer32 ,会留下一个 空壳 CLSID ,系统仍然可能尝试读取它,造成:
- 残留注册信息
- Explorer 异常或卡顿
- 下次被某些程序重新补全
步骤 4:重启 Explorer
删除注册表项后,不要立刻删文件,先重启资源管理器:
taskkill /f /im explorer.exe
start explorer.exe
这一步非常关键。
因为即使注册表已经删了,Explorer 进程里也可能还保留着已加载的 DLL。
步骤 5:删除残留目录
此时再删除:
C:\Users\Chen\AppData\Local\winToolBox
以及相关的 SoftMgr 目录,通常就可以成功删除了。
七、几点经验
经验 1:安全模式不是万能的
很多人以为进了安全模式,所有第三方东西都不会运行。
但实际上,只要某些组件是通过 Explorer 外壳扩展 / COM 注册 接入的,安全模式下仍有可能被加载。
经验 2:文件删不掉,不一定是权限问题
管理员权限 解决的是“有没有权删除”,
但“文件正在使用”解决的是“有没有东西在占用它”,两者不是一个层面。
经验 3:看到 DLL 名称,比看到文件夹名更有价值
像 winToolBox 、 SoftMgr 这些目录名只是表象。
真正决定能不能删掉的,是:
- 谁在加载
- 通过什么注册关系加载
- 这个加载关系在哪里
经验 4:遇到 Explorer 占用,优先查 CLSID + InprocServer32
以后凡是碰到:
都可以优先检查:
CLSID → InprocServer32
这是非常高频的排查入口。
经验5:dll 被设置(或者任何程序)占用
右键点击开始按钮,选择 终端 或 命令提示符(无需管理员权限)。
输入以下命令并回车(将 xxx.dll 替换为你实际要查的名称):
tasklist /m xxx.dll
效果:系统会直接列出当前所有调用了该 DLL 的进程映像名称和 PID。如果没有任何输出,说明当前没有活跃进程在占用它。
比如我此处查出的占用进程为:
SystemSettings.exe 2680 Console 1 1,388 K
通过如下命令将其 kill 后,dll 即可删除
taskkill /f /im SystemSettings.exe
参考命令汇总
重启资源管理器
taskkill /f /im explorer.exe
start explorer.exe
搜索注册表中的 SoftMgr 相关项
reg query HKCR /f "SoftMgr" /s
搜索注册表中的 SoftMgrExt64.dll 相关项
reg query HKCR /f "SoftMgrExt64.dll" /s