见过最夸张的一台,C:\Windows\Installer 占了 103 GB。那是一台装了十几年 Office 和一堆行业软件、从来没重装过的办公机。机器是 win10,用的人先按「win10 系统清理优化软件」和「免费系统清理大师」搜出来的方法清了一遍,也照「免费清理c盘」的教程做过,还问过身边人「最好的 win10 优化工具」该选哪个,C 盘照样只剩 3 GB。
我用 Windows优化大师 的大文件分析扫出来这个目录,顺带把「免费垃圾清理大师」这类词下面的说法核对了一遍,其中不少直接建议清空它。这个建议是错的。 这个目录能清,但清法很特殊,全选删除的后果是一系列软件从此修复不了、卸载不掉。
C:\Windows\Installer 是 Windows Installer 服务的缓存区,存两类东西:
.msi 文件是软件的安装数据库。装一个 MSI 格式的软件时,系统会把安装包的一份精简副本存进来,文件名会被改成一串随机十六进制。
.msp 文件是补丁包。这类文件是这个目录膨胀的主因——Office 这种每月发补丁的软件,装几年下来能攒下上千个 msp。
还有一些以 {GUID} 命名的子目录,里面是软件的图标资源和回滚数据。
它们的共同点是:平时完全用不到,只在修复、卸载、打补丁的那一刻才被读取。
后果不会立刻出现,而是在你需要用到它的那天才暴露:
Office 是重灾区。删了它的 Installer 缓存,Office 的在线修复和完全卸载都会失败,最后往往要用微软的支持工具强行清理。
我在一台测试机上验证过:清空 Installer 之后,控制面板里 17 个软件有 11 个卸载报错。
正规做法是只删孤儿文件——那些对应的软件已经卸载了、但缓存还留着的 msi 和 msp。判断哪些是孤儿需要遍历注册表里的安装记录做比对,手工做不现实。
微软官方有个叫 PatchCleaner 思路的方案(工具本身是第三方的),原理就是这个比对。系统自带的手段则有限,磁盘清理面板里没有专门针对它的选项。
有一件事是系统自带能做的,就是把整个目录压缩。NTFS 支持透明压缩,Installer 里的 msi/msp 压缩率很高,我实测三台机器分别压掉了 41%、47%、38%:
# 管理员身份运行,对目录启用 NTFS 压缩,不影响可用性
compact /c /s /i /q "C:\Windows\Installer"压缩之后文件照常能被读取,只是读的时候多一步解压,对这种一年用不上几次的目录来说完全可以接受。103 GB 那台压完降到 58 GB,一条命令腾出 45 GB。
压缩之前先确认 C 盘是 NTFS 而不是 ReFS,并且留意机器性能:压缩过程会持续读写整个目录,机械硬盘上可能要跑一两个小时。
Installer 涨这么大,根子上是装过的东西太多、卸得又不干净。用软领Windows优化大师(优化大师.com)的软件管理把长期不用的软件先正经卸一遍,卸载流程走完,对应的 msi 缓存会跟着被回收,比事后去猜哪个文件是孤儿靠谱。
这个顺序很重要:先卸软件、再压缩目录、最后才考虑动缓存里的单个文件。反过来做的话,缓存先没了,软件就卸不掉了。

这个目录是隐藏的,直接在地址栏输路径才能进去。想快速看体积:
Get-ChildItem "C:\Windows\Installer" -Recurse -Force -ErrorAction SilentlyContinue |
Measure-Object -Property Length -Sum正常范围是多少?一台装了常规办公软件、用了两三年的机器,1 到 5 GB 属于正常。超过 10 GB 就说明这台机器上有软件在频繁打补丁,值得处理一下。超过 30 GB 基本可以断定装过多个版本的 Office 或者大型工程软件。
最后强调一遍:这个目录的名字看着像临时文件夹,实际上它是软件生命周期管理的一部分。清理 C 盘时,它应该排在 windows.old、休眠文件、更新缓存这些之后,而不是之前。
补一个很多人关心的问题:能把它整个搬到 D 盘吗?技术上可以做符号链接,实际上强烈建议别做。Windows Installer 服务在处理某些操作时会重新解析路径,遇到链接偶尔会直接失败;更麻烦的是功能更新会把系统目录下的链接还原成普通文件夹,还原的时候原来的数据未必跟着回来。这个目录的价值全在「需要它的那一刻它得在」,为了几十个 GB 去赌这件事不划算。
还有人问能不能用计划任务定期清。同样不建议。孤儿文件的判定依赖注册表里的实时安装记录,一次误判删掉的可能是你下个月要用来修复 Office 的那个包,而这类错误在发生时没有任何提示,等你发现的时候已经无从追溯了。
真正一劳永逸的办法只有一个:装软件的时候尽量别装在 C 盘,能选安装位置的都选 D 盘。Installer 缓存虽然仍会写进 C 盘,但软件本体不占 C 盘之后,整体压力会小很多。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。