如何解决由大型 Windows 组件存储 (WinSxS) 目录导致的磁盘空间问题

本文提供了解决由大型 Windows 组件存储 (WinSxS) 目录导致的磁盘空间问题的解决方案。

适用于: Windows 7 Service Pack 1、Windows Server 2008 R2 Service Pack 1
原始 KB 编号: 2795190

症状

检查 C:\Windows 文件夹的大小时,你可能会注意到 C:\Windows\winsxs 目录似乎使用了大量磁盘空间。

原因

Windows 组件存储 (C:\Windows\winsxs) 目录在 Windows 安装中的维护操作期间使用。 服务操作包括但不限于Windows 更新、Service Pack 和修补程序安装。

组件存储区包含 Windows 安装所需的所有文件。 并且,安装更新时,这些文件的任何更新也会保留在组件存储中。 随着向安装添加更多更新、功能或角色,这会导致组件存储随时间推移而增长。 组件存储使用自身与其他 Windows 目录之间的 NTFS 硬链接来提高 Windows 平台的可靠性。

由于 Windows 资源管理器 shell 如何考虑硬链接,组件存储将显示较大的目录大小。 Windows shell 会将对硬链接的每个引用作为文件所在的每个目录的单个文件实例进行计数。 例如,如果名为 advapi32.dll 的文件为 700 KB,并且包含在组件存储和 \Windows\system32 目录中,则 Windows 资源管理器会不准确地报告该文件占用了 1,400 KB 的硬盘空间。

解决方案

由于 NTFS 硬链接,组件存储不能驻留在系统卷以外的卷上。 如果尝试移动组件存储区,这将导致无法正确安装 Windows 更新、Service Pack、角色或功能。 此外,我们不建议手动删除或删除组件存储中的文件。

若要减小 Windows 安装上的组件存储目录的大小,可以决定使 Service Pack 安装永久,并从 Service Pack 文件中回收已用空间。 但是,如果使 Service Pack 安装永久,则 Service Pack 不可移动。

若要从 Windows 安装中删除 Service Pack 文件,请使用以下内置实用工具:

  • 已安装 Windows Server 2008 Service Pack 2:Compcln.exe
  • 已安装 Windows 7 Service Pack 1 或 Windows Server 2008 R2 Service Pack 1:DISM /online /Cleanup-Image /SpSuperseded 或磁盘清理向导 (cleanmgr.exe)

还可以通过在系统上强制删除事件,在 Windows Server 2008 安装上主动执行清理。 清理将尝试从安装中删除任何不需要的系统二进制文件,并使 Windows 能够回收磁盘空间。 若要在 Windows 安装上发出卸载事件,请添加和删除尚未安装的任何不需要的系统组件,然后重启 Windows 安装。 在操作系统的以下重启期间,将执行清理。

注意

在 Windows 7 和 Windows Server 2008 R2 安装上自动执行清理。

更多信息

若要回收系统上的额外磁盘空间,请执行以下步骤:

  1. 选择“ 开始”,然后在“ 搜索程序和文件” 文本框中,键入 “磁盘清理”。

  2. 单击“ 磁盘清理” 图标,然后运行“磁盘清理”工具,根据配置确定可以删除的文件。

节省系统卷空间的其他方法包括:

  • 将分页文件移动到系统上的另一个卷。
  • 在系统上禁用休眠。
  • 使用专用转储文件选项在系统上的另一个卷上捕获内存转储文件。
  • 将用户配置文件和程序文件目录卸载到系统上的另一个卷。
  • 在客户端安装上禁用系统还原点。
  • 使用磁盘清理向导 (cleanmgr.exe) 清除所有临时目录和文件夹。
  • 从安装中卸载未使用的应用程序或实用工具。

有关 WinSxS 文件夹的详细信息,请参阅:

有关磁盘的系统要求的详细信息,请参阅:

注意

  • 使用 Windows Installer 安装产品时,原始 .msi 数据文件的较小版本存储在 Windows Installer 缓存 (%windir%\Installer) 文件夹中。 随着时间的推移,此文件夹可能会变大。 已安装产品(例如修补程序、累积更新或 Service Pack 安装程序)的每个附加更新安装也会将其相关的 .msp 或 .msi 文件存储在 Windows Installer 缓存中。 随着时间的推移,此文件夹可能会变大。 我们不支持也不建议删除此文件夹中的任何文件,也不建议将其替换为另一台计算机中的文件。 应用程序的任何更新都依赖于存储在此文件夹中的文件中可用的信息。 如果没有此信息,更新将无法正确执行其安装。

  • Windows 更新使用 %windir%\softwaredistribution\downloads 文件夹来存储下载的更新。 通常,无需管理此文件夹,因为它由 Windows 管理。 此文件夹的典型大小由几个因素决定,例如操作系统版本、当时可用的更新等。 因此,很难提供典型的大小预期。 如果此文件夹使用大量磁盘空间,请先安装系统的所有可用更新,然后重新启动计算机。 若要在大小仍然较大的情况下排查此问题,请执行以下步骤:

    1. 在提升的命令提示符下,运行 Net Stop WUAUSERV 命令。
    2. 删除 %windir%\softwaredistribution\downloads 文件夹的内容。
    3. 在提升的命令提示符下,运行 Net Start WUAUSERV 命令:

数据收集

如果需要 Microsoft 支持方面的帮助,建议按照使用 TSS 针对与部署相关的问题收集信息中所述的步骤收集信息。