C:\WINDOWS\Installer文件夹的安全清理
作者:eygle |English 【转载时请标明出处和作者信息】|【恩墨学院 OCM培训传DBA成功之道】
链接:http://www.eygle.com/archives/2008/12/windows_installer.html
这几天微软发布了不少补丁,系统盘(C:\)又开始空间告警。
没办法又要研究一下哪些空间是可以释放的,我的C:\分配了10G的空间,一度又一度的空间紧张,大家的系统盘是多大呢?
这一次我准备向 C:\WINDOWS\Installer 这个目录下手,这个目录占用了我大约2.5G的空间(留意过你的这个目录有多大么?)。
这个文件夹保存着所有基于Windows Installer安装的应用软件的注册信息,一般不能轻易删除,我以前尝试过,会导致一些软件在遇到问题时无法正常恢复或运行。
网上也有一些相关解释:
%systemRoot%\Installer文件夹保存着所有基于Windows Installer安装的应用软件的注册信息,一旦此文件受损,那么基于Windows Installer安装的相关软件将无法正常运行,你需要重新安装基于是Windows Installer安装的应用软件,以修复%systemRoot%\Installer文件夹中的注册信息。
以Office为例,当你删除了这个文件夹中的内容后,Office的安装程序将无法使用,无论是重新安装,修复、添加和删除Office组件,都无法运行,此时你必须手动删除Office,然后再重新安装。
可以肯定的是,删除所有文件会在将来为我们带来一定的麻烦。
那么这里面有没有一些冗余的东西可以安全清理呢?
微软提供了一个助手,可以用于清理这些文件中的无用文件,这个工具是:Windows Installer CleanUp Utility (该工具已经被替换,现在微软提供了一个 Program Install and Uninstall troubleshooter 替代)
可以在以下链接下载:http://support.microsoft.com/default.aspx?scid=kb;en-us;290301
更新
具体下载链接为:http://download.microsoft.com/download/e/9/d/e9d80355-7ab4-45b8-80e8-983a48d5e1bd/msicuu2.exe
但是一定注意看提示,不要都删了,否则可能就有麻烦了。
在命令行,通过命令msizap.exe G可以删除一些孤儿文件:
C:>msizap.exe G
MsiZapInfo: Performing operations for user S-1-5-21-1935655697-1409082233-839522115-1003
Removing orphaned cached files.
Removed file: C:\WINDOWS\Installer\102db95.mst
Removed file: C:\WINDOWS\Installer\102dba2.mst
Removed file: C:\WINDOWS\Installer\102dbac.mst
Removed file: C:\WINDOWS\Installer\337c229.mst
Removed file: C:\WINDOWS\Installer\3b1ae.mst
Removed file: C:\WINDOWS\Installer\41485c5.mst
Removed file: C:\WINDOWS\Installer\65a2f.mst
Removed file: C:\WINDOWS\Installer\76bf7.mst
Removed file: C:\WINDOWS\Installer\9419741.mst
Removed file: C:\WINDOWS\Installer\9419770.mst
Removed file: C:\WINDOWS\Installer\9419778.mst
Removed file: C:\WINDOWS\Installer\a43b7be.mst
Removed file: C:\WINDOWS\Installer\f8fe2f1.mst
网上还可以找到这样一个工具:
Windows Installer UnUsed Files Cleanup Tool (简称WICleanup)是一个用于清理 Windows Installer 冗余文件的工具。
软件主页为:http://www.kztechs.com/wicleanup/
下载地址:http://www.kztechs.com/wicleanup/wicleanup.zip
下载了这个软件扫描了一下,删除了大约1G的冗余文件,释放出来不少空间,又可以维持一段时间了。
为什么会如此呢?了解一下Windows Installer的作用就明白了:
Windows Installer 软件安装技术。该技术包括适用于 32 位 Windows 操作系统的 Windows Installer 服务器,以及一个用于存储有关配置和安装信息的新软件包文件格式。
Windows Installer 不仅仅是一个安装程序,它还是一个可扩展的软件管理系统。Windows Installer 管理软件的安装,管理软件组件的添加和删除,监视文件复原,并通过使用回滚来维护基本的灾难恢复。
此外,Windows Installer 还支持从多个源安装和运行软件,并且可以由要安装自定义程序的开发人员定制。
Windows Installer 的功能包括:
• 在安装失败时将计算机还原为原始状态:Windows Installer 跟踪在程序安装过程中对系统进行的所有更改。如果安装失败,Installer 可以将系统恢复到其初始状态。这称为"回滚"。
• 帮助防止特定形式的程序之间产生冲突:正在安装或卸载的程序可能会导致计算机上已安装的另一个程序出现问题,甚至导致计算机停止响应(挂起)。 Installer 可以强制实施一些安装规则,以帮助防止当安装操作更新由现有程序共享的动态链接库 (DLL) 文件时,或当卸载操作删除由另一个程序共享的 DLL 文件时出现冲突。
• 诊断并修复损坏的程序:程序可以要求 Installer 确定已安装的程序是否缺少文件,或者文件是否已损坏。然后,它可以要求该服务根据需要再次只复制已发现丢失或损坏的文件来修复该程序。
• 可靠地卸载现有程序:Installer 可以可靠地卸载以前安装的任何程序,并删除所有相关联的注册表条目和程序文件,但其他已安装的软件所共享的文件及注册表条目除外。
• 支持按需安装程序功能:可以指示 Installer 首先安装程序的最小子集。之后,在您首次使用需要附加组件的功能时,会自动安装附加组件。
• 支持无人参与的程序安装:Installer 支持根据管理员的指令使用脚本来安装程序。
Windows Installer 技术分为以下两部分,它们结合在一起工作:客户端安装服务 (Msiexec.exe) 和 Microsoft 软件安装 (MSI) 软件包文件。Windows Installer 使用软件包文件中包含的信息安装程序。
Msiexec.exe 程序是 Windows Installer 的一个组件。当安装程序调用 Msiexec.exe 时,它使用 Msi.dll 读取软件包 (.msi) 文件,应用任何转换 (.mst) 文件,并合并安装程序所提供的命令行选项。Installer 执行所有与安装有关的任务,包括将文件复制到硬盘、修改注册表、在桌面上创建快捷方式,以及在必要时显示对话框以提示用户输入安装首选项。
在计算机上安装 Windows Installer 后,它将更改注册的 .msi 文件的文件类型,以便当您双击 .msi 文件时,将运行 Msiexec.exe。
每个 MSI 软件包文件都包含一个关系类型的数据库,用于存储在各种安装方案中安装(或卸载)该程序所需的指令和数据。
如果系统盘的空间不足,可以将Installer文件夹移动到其他分区或外置硬盘,然后在C:\Windows\下创建指向该位置名为Installer的符号链接,或者目录联结点,这样就把占用的C盘空间转移到了其他位置,并且效果和原来的C:\Windows\Installer文件夹效果相同。