当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 如何清理和压缩 Windows 10/Windows Server 上的 WinSxS 文件夹?

作者:精品下载站 日期:2024-12-14 23:01:08 浏览:13 分类:玩电脑

如何清理和压缩 Windows 10/Windows Server 上的 WinSxS 文件夹?


在本文中,我们将讨论 Windows 中的 WinSxS 文件夹、其不断增长的原因以及清理方法。 C:\Windows\WinSxS 目录是 Windows 组件的存储库。此目录包含安装和操作各种 Windows 角色或功能所需的 DLL、二进制文件和 XML 文件。安装 Windows 更新时(通常每月都会发生这种情况),更新组件的新版本会安装在系统上,而旧版本则保存到 WinSxS 文件夹中(需要提供兼容性,并在卸载 Windows 更新时能够回滚到组件的先前版本)。

随着时间的推移,WinSxS 目录的大小不断增大。而且,它的大小不受任何限制(尽管实际上 Windows 10 中的 WinSxS 文件夹的大小很少超过 15-20 GB)。

[玩转系统] 如何清理和压缩 Windows 10/Windows Server 上的 WinSxS 文件夹?

在本文中,我们将介绍清理 Windows 10 和 Windows Server 2016/2019 上的 WinSxS 文件夹的最安全方法:

  • 优化组件存储,删除安装Windows更新后留下的旧版本Windows组件文件;

  • 按需功能 - 允许您从磁盘中删除未使用的 Windows 组件;

  • 在 WinSxS 文件夹上启用 NTFS 压缩 - 这是一种使用 NTFS 文件系统的内置压缩来减小 WinSxS 目录大小的方法。

很多用户经常问:是否可以手动删除WinSxS文件夹中的文件?答案是断然!这些操作可能会损坏您的 Windows 映像。尽管从 WinSxS 文件夹中删除文件的某些尝试可能会成功,但不建议使用此方法。

如何在Windows 10上检查WinSxS文件夹的实际大小?

在 Windows 上获取 WinSxS 文件夹当前大小的最简单方法是打开该文件夹的属性

%windir%\WinSxS

文件资源管理器中的文件夹(或使用 PowerShell 脚本)。但请记住,大多数文件管理器(包括文件资源管理器)显示的 WinSxS 文件夹大小略大于磁盘上的大小。

事实上,WinSxS 目录包含大量指向其他文件夹中的系统文件的硬链接(符号链接)。文件管理器在计算WinSxS文件夹的大小时,会考虑硬链接引用的文件的大小,但这是不正确的。

您可以使用 Sysinternals 的 du 工具找出磁盘上 WinSxS 文件夹的实际大小:

 du -v c:\windows\winSXS

[玩转系统] 如何清理和压缩 Windows 10/Windows Server 上的 WinSxS 文件夹?

您还可以使用 DISM 命令分析组件存储(WinSxS 文件夹)的大小:

Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore

[玩转系统] 如何清理和压缩 Windows 10/Windows Server 上的 WinSxS 文件夹?

Deployment Image Servicing and Management tool
[==========================100.0%==========================]
Component Store (WinSxS) information:
Windows Explorer Reported Size of Component Store : 8.44 GB
Actual Size of Component Store : 8.15 GB
Shared with Windows : 5. 74GB
Backups and Disabled Features : 1.97 GB
Cache and Temporary Data : 438.31 MB
Date of Last Cleanup : 2021-02-22 20:37:29
Number of Reclaimable Packages : 1
Component Store Cleanup Recommended : Yes
The operation completed successfully.

正如您所看到的,在这种情况下,我可以将 WinSxS 文件夹的大小减少 (1,97 + 0,44) Gb。

DISM 命令还允许您检查和修复 Windows 映像:

DISM /Online /Cleanup-Image /RestoreHealth

如何清理 Windows 上的组件存储(WinSxS 文件夹)?

