Trong bài viết này, chúng tôi sẽ nói về WinSxS thư mục trong Windows, lý do của sự phát triển liên tục và cách để dọn dẹp nó. C:\ Windows \ WinSxS thư mục là kho chứa các thành phần của Windows. Thư mục này chứa các tệp DLL, tệp nhị phân và XML cần thiết để cài đặt và vận hành các vai trò hoặc tính năng khác nhau của Windows. Khi cài đặt các bản cập nhật Windows (thường điều này xảy ra hàng tháng), phiên bản mới của thành phần được cập nhật sẽ được cài đặt trên hệ thống, trong khi phiên bản cũ được lưu vào thư mục WinSxS (cần cung cấp khả năng tương thích và có thể khôi phục lại phiên bản trước của các thành phần khi bạn gỡ cài đặt bản cập nhật Windows).
Thư mục WinSxS đã tăng kích thước theo thời gian. Hơn nữa, kích thước của nó không bị giới hạn bởi bất kỳ điều gì (mặc dù trên thực tế, kích thước của thư mục WinSxS trong Windows 10 hiếm khi vượt quá 15-20 GB).
Trong bài viết này, chúng tôi sẽ giới thiệu cho các bạn những cách an toàn nhất để dọn dẹp thư mục WinSxS trên Windows 10 và Windows Server 2016/2019:
- Tối ưu hóa cửa hàng linh kiện và xóa các phiên bản cũ của các tệp thành phần Windows còn sót lại sau khi cài đặt các bản cập nhật Windows;
- Tính năng theo yêu cầu - cho phép bạn xóa các thành phần Windows không sử dụng khỏi đĩa;
- Bật tính năng nén NTFS trên thư mục WinSxS - một cách để giảm kích thước của thư mục WinSxS bằng cách sử dụng tính năng nén tích hợp của hệ thống tệp NTFS.
Làm thế nào để Kiểm tra Kích thước Thực của Thư mục WinSxS trên Windows 10?
Cách dễ nhất để có được kích thước hiện tại của thư mục WinSxS trên Windows là mở thuộc tính của %windir%\WinSxS
trong File Explorer (hoặc sử dụng tập lệnh PowerShell). Nhưng hãy nhớ rằng hầu hết các trình quản lý tệp (bao gồm cả File Explorer) hiển thị kích thước thư mục WinSxS lớn hơn một chút so với kích thước của nó trên đĩa.
Thực tế là thư mục WinSxS chứa một số lượng lớn liên kết cứng (liên kết tượng trưng) tới các tệp hệ thống trong các thư mục khác. Các trình quản lý tệp, khi tính toán kích thước của thư mục WinSxS, sẽ tính đến kích thước của các tệp được tham chiếu bởi các liên kết cứng, nhưng điều này không chính xác.
Bạn có thể tìm ra kích thước thực của thư mục WinSxS trên đĩa bằng cách sử dụng du công cụ từ Sysinternals:
du -v c:\windows\winSXS
Bạn cũng có thể phân tích kích thước của kho lưu trữ thành phần (thư mục WinSxS) bằng lệnh DISM:
Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore
Công cụ quản lý và phục vụ hình ảnh triển khai [==========================100.0% ==========================] Thông tin cửa hàng thành phần (WinSxS):Windows Explorer Kích thước được báo cáo của cửa hàng thành phần:8,44 GB Dung lượng thực của cửa hàng thành phần:8,15 GB Chia sẻ với Windows:5,74 GB Sao lưu và các tính năng bị tắt:1,97 GBCache và dữ liệu tạm thời:438,31 MB Ngày dọn dẹp lần cuối:2021-02-22 20:37:29Số gói có thể nhận lại:1 Dọn dẹp cửa hàng thành phần được đề xuất:CóNhư bạn thấy, trong trường hợp này, tôi có thể giảm kích thước của thư mục WinSxS xuống (1,97 + 0,44) Gb.
Lệnh DISM cũng cho phép bạn kiểm tra và sửa chữa hình ảnh Windows của mình:
DISM /Online /Cleanup-Image /RestoreHealth
Làm thế nào để Dọn dẹp Kho lưu trữ Thành phần (thư mục WinSxS) trên Windows?
Cách nhanh nhất và dễ nhất để xóa Windows Component Store (thư mục WinSxS) là tối ưu hóa bộ nhớ bằng lệnh:
Dism.exe /Online /Cleanup-Image /StartComponentCleanup
StartComponentCleanup
Tùy chọn DISM được hỗ trợ trên tất cả các phiên bản Windows bắt đầu từ Windows 8 và Windows Server 2012.Sau khi làm sạch hoàn tất, hãy kiểm tra kích thước hiện tại của cửa hàng linh kiện:
Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore
Trong ví dụ của tôi, điều này làm giảm kích thước của thư mục WinSxS đi 2,4 GB.
/StartComponentCleanup
tùy chọn có thêm / ResetBase tùy chọn cho phép bạn xóa tất cả các phiên bản trước của các thành phần còn lại sau khi cài đặt các bản cập nhật Windows. Sau đó, bạn sẽ không thể xóa các bản cập nhật hoặc Gói dịch vụ đã cài đặt và Gỡ cài đặt sẽ biến mất khỏi nút Gỡ cài đặt bản cập nhật Mục Bảng điều khiển). Để xóa các phiên bản cũ của các thành phần, hãy chạy:Trong Windows 7 và Windows Server 2008 R2, một tùy chọn DISM bổ sung đã được sử dụng để dọn dẹp các phiên bản cũ của các thành phần còn sót lại sau khi cài đặt gói dịch vụ.
Dism.exe /Online /Cleanup-Image /StartComponentCleanup /ResetBase
DISM /online /Cleanup-Image /spsuperseded
Bạn cũng có thể xóa các tệp cập nhật cũ bằng trình hướng dẫn “Dọn dẹp Ổ đĩa”:
- Chạy
cleanmgr
ra lệnh với tư cách là quản trị viên;- Chọn đĩa và trong cửa sổ tiếp theo, hãy nhấp vào nút “ Dọn dẹp tệp hệ thống " khuy ao;
- Sau đó, chọn “ Dọn dẹp cập nhật Windows " Lựa chọn. Công cụ Disk Cleanup sẽ hiển thị dung lượng bạn có thể giải phóng bằng cách xóa các tệp cập nhật Windows cũ. Trong ví dụ của tôi, đây là 324 MB. Bấm OK để bắt đầu dọn dẹp.
Sau khi bạn hoàn tất việc dọn dẹp kho lưu trữ thành phần bằng DISM, hãy kiểm tra dung lượng ổ đĩa đã được giải phóng.
Ngoài ra, Windows 10 / Windows Server 2016 Task Scheduler có một nhiệm vụ bảo trì tự động đặc biệt thường xuyên tối ưu hóa và dọn dẹp thư mục WinSxS (hoạt động tương tự như DISM với tham số StartComponentCleanup). StartComponentCleanup này nhiệm vụ nằm trong phần \ Microsoft \ Windows \ Servicing củataskschd.msc
. Tác vụ này chạy trong nền và tự động xóa các phiên bản thành phần cũ hơn 30 ngày đã được thay thế bằng các tệp mới hơn.Bạn có thể bắt đầu tác vụ này theo cách thủ công như sau:
schtasks.exe /Run /TN "\Microsoft\Windows\Servicing\StartComponentCleanup"
Xóa các vai trò và tính năng không sử dụng khỏi Windows 10 / Windows Server
Trong bài viết trước, chúng tôi đã đề cập đến khái niệm Tính năng theo yêu cầu trên Windows, cho phép xóa các tệp nhị phân của các vai trò không sử dụng khỏi thư mục WinSxS. Bạn có thể xóa nhị phân vai trò và tính năng trên Windows Server bằng lệnh ghép ngắn Uninstall-WindowsFeature PoweShell.
Windows 10 không có lệnh ghép ngắn Uninstall-WindowsFeature và bạn phải sử dụng DISM.exe để xóa các tính năng khỏi hình ảnh Windows.
Lưu ý rằng DISM, không giống nhưUninstall-WindowsFeature
Lệnh ghép ngắn PowerShell, không xóa các tính năng phụ thuộc.Có thể lấy danh sách đầy đủ các tính năng có sẵn trong hình ảnh Windows 10 bằng lệnh:
DISM.exe /Online /English /Get-Features /Format:Table
Để xóa, ví dụ: TelnetClient tính năng từ Windows image (từ thư mục WinSxS), chạy lệnh:
DISM.exe /Online /Disable-Feature /Featurename:TelnetClient /Remove
Nếu bạn hiển thị danh sách tất cả các tính năng theo yêu cầu có sẵn trong Windows, bạn sẽ thấy rằng trạng thái thành phần đã thay đổi thành Đã tắt với Tải trọng đã xóa .
Vì vậy, Windows cho phép giảm đáng kể kích thước của thư mục WinSxS bằng cách loại bỏ các thành phần không sử dụng khỏi đĩa. Điều duy nhất là phương pháp dọn dẹp này chỉ phù hợp với người dùng nâng cao, những người đã quen thuộc với các tính năng của Windows 10 và mục đích của họ.
Làm cách nào để Bật tính năng Nén NTFS trên Thư mục WinSxS trên Windows 10?
Một cách khác để giảm kích thước của thư mục WinSxS trên Windows 10 là nén nội dung thư mục ở cấp độ của hệ thống tệp NTFS.
Lưu ý. Như trong trường hợp có bất kỳ sự can thiệp không theo tiêu chuẩn nào vào cấu hình hệ thống, bạn nên tạo một bản sao lưu đầy đủ cho hình ảnh Windows 10 của mình.
- Mở dấu nhắc lệnh với tư cách quản trị viên;
- Dừng và tắt Trình cài đặt Windows và Trình cài đặt mô-đun Windows dịch vụ:
sc stop msiserver
sc stop TrustedInstaller
sc config msiserver start= disabled
sc config TrustedInstaller start= disabled- Hãy sao lưu Danh sách Kiểm soát Truy cập (ACL) được gán cho các tệp và thư mục trong thư mục WinSxS bằng công cụ icacls tích hợp sẵn. Bản sao dự phòng của ACL là một tệp văn bản thuần túy liệt kê tất cả các tệp và thư mục cũng như các quyền NTFS được chỉ định cho chúng (sau này tệp này sẽ cần thiết để khôi phục các ACL ban đầu):
icacls "%WINDIR%\WinSxS" /save "%WINDIR%\WinSxS_NTFS.acl" /t
- Chỉ định bạn là chủ sở hữu của thư mục WinSxS và tất cả các thư mục con của nó:
takeown /f "%WINDIR%\WinSxS" /r
- Cấp cho tài khoản của bạn quyền toàn quyền kiểm soát trên thư mục WinSxS:
icacls "%WINDIR%\WinSxS" /grant "%USERDOMAIN%\%USERNAME%":(F) /t
- Giờ đây, bạn có thể nén các tệp trong thư mục WinSxS bằng cách sử dụng compact yêu cầu. Vì một số tệp có thể được Windows sử dụng, bạn cần chỉ định
/i
Lựa chọn. Nếu không, quá trình nén sẽ dừng lại ở tệp bị khóa đầu tiên (trong Windows 10, bạn có thể sử dụng tính năng nén LZX nâng cao hơn):
compact /s:"%WINDIR%\WinSxS" /c /a /i *
- Khôi phục chủ sở hữu của thư mục WinSxS trở lại TrustedInstaller:
icacls "%WINDIR%\WinSxS" /setowner "NT SERVICE\TrustedInstaller" /t
- Khôi phục ACL ban đầu cho các mục trong thư mục WinSxS bằng cách sử dụng tệp sao lưu ACL bạn đã tạo trước đó:
icacls "%WINDIR%" /restore "%WINDIR%\WinSxS_NTFS.acl"
- Khôi phục kiểu khởi động mặc định cho các dịch vụ Windows Installer và Windows Module Installer:
sc config msiserver start= demand
sc config TrustedInstaller start= demandBây giờ hãy kiểm tra kích thước hiện tại của thư mục WinSxS:
Như bạn có thể thấy, trong ví dụ của chúng tôi, kích thước của thư mục WinSxS sau khi nén đã giảm từ 9,4GB thành 6,5GB (khoảng một phần ba). Không tệ, đặc biệt là đối với ổ SSD có kích thước nhỏ.
Các lệnh này có thể được chạy riêng biệt (khi đó việc theo dõi kết quả của từng lệnh sẽ dễ dàng hơn nhiều) hoặc được sử dụng trong một tệp kịch bản duy nhất. Nếu bạn chạy nó, quy trình nén được mô tả cho các mục trong thư mục WinSxS sẽ bắt đầu. Bạn có thể tải xuống tệp hàng loạt sẵn sàng sử dụng để bật tính năng nén NTFS trên WinSxS tại đây: wonxs_ntfs_compress.bat
Bạn có thể sử dụng tập lệnh này thường xuyên vì các tệp không nén mới sẽ xuất hiện trong thư mục WinSxS sau khi bạn cài đặt các ứng dụng hoặc bản cập nhật Windows mới.
Điều gì có thể bị ảnh hưởng khi nén thư mục WinSxS ? Windows hoạt động minh bạch với các tệp nén. Tuy nhiên, khi xử lý các tệp như vậy, CPU có thể mất thêm thời gian để giải nén / nén chúng. Điều này có thể gây ra hơi chậm khi cài đặt các thành phần hoặc bản cập nhật Windows. Tuy nhiên, trên các CPU hiện đại, các hoạt động nén / giải nén tệp được thực hiện gần như ngay lập tức, vì vậy người dùng thậm chí có thể không nhận thấy tác động thực sự đến hiệu suất.