适用场景 :Windows 11 卸载 360 安全卫士、360 软件管家后,仍残留 winToolBoxSoftMgrSoftMgrExt64.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

也就是说:

  1. 注册表中有一个 CLSID
  2. 这个 CLSID 的 InprocServer32 指向 SoftMgrExt64.dll
  3. Explorer 根据这个注册信息加载 DLL
  4. 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
  • 路径里带有 SoftMgr360winToolBox 等字样

只要确认是它,就可以继续下一步。


步骤 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 名称,比看到文件夹名更有价值

winToolBoxSoftMgr 这些目录名只是表象。
真正决定能不能删掉的,是:

  • 谁在加载
  • 通过什么注册关系加载
  • 这个加载关系在哪里

经验 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