如何在Windows 10中管理巨大的WinSxS文件夹

当系统磁盘空间不足时,第三方实用程序可帮助您一眼发现大型文件和较小文件的集合。那是您可能偶然发现WinSxS文件夹的地方。它的容量几乎为5–10GB,对于许多用户来说,这就像Windows世界中的黑匣子。

自然,它引起了一个问题,即WinSxS中究竟安装了哪些文件,以及为什么文件如此之大。网络搜索和论坛中都充满有关此文件夹的问题。让我们揭开WinSxS的秘密以及正确的管理方式。

WinSxS解释

WinSxS(并排)是为了解决“ Windows操作系统中的“ DLL Hell"问题。简而言之,它涉及任何程序更改动态链接库(DLL)文件以影响需要使用同一DLL的其他应用程序的关键功能的情况。

例如,假定某个应用程序需要版本号为1.0.2的DLL。如果另一个应用程序用其他版本(例如1.0.3)替换了资源,则依赖于1.0.2版本的先前应用程序将崩溃,导致兼容性问题,或者导致蓝屏死机。

Windows XP看到正确启动了组件存储。在此,每个组件(DLL,OCX,EXE)都位于一个名为WinSxS的目录中。它会存储由软件和硬件软件包安装的所有不同版本的DLL,并按需加载正确的版本。

那么,应用程序如何知道需要加载的DLL版本?这是“ 清单文件"发挥重要作用的地方。它包含一些设置,这些设置可以通知操作系统如何在启动时处理程序以及DLL的正确版本。

每个组件都有一个标识,该标识具有唯一的名称,该名称可以包括处理器体系结构,语言,版本和ID。然后将这些组件的特定版本一起收集到软件包中。 Windows Update和DISM使用它们来使您的系统保持最新。

此时间表显示每次重大OS升级,WinSxS都会得到逐步改进。链接用于整个Windows操作系统。就WinSxS而言,这是组件驻留在系统上的唯一位置。组件存储外部文件的所有其他实例都硬链接到WinSxS文件夹。那么,什么是硬链接?

根据Microsoft Docs,硬链接是一个文件系统对象,它允许两个文件引用磁盘上的同一位置。这意味着Windows可以保留同一文件的多个副本,而无需占用任何额外的空间。

每当更新Windows时,都会发布该组件的全新版本,并通过硬链接投影到系统中。较旧的文件保留在组件存储中以确保可靠性,但没有硬链接。

借助 fsutil 命令,您可以检查任何系统文件的硬链接。按 Win + X 并选择命令提示符(Admin),然后键入

fsutil hardlink list [system file path]

,例如,如果我要检查系统文件“ audiosrv.dll",然后键入

fsutil hardlink list "C:\Windows\System32\audiosrv.dll"

组件存储在支持自定义和更新Windows所需的功能方面起着至关重要的作用。它们如下:

  • 从启动失败或损坏中恢复系统
  • 按需启用或禁用Windows功能
  • 移动不同Windows版本之间的系统
  • 卸载有问题的更新
  • 要使用Windows Update安装新组件版本
  • WinSxS文件夹大小

    WinSxS包含维护与PC上的硬件和软件的兼容性所需的所有文件。 Windows的最大优势之一就是它能够运行较旧的硬件和应用程序。但是这种旧的兼容性是以磁盘空间和错误为代价的。

    导航到 C:\ Windows \ WinSxS ,右键单击它并选择 Properties 。该文件夹消耗了将近7.3GB的磁盘空间。但事实是,这不是真实尺寸。原因是文件资源管理器和其他第三方工具不考虑“硬链接"。

    它将每个对硬链接的引用都视为每个位置的文件的单个实例。因此,如果系统文件同时位于WinSxS和System32目录中,则文件资源管理器将不正确地将文件夹大小加倍。

    要检查Windows组件存储的实际大小,请打开提升的命令提示符窗口,然后键入<

    Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore

    注意:Windows 8及更早版本无法识别 / AnalyzeComponentStore 选项。

    分析后,组件存储的实际大小减小了至5.37GB。此值将WinSxS文件夹中的硬链接包括在内。 与Windows共享可为您提供硬链接文件的大小。 最后清除日期是最近完成的组件存储清除的日期。

    减小WinSxS文件夹大小的方法

    许多用户经常询问是否可以从WinSxS文件夹中手动删除文件。答案是大问题

    它很可能会损坏Windows,并且严重的Windows Update可能无法正确安装。即使您已成功从WinSxS文件夹中删除文件,也永远不会知道哪个应用程序将停止运行。

    您可以通过以下几种方法减小WinSxS文件夹的大小:内置工具。我们将使用磁盘清理,DISM命令等工具,并删除按需功能以修剪WinSxS文件夹。

    在搜索框中,键入磁盘清理,然后选择磁盘清理 >。在此窗口中,点击清理系统文件按钮。这将重新启动该实用程序,并解锁对所有清除选项的访问权限。您可以删除安装文件,Windows的早期版本等。磁盘清理工具是清理Windows 10的起点。

    阅读此分步指南以找出清理Windows 10的最佳方法。

    Windows可让您根据需要启用或禁用默认Windows功能。您可以添加一些有用的功能-Hyper V,打印到PDF,Linux的Windows子系统(WSL)等。

    未选中的功能保留在WinSxS文件夹中并占用磁盘空间。存储量低的用户可能希望尽可能减少Windows安装。打开提升的命令提示符窗口,然后输入

    DISM.exe /Online /English /Get-Features /Format:Table

    您将看到功能名称及其状态的列表

    要从系统中删除功能,请输入

    DISM.exe /Online /Disable-Feature /featurename:NAME /Remove

    (用列表中提到的功能名称替换“ NAME")

    如果再次运行 / Get-Features 命令,则将会看到状态为“ 已删除有效负载已禁用",而不仅仅是“ 已禁用"。稍后,如果您选择安装已删除的组件,则Windows将提示您再次下载组件文件。

    Windows 8 / 8.1包含一项内置功能,可以在系统运行时自动清理组件存储。未使用。打开任务计划程序,然后导航到 Microsoft> Windows>服务。右键单击该项目,然后单击运行。

    该任务将在安装更新的组件之后至少等待30天,然后再卸载该组件的先前版本。该任务还有一个小时的超时时间,可能无法清除所有文件。

    使用DISM / Cleanup-Image 参数,您可以立即删除该组件的先前版本(没有30天的宽限期),并且没有一个小时的超时限制。打开命令提示符(Admin),然后键入

    DISM.exe /online /Cleanup-Image /StartComponentCleanup

    如果添加 ResetBase 开关,则可以删除每个组件的所有已取代版本。但是请记住,您将无法卸载任何当前更新(即使它们有故障)。

    DISM.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase

    以下命令将删除卸载Service Pack所需的所有备份组件。它是Windows特定版本的累积更新的集合。

    DISM.exe /online /Cleanup-Image /SPSuperseded

    删除Windows文件以释放磁盘空间

    WinSxS组件存储在其中起着重要作用。 Windows的日常运行。因此,您不应删除文件或移动WinSxS文件夹来解决空间问题。 Windows升级带来了深入的报告和清理工具,您可以用来查找其他的太空猪。

    如果遵循上述方法,则可以稍微减小WinSxS文件夹的大小。阅读本文,了解可以删除的Win​​dows文件和文件夹,以进一步释放磁盘空间。

    标签: