搜「卸载不干净」,会拿到一张残留清单照着删。但删掉的大多不是问题,真会出状况的那几项反而没人提。
用户配置、缓存、账号、插件与词库属于这一类,集中在 %APPDATA% 与 %LOCALAPPDATA%。
卸载程序不动它们是刻意为之:它判断不了哪个文件是你的,删错就是删你的东西。所以卸了再装、设置往往还在。
判断标准只有一条:它还会不会被执行。孤儿卸载项让列表多出删不掉的条目;未注销的服务每次开机加载;驱动在启动阶段就加载;计划任务可能把更新包拉回来。
| 对比维度 | 正常残留 | 异常残留 |
|---|---|---|
| 典型内容 | 配置、缓存、账号、插件 | 孤儿项、服务、驱动、计划任务、自启项 |
| 会不会被执行 | 不会,重装后才读取 | 会,开机、登录或定时触发 |
| 对系统的影响 | 只占磁盘 | 拖慢启动、弹广告、报错、把软件装回来 |
| 该不该手动删 | 一般不必,只删缓存层 | 需要处理,但逐项确认,不批量清 |
| 删错的风险 | 低,代价是丢设置 | 高,可能影响启动或其他软件 |
services.msc、任务计划程序三处都没有它,剩下的目录基本无害。
动手清之前先走完这四步;跳过它直接删目录,才是难处理残留的主要来源。
Win10/11 走「设置 → 应用 → 已安装的应用」,Win7 到 Win8.1 走「控制面板 → 程序和功能」。读的都是注册表登记的卸载命令。不能省:直接删目录跳过了登记注销,列表条目、服务、自启项都会留下。
开始菜单里可能有独立的 Uninstall 项,安装目录下也有 unins000.exe、uninstall.exe。厂商的卸载器知道自己注册了哪些服务、写了哪些计划任务,往往比系统入口更完整。
被映射在内存里的文件删不掉,卸载程序会把它们标成「重启后删除」;服务与驱动的注销也常在关机或启动阶段才生效。不能省:不重启就看目录,看到的只是尚未兑现的残留,容易误判成卸载失败。
任务管理器 → 启动 看有无它的条目,再回「程序和功能」确认那一条消失。不能省:卸载程序不管自启注册是常见现象,这一步能避免下次开机又见托盘图标。
按风险从低到高排。地址栏里可直接输入环境变量,回车就展开成真实路径。
%APPDATA% → 通常为 C:\Users\你的用户名\AppData\Roaming。设置、账号、插件列表在这层。建议保留:删掉只会丢配置,重装后得重新设一遍。%LOCALAPPDATA% → ...\AppData\Local。更新包、缩略图缓存、日志在这层。可以删,但先确认没有要保留的数据;少数免安装软件整个程序就装在这里。%PROGRAMFILES% 与 %PROGRAMFILES(X86)%。确认列表里已无该软件才动。删前看清内容:Common Files、Shared 这类目录装着多个软件共用的运行库。%PROGRAMDATA% → 通常 C:\ProgramData,默认隐藏。授权信息与服务数据在这层,多数建议保留,误删可能让同厂其他软件失效。HKEY_CURRENT_USER\SOFTWARE 与 HKEY_LOCAL_MACHINE\SOFTWARE 下的 Uninstall 键与厂商标识键。不要照清单批量删,特征与备份流程见第六节。%SystemRoot%\System32\drivers 下的驱动文件,与 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 下的服务注册项。不要直接删文件:先在 services.msc 确认目录已不存在,再用 sc delete 服务名 注销。原因:绿色版、免安装版没有登记卸载项;也可能是目录里有卸载程序,但那条卸载项被清理工具删过,程序还在却没了入口。
对策:任务管理器里右键进程「打开文件所在位置」即可看到真实目录,若有 unins000.exe、uninstall.exe 直接运行。
没有卸载程序就走手动流程:结束进程 → 关自启项 → 删目录,再按第五节查计划任务与服务。顺序别倒过来,先删目录就只能靠猜服务名。
原因:后台进程没退(托盘常驻、后台助手);某个服务正在运行;核心 dll 被其他程序加载,共享组件关掉窗口也被占;少数是权限不足。
对策,按成本从低到高:
services.msc 里点停止,把启动类型改成手动。原因:卸载脚本依赖的文件已被删或被安全软件隔离;日志与临时目录被清理工具清过;路径含特殊字符,脚本找不到自己的文件;也可能是之前删过注册表,卸载程序读不到配置。
对策:先重启再重试,很多中断只是句柄没释放。仍报错就看提示里的路径,确认文件是否真的不存在。 卸载程序本身起不来说明它坏了,走迂回路径:用原安装包覆盖安装一次,再正常卸载——重装会把卸载程序重建出来,比手动清注册表安全。
这不是灵异事件,通常有明确的触发源。与其反复卸载,不如先找「它被什么拉起来」。
shell:startup)和注册表 Run 键也各查一次。services.msc 里把启动类型为自动的项过一遍,路径指向已删目录的就是残留。顺序是先禁用、后删除:关掉自启项,计划任务点「禁用」而不是删除(判断错了还能回来),服务设为手动。处理完再清目录。
三步不能调换:先退路,后备份,才删除。
sysdm.cpl → 系统保护 → 选中系统盘 → 创建。前提是系统保护已开启;被关掉了就先开启,它会占一部分磁盘空间。regedit,选中要改的分支,点「文件 → 导出」,范围选「所选分支」,存到非系统盘。HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall(32 位软件另在 WOW6432Node 下)。每个子键对应「程序和功能」里的一行。看三个值:DisplayName 是显示名,UninstallString 是卸载命令,InstallLocation 是安装目录。目录已不存在、卸载程序也找不到才是孤儿。只删子键,别删父键。HKEY_CURRENT_USER 与 HKEY_LOCAL_MACHINE 下的 SOFTWARE\Microsoft\Windows\CurrentVersion\Run。看数值名和数据:数值名通常是软件名,数据是 exe 路径,指向不存在的文件时才删。相邻的 RunOnce、RunServices 及 WOW6432Node 下的同名键要分别看。HKEY_CURRENT_USER\SOFTWARE 与 HKEY_LOCAL_MACHINE\SOFTWARE 下的厂商键,名字常是英文厂商名而非中文产品名。这里多半是配置,删掉通常只丢设置;但同厂商还有软件在用时,删父键会一起影响它们。一条底线比技巧更重要:不确定就不删。少删一个只是多一个无害的键,多删一个可能让某个软件或系统功能起不来。
目标只是卸掉一个正常安装的软件时不必用工具,第二节四步就够。
常见方案列在下面,只作选项,不分优劣、不做推荐强度排序:
sc delete 注销。
逐项确认,有一项没过就回到对应章节处理。
%PROGRAMFILES% 与 %LOCALAPPDATA% 下各看一次。services.msc 里扫一遍,有则按第五、六节处理。
软件卸掉、隔几个月又要用,麻烦的通常不是重装,而是重新配:账号、插件、快捷键、词库全没了。
只要 %APPDATA% 下那个以产品名命名的目录还在,多数软件重装后会自动沿用。这也是「清干净」值得商榷的地方:你清掉的,很可能是下次重装省时间的那部分。
两种例外:配置放在带版本号的子目录里(如 %APPDATA%\产品名\2.3),新版可能只读新目录;配置写在 %PROGRAMDATA% 下时,更容易在卸载时被一并清掉。
%APPDATA%\产品名 复制到非系统盘;重装后复制回去覆盖同名目录。既保持干净,又没丢设置。
%APPDATA% 下对应的配置目录备份一份。%APPDATA% 与 %LOCALAPPDATA% 下的缓存和用户数据按设计保留了,体积可能比安装目录还大。按第三节六个位置逐个看。%LOCALAPPDATA% 的缓存与更新包、%PROGRAMDATA% 的共享数据、Windows 更新缓存,与卸载无关。按第三节逐个看体积。多数「卸载不干净」在重启之后就不成立了。真要清,也请先建还原点、导出备份,再删确认属于已卸载软件的那几项。