我正在运行 Windows Server 2008 StandardVMware. 它有 2 个磁盘:
- 系统盘:16GB
- 数据盘:500MB
我安装了 Visual Studio 2008 SP1 + MSDN 和一些不占用太多空间的小工具和库。随着时间的推移,系统磁盘的可用空间一直在减少(我怀疑是因为定期的系统更新 - NetFx (.NET)、服务包和定期更新)。
问题 1
如何从 Windows Server 2008 中删除 Windows 更新卸载文件?
问题2
我还在文件夹中发现了很多文件C:/Windows/Installer
。
是否可以确定哪个 .msp 文件与哪个补丁相匹配?
我想删除其中一些,因为它们确实占用了很多空间。
答案1
将文件与补丁关联。“ WINDOWS\Installer\
”文件夹有多key
个子文件夹。您可以在注册表中
搜索子文件夹名称(不带括号)。{}
可以在“HKLM\SOFTWARE\
“树
来获取软件关联。
该密钥将被放置在Installer
名称的子树中ENU_GUID
。
类似地,在注册表路径“ HKEY_CLASSES_ROOT\Installer\Products\
”中,
该键通常会在子树中与“ ProductIcon
”名称匹配。
将有一个“ProductName
“旁边的字段将为你提供关联。
该搜索应可编写脚本,并将dir WINDOWS\Installer /d
输出
存储到通过注册表搜索处理的文本文件中。
这.MSP
文件在注册表中具有间接层。
您应该首先在以下位置搜索 MSP 名称:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\
这将为您提供补丁编号(子树名称字符串),然后按照与上述相同的路径再次搜索该编号。关联的注册表子树将为您提供补丁的详细信息。
同时,我的 Windows XP 资源管理器中的鼠标悬停上下文也提供了有关该补丁的基本信息。您已经检查过了吗?
较旧的数据:
使用姆西扎普删除孤立的缓存 Windows 安装程序数据文件以增加可用磁盘空间。
Msizap 是一个命令行工具,可以删除 Windows Installer 为其安装的产品维护的配置数据,包括 Windows Installer 存储配置数据的目录、文件、注册表子项和注册表项。
运行 msizap.exe 并使用该
G
参数可删除所有用户的孤立缓存 Windows Installer 数据文件
本文讨论了 Windows Server 2003 及更高版本。
更新:本微软知识库描述还限制在 Server 2003 上。
它应该适用于 Server 2008,或者会有另一个版本。
本文描述了两个版本的存在。
MSIZAP.EXE 有两个版本:
执行文件(适用于 Windows 95、Windows 98 和 Windows ME)以及
执行文件(适用于 Windows NT、Windows 2000、Windows XP 和 Windows Server 2003)。相应的可执行文件应重命名为 MsiZap.exe。
下载参考资料——以防链接失效。
Msizap 可以作为Microsoft Windows Server 2003 支持工具或者Windows 安装程序清理实用程序(EXE)。我无法通过搜索 Microsoft 的下载站点找到 Windows Installer CleanUp Utility,因此请注意,如果您将来上述链接失效,则截至今天,该文件的名称为 msicuu2.exe。
如果你不想安装 Windows Installer CleanUp Utility,请使用以下程序通用提取器(又名提取单链) 来提取单个文件。提取文件后,您会注意到 msizap.exe 不存在,但会找到 MsiZapA.exe 和 MsiZapU.exe。
答案2
对于问题 1,您的意思是仅通过自动更新安装的常规 Windows 更新文件?您可以通过删除 C:\windows\SoftwareDistribution\Download 中的内容来释放该空间
以前操作系统中的 $NtUninstallKB 文件夹在 Windows 2008 中不存在,因此您不能再删除卸载文件。
答案3
16 GB 是 Win2008 系统卷的一大难题 - 在我的 2008 VM 上,全新安装的更新占用了 15 GB。我不确定是否可以通过删除“不必要的”文件和文件夹来释放系统卷中的空间,但好消息是它是一个 VM,它是 Win2008,而且由于这两点,您实际上可以很容易地增大系统磁盘。
我在独立的 ESXi 3.5 机器上运行 Win2008 VM。要增加系统磁盘的大小:
1)编辑虚拟机属性并将硬盘大小更改为更大的大小(我建议至少 40 GB 或更大,以确保您不必再次执行此操作)
2)重新启动虚拟机(您实际上可能不必执行此步骤,但我在我的虚拟机上执行了此步骤 - 毕竟是 Windows,如果不重新启动就无法调整系统卷的大小,这似乎太疯狂了......)
3)转到磁盘管理,您应该会看到额外的空间为 X 量的未分配空间。
4) 右键单击系统卷并选择“扩展卷...”。按照向导将额外的空间添加到系统卷,现在您的系统卷比以前更大了。
不用说,您也可以对数据磁盘执行此操作。即使这不是虚拟机,您仍然可以添加另一个物理磁盘并扩展到该磁盘上,尽管除非扩展到 RAID 卷,否则您可能会创建一个容错能力较差的配置。因为这是虚拟机,所以 ESX 所做的只是使 vmdk 文件变大。
答案4
他们改变了 Vista 和 2008 中的服务堆栈,因此您不再像以前的 Windows 版本那样在系统目录中获得 $NTUninstall 文件。它将所有内容都塞进了温斯目录以提供更强大的回滚和使用文件最新版本的能力。
看看Windows 组件清理工具(compcln.exe)随 2008 或 Vista 的 SP2 一起提供,它会丢弃一些文件,但对我来说只能释放大约 900MB。不过,总比没有好。