清除 Windows 组件存储(WinSxS 文件夹)的最快、最简单的方法是使用以下命令优化存储:

Dism.exe /Online /Cleanup-Image /StartComponentCleanup

[玩转系统] 如何清理和压缩 Windows 10/Windows Server 上的 WinSxS 文件夹?

StartComponentCleanup

从 Windows 8 和 Windows Server 2012 开始的所有 Windows 版本均支持 DISM 选项。

清理完成后,查看当前组件存储的大小:

Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore

在我的示例中,这将 WinSxS 文件夹的大小减少了 2.4 GB。

/StartComponentCleanup

选项有一个附加的/ResetBase选项,允许您删除安装 Windows 更新后留下的所有以前版本的组件。此后,您将无法删除已安装的更新或服务包,并且卸载按钮将从卸载更新控制面板项中消失。要清理旧版本的组件,请运行:

Dism.exe /Online /Cleanup-Image /StartComponentCleanup /ResetBase

在 Windows 7 和 Windows Server 2008 R2 中,使用附加的 DISM 选项来清理安装服务包后留下的旧版本组件。

DISM /online /Cleanup-Image /spsuperseded

您还可以使用“磁盘清理”向导删除旧的更新文件:

  1. 跑过

    cleanmgr

    以管理员身份执行命令;

  2. 选择磁盘,然后在下一个窗口中单击“清理系统文件”按钮;

    [玩转系统] 如何清理和压缩 Windows 10/Windows Server 上的 WinSxS 文件夹?

  3. 然后选择“Windows 更新清理”选项。磁盘清理工具将显示通过删除旧的 Windows 更新文件可以释放多少空间。在我的示例中,该大小为 324 MB。单击“确定”开始清理。

    [玩转系统] 如何清理和压缩 Windows 10/Windows Server 上的 WinSxS 文件夹?

使用 DISM 清理完组件存储后,检查已释放了多少磁盘空间。
此外,Windows 10/Windows Server 2016 任务计划程序有一个特殊的自动维护任务,可以定期优化和清理 WinSxS 文件夹(与带有 StartComponentCleanup 参数的 DISM 的操作相同)。此 StartComponentCleanup 任务位于 \Microsoft\Windows\Servicing 部分下

taskschd.msc

。此任务在后台运行,并自动删除超过 30 天且已被新文件取代的组件版本。

您可以像这样手动启动此任务:

schtasks.exe /Run /TN "\Microsoft\Windows\Servicing\StartComponentCleanup"

[玩转系统] 如何清理和压缩 Windows 10/Windows Server 上的 WinSxS 文件夹?

从 Windows 10/Windows Server 中删除未使用的角色和功能

Windows 上的按需功能允许从 WinSxS 文件夹中删除未使用角色的二进制文件。您可以使用 Uninstall-WindowsFeature PoweShell cmdlet 删除 Windows Server 上的角色和功能二进制文件。

Windows 10 没有 Uninstall-WindowsFeature cmdlet,您必须使用 DISM.exe 从 Windows 映像中删除功能。

请注意,DISM 与

Uninstall-WindowsFeature

PowerShell cmdlet 不会删除依赖功能。

可以使用以下命令获取 Windows 10 映像中可用功能的完整列表:

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

[玩转系统] 如何清理和压缩 Windows 10/Windows Server 上的 WinSxS 文件夹?

例如,要从 Windows 映像(从 WinSxS 文件夹)中删除 TelnetClient 功能,请运行以下命令:

DISM.exe /Online /Disable-Feature /Featurename:TelnetClient /Remove

[玩转系统] 如何清理和压缩 Windows 10/Windows Server 上的 WinSxS 文件夹?

如果您显示 Windows 中可用的所有按需功能的列表,您将看到组件状态已更改为禁用并删除有效负载

因此,Windows 允许通过从磁盘中删除未使用的组件来显着减小 WinSxS 文件夹的大小。唯一的问题是,这种清理方法仅适合熟悉 Windows 10 功能及其用途的高级用户。

如何在 Windows 10 上的 WinSxS 文件夹上启用 NTFS 压缩?

减小 Windows 10 上 WinSxS 目录大小的另一种方法是在 NTFS 文件系统级别压缩目录内容。

注意。 为了防止对系统配置进行任何非标准干预,强烈建议您创建 Windows 10 映像的完整备份。

  1. 以管理员身份打开命令提示符;

  2. 停止并禁用 Windows InstallerWindows Module Installer 服务:

    sc stop msiserver
    sc stop TrustedInstaller
    sc config msiserver start= disabled
    sc config TrustedInstaller start= disabled
  3. 让我们使用内置的 icacls 工具备份分配给 WinSxS 目录中的文件和文件夹的访问控制列表 (ACL)。 ACL 的备份副本是一个纯文本文件,其中列出了所有文件和目录以及分配给它们的 NTFS 权限(稍后将需要此文件来恢复原始 ACL):

    icacls "%WINDIR%\WinSxS" /save "%WINDIR%\WinSxS_NTFS.acl" /t

    [玩转系统] 如何清理和压缩 Windows 10/Windows Server 上的 WinSxS 文件夹?

  4. 将您自己指定为 WinSxS 文件夹及其所有子文件夹的所有者:

    takeown /f "%WINDIR%\WinSxS" /r
  5. 授予您的帐户对 WinSxS 目录的完全控制权限:

    icacls "%WINDIR%\WinSxS" /grant "%USERDOMAIN%\%USERNAME%":(F) /t
  6. 现在,您可以使用 compact 命令压缩 WinSxS 目录中的文件。因为有些文件可以被Windows使用,所以需要指定

    /i

    选项。否则,压缩将在第一个锁定文件处停止(在 Windows 10 中,您可以使用更高级的 LZX 压缩):

    compact /s:"%WINDIR%\WinSxS" /c /a /i *

    [玩转系统] 如何清理和压缩 Windows 10/Windows Server 上的 WinSxS 文件夹?

  7. 将 WinSxS 目录的所有者恢复为 TrustedInstaller:

    icacls "%WINDIR%\WinSxS" /setowner "NT SERVICE\TrustedInstaller" /t
  8. 使用您之前创建的 ACL 备份文件恢复 WinSxS 文件夹项目的原始 ACL:

    icacls "%WINDIR%" /restore "%WINDIR%\WinSxS_NTFS.acl"
  9. 恢复 Windows Installer 和 Windows Module Installer 服务的默认启动类型:

    sc config msiserver start= demand
    sc config TrustedInstaller start= demand

现在检查 WinSxS 文件夹的当前大小:

[玩转系统] 如何清理和压缩 Windows 10/Windows Server 上的 WinSxS 文件夹?

正如您所看到的,在我们的示例中,压缩后 WinSxS 文件夹的大小已从 9.4GB 减小到 6.5GB(大约三分之一)。不错,尤其是对于小型 SSD 驱动器。

这些命令可以单独运行(这样可以更容易地跟踪每个命令的结果),也可以在单个脚本文件中使用。如果运行它,将开始针对 WinSxS 文件夹中的项目描述的压缩过程。您可以在此处下载现成的批处理文件以在 WinSxS 上启用 NTFS 压缩:winsxs_ntfs_compress.bat

您可以定期使用此脚本,因为在安装新的 Windows 更新或应用程序后,新的未压缩文件将出现在 WinSxS 文件夹中。

压缩 WinSxS 文件夹会影响什么? Windows 透明地处理压缩文件。但是,处理此类文件时,可能需要额外的 CPU 时间来解压缩/压缩它们。这可能会导致安装 Windows 组件或更新时速度略有下降。然而,在现代 CPU 上,文件压缩/解压缩操作几乎是立即执行的,因此用户甚至可能没有注意到对性能的真正影响。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