Computer >> คอมพิวเตอร์ >  >> ระบบ >> Windows Server

วิธีทำความสะอาดและบีบอัดโฟลเดอร์ WinSxS บน Windows 10/Windows Server

ในบทความนี้เราจะพูดถึง WinSxS โฟลเดอร์ใน Windows สาเหตุของการเติบโตอย่างต่อเนื่องและวิธีล้างข้อมูล C:\Windows\WinSxS ไดเร็กทอรีเป็นที่เก็บส่วนประกอบ Windows ไดเร็กทอรีนี้มีไฟล์ DLL, ไบนารี และ XML ที่จำเป็นสำหรับการติดตั้งและการทำงานของบทบาทหรือคุณลักษณะต่างๆ ของ Windows เมื่อติดตั้งการอัปเดต Windows (โดยปกติจะเกิดขึ้นทุกเดือน) เวอร์ชันใหม่ของคอมโพเนนต์ที่อัปเดตจะได้รับการติดตั้งในระบบ ในขณะที่เวอร์ชันเก่าจะถูกบันทึกลงในโฟลเดอร์ WinSxS (จำเป็นต้องจัดเตรียมความเข้ากันได้และทำให้สามารถย้อนกลับไปยัง ส่วนประกอบเวอร์ชันก่อนหน้าเมื่อคุณถอนการติดตั้งการอัปเดต Windows)

ไดเร็กทอรี WinSxS มีขนาดใหญ่ขึ้นเมื่อเวลาผ่านไป ยิ่งไปกว่านั้น ขนาดของมันไม่ได้ถูกจำกัดด้วยสิ่งใดๆ (แม้ว่าในทางปฏิบัติ ขนาดของโฟลเดอร์ WinSxS ใน Windows 10 จะไม่ค่อยเกิน 15-20 GB)

วิธีทำความสะอาดและบีบอัดโฟลเดอร์ WinSxS บน Windows 10/Windows Server

ในบทความนี้ เราจะพูดถึงวิธีที่ปลอดภัยที่สุดในการล้างโฟลเดอร์ WinSxS ใน Windows 10 และ Windows Server 2016/2019:

  • เพิ่มประสิทธิภาพการจัดเก็บส่วนประกอบ และลบไฟล์คอมโพเนนต์ของ Windows เวอร์ชันเก่าที่เหลืออยู่หลังจากติดตั้งการอัปเดตของ Windows
  • คุณลักษณะตามความต้องการ – อนุญาตให้คุณลบส่วนประกอบ Windows ที่ไม่ได้ใช้ออกจากดิสก์;
  • เปิดใช้งานการบีบอัด NTFS ในโฟลเดอร์ WinSxS – วิธีลดขนาดของไดเร็กทอรี WinSxS โดยใช้การบีบอัดในตัวของระบบไฟล์ NTFS
ผู้ใช้หลายคนมักถามว่า:เป็นไปได้ไหมที่จะลบไฟล์ออกจากโฟลเดอร์ WinSxS ด้วยตนเอง? คำตอบคือ ไม่ ! การกระทำเหล่านี้อาจทำให้อิมเมจ Windows ของคุณเสียหายได้ แม้ว่าการพยายามลบไฟล์ออกจากโฟลเดอร์ WinSxS บางอย่างอาจทำได้สำเร็จ แต่ไม่แนะนำให้ใช้วิธีนี้

จะตรวจสอบขนาดที่แท้จริงของโฟลเดอร์ WinSxS บน Windows 10 ได้อย่างไร

วิธีที่ง่ายที่สุดในการรับขนาดปัจจุบันของโฟลเดอร์ WinSxS บน Windows คือการเปิดคุณสมบัติของ %windir%\WinSxS โฟลเดอร์ใน File Explorer (หรือใช้สคริปต์ PowerShell) แต่อย่าลืมว่าตัวจัดการไฟล์ส่วนใหญ่ (รวมถึง File Explorer) จะแสดงขนาดโฟลเดอร์ WinSxS ที่ใหญ่กว่าเล็กน้อยกว่าที่ใช้บนดิสก์เล็กน้อย

ความจริงก็คือไดเร็กทอรี WinSxS มี ฮาร์ดลิงก์ . จำนวนมาก (ลิงก์สัญลักษณ์) ไปยังไฟล์ระบบในโฟลเดอร์อื่น ตัวจัดการไฟล์ เมื่อคำนวณขนาดของโฟลเดอร์ WinSxS ให้คำนึงถึงขนาดของไฟล์ที่อ้างอิงโดยฮาร์ดลิงก์ แต่สิ่งนี้ไม่ถูกต้อง

คุณสามารถค้นหาขนาดที่แท้จริงของโฟลเดอร์ WinSxS บนดิสก์ได้โดยใช้ du เครื่องมือจาก Sysinternals:
du -v c:\windows\winSXS
วิธีทำความสะอาดและบีบอัดโฟลเดอร์ WinSxS บน Windows 10/Windows Server

คุณยังสามารถวิเคราะห์ขนาดของที่เก็บส่วนประกอบ (โฟลเดอร์ WinSxS) โดยใช้คำสั่ง DISM:

Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore

วิธีทำความสะอาดและบีบอัดโฟลเดอร์ WinSxS บน Windows 10/Windows Server

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

จะทำความสะอาด Component Store (โฟลเดอร์ WinSxS) ใน Windows ได้อย่างไร

วิธีที่เร็วและง่ายที่สุดในการล้าง Windows Component Store (โฟลเดอร์ WinSxS) คือการเพิ่มประสิทธิภาพการจัดเก็บข้อมูลด้วยคำสั่ง:

Dism.exe /Online /Cleanup-Image /StartComponentCleanup

วิธีทำความสะอาดและบีบอัดโฟลเดอร์ WinSxS บน Windows 10/Windows Server

StartComponentCleanup ตัวเลือก DISM รองรับ Windows ทุกรุ่นตั้งแต่ Windows 8 และ Windows Server 2012

หลังจากทำความสะอาดเสร็จแล้ว ให้ตรวจสอบขนาดปัจจุบันของที่เก็บส่วนประกอบ:

Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore

ในตัวอย่างของฉัน สิ่งนี้ลดขนาดของโฟลเดอร์ WinSxS ลง 2.4 GB

/StartComponentCleanup ตัวเลือกมี /ResetBase . เพิ่มเติม ตัวเลือกที่ช่วยให้คุณสามารถลบส่วนประกอบเวอร์ชันก่อนหน้าทั้งหมดที่เหลืออยู่หลังจากติดตั้งการอัปเดต Windows หลังจากนั้น คุณจะไม่สามารถลบการอัปเดตที่ติดตั้งหรือ Service Pack และ ถอนการติดตั้ง ปุ่มจะหายไปจาก ถอนการติดตั้งการอัปเดต รายการแผงควบคุม) หากต้องการล้างส่วนประกอบเวอร์ชันเก่า ให้เรียกใช้:

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

ใน Windows 7 และ Windows Server 2008 R2 มีการใช้ตัวเลือก DISM เพิ่มเติมเพื่อล้างส่วนประกอบเวอร์ชันเก่าที่หลงเหลืออยู่หลังจากติดตั้ง Service Pack

DISM /online /Cleanup-Image /spsuperseded

คุณยังสามารถลบไฟล์อัพเดทเก่าได้โดยใช้วิซาร์ด “การล้างข้อมูลบนดิสก์”:

  1. เรียกใช้ cleanmgr คำสั่งในฐานะผู้ดูแลระบบ
  2. เลือกดิสก์และในหน้าต่างถัดไป ให้คลิกที่ “ล้างไฟล์ระบบ " ปุ่ม; วิธีทำความสะอาดและบีบอัดโฟลเดอร์ WinSxS บน Windows 10/Windows Server
  3. จากนั้นเลือก “การล้างข้อมูลอัปเดตของ Windows " ตัวเลือก. เครื่องมือ Disk Cleanup จะแสดงจำนวนพื้นที่ว่างที่คุณสามารถเพิ่มได้โดยการลบไฟล์อัพเดต Windows เก่า ในตัวอย่างของฉัน นี่คือ 324 MB คลิกตกลงเพื่อเริ่มการล้างข้อมูล วิธีทำความสะอาดและบีบอัดโฟลเดอร์ WinSxS บน Windows 10/Windows Server

หลังจากที่คุณล้างที่เก็บส่วนประกอบโดยใช้ DISM เสร็จแล้ว ให้ตรวจสอบว่ามีพื้นที่ว่างในดิสก์เหลือเท่าใด
นอกจากนี้ Windows 10/Windows Server 2016 Task Scheduler ยังมีงานบำรุงรักษาอัตโนมัติพิเศษที่ปรับและล้างโฟลเดอร์ WinSxS เป็นประจำ (การดำเนินการเดียวกับ DISM ที่มีพารามิเตอร์ StartComponentCleanup) StartComponentCleanup . นี้ งานอยู่ภายใต้ส่วน \Microsoft\Windows\Servicing ของ taskschd.msc . งานนี้ทำงานในเบื้องหลังและลบเวอร์ชันส่วนประกอบที่เก่ากว่า 30 วันที่ถูกแทนที่ด้วยไฟล์ที่ใหม่กว่าโดยอัตโนมัติ

คุณสามารถเริ่มงานนี้ด้วยตนเองดังนี้:

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

วิธีทำความสะอาดและบีบอัดโฟลเดอร์ WinSxS บน Windows 10/Windows Server

ลบบทบาทและฟีเจอร์ที่ไม่ได้ใช้ออกจาก Windows 10/Windows Server

ในบทความที่แล้ว เราได้กล่าวถึงแนวคิดของ คุณลักษณะตามความต้องการ บน Windows ซึ่งอนุญาตให้ลบไฟล์ไบนารีของบทบาทที่ไม่ได้ใช้ออกจากโฟลเดอร์ WinSxS คุณสามารถลบบทบาทและไบนารีของคุณลักษณะบน Windows Server ได้โดยใช้ cmdlet ของ Uninstall-WindowsFeature PoweShell

Windows 10 ไม่มี cmdlet ถอนการติดตั้ง-WindowsFeature และคุณต้องใช้ DISM.exe เพื่อลบคุณสมบัติออกจากอิมเมจ Windows

โปรดทราบว่า DISM ไม่เหมือนกับ Uninstall-WindowsFeature PowerShell cmdlet ไม่ได้ลบคุณลักษณะที่ขึ้นต่อกัน

รายการคุณลักษณะทั้งหมดที่มีในอิมเมจ Windows 10 สามารถรับได้โดยใช้คำสั่ง:
DISM.exe /Online /English /Get-Features /Format:Table
วิธีทำความสะอาดและบีบอัดโฟลเดอร์ WinSxS บน Windows 10/Windows Server

ในการลบ ตัวอย่างเช่น TelnetClient จากอิมเมจ Windows (จากโฟลเดอร์ WinSxS) ให้เรียกใช้คำสั่ง:
DISM.exe /Online /Disable-Feature /Featurename:TelnetClient /Remove
วิธีทำความสะอาดและบีบอัดโฟลเดอร์ WinSxS บน Windows 10/Windows Server

หากคุณแสดงรายการคุณลักษณะแบบออนดีมานด์ทั้งหมดที่พร้อมใช้งานใน Windows คุณจะเห็นว่าสถานะคอมโพเนนต์เปลี่ยนเป็น ปิดใช้งานโดยนำ Payload ออก .

ดังนั้น Windows จึงยอมลดขนาดของโฟลเดอร์ WinSxS ลงอย่างมากโดยการลบส่วนประกอบที่ไม่ได้ใช้ออกจากดิสก์ สิ่งเดียวคือวิธีการล้างข้อมูลนี้เหมาะสำหรับผู้ใช้ขั้นสูงที่คุ้นเคยกับคุณลักษณะของ Windows 10 และจุดประสงค์เท่านั้น

จะเปิดใช้งานการบีบอัด NTFS ในโฟลเดอร์ WinSxS ใน Windows 10 ได้อย่างไร

อีกวิธีในการลดขนาดของไดเร็กทอรี WinSxS บน Windows 10 คือการบีบอัดเนื้อหาไดเร็กทอรีในระดับของระบบไฟล์ NTFS

หมายเหตุ ในกรณีของการแทรกแซงที่ไม่ได้มาตรฐานในการกำหนดค่าระบบ ขอแนะนำอย่างยิ่งให้สร้างการสำรองข้อมูลเต็มรูปแบบของอิมเมจ Windows 10 ของคุณ
  1. เปิดพรอมต์คำสั่งในฐานะผู้ดูแลระบบ
  2. หยุดและปิดใช้งาน ตัวติดตั้ง Windows และ ตัวติดตั้งโมดูล Windows บริการ:
    sc stop msiserver
    sc stop TrustedInstaller
    sc config msiserver start= disabled
    sc config TrustedInstaller start= disabled
  3. มาสำรองข้อมูลรายการควบคุมการเข้าถึง (ACL) ที่กำหนดให้กับไฟล์และโฟลเดอร์ในไดเรกทอรี WinSxS โดยใช้เครื่องมือ icacls ในตัว สำเนาสำรองของ ACL เป็นไฟล์ข้อความธรรมดาที่แสดงรายการไฟล์และไดเร็กทอรีทั้งหมด และการอนุญาต NTFS ที่ได้รับมอบหมาย (ภายหลังไฟล์นี้จะต้องใช้เพื่อกู้คืน ACL ดั้งเดิม):
    icacls "%WINDIR%\WinSxS" /save "%WINDIR%\WinSxS_NTFS.acl" /t
    วิธีทำความสะอาดและบีบอัดโฟลเดอร์ WinSxS บน Windows 10/Windows Server
  4. กำหนดตัวเองเป็นเจ้าของโฟลเดอร์ WinSxS และโฟลเดอร์ย่อยทั้งหมด:
    takeown /f "%WINDIR%\WinSxS" /r
  5. ให้สิทธิ์ควบคุมบัญชีของคุณแบบเต็มในไดเรกทอรี WinSxS:
    icacls "%WINDIR%\WinSxS" /grant "%USERDOMAIN%\%USERNAME%":(F) /t
  6. ขณะนี้คุณสามารถบีบอัดไฟล์ในไดเร็กทอรี WinSxS โดยใช้ กะทัดรัด สั่งการ. เนื่องจาก Windows สามารถใช้ไฟล์บางไฟล์ได้ คุณจึงต้องระบุ /i ตัวเลือก. มิฉะนั้น การบีบอัดจะหยุดที่ไฟล์แรกที่ล็อกไว้ (ใน Windows 10 คุณสามารถใช้การบีบอัด LZX ขั้นสูงกว่านี้ได้):
    compact /s:"%WINDIR%\WinSxS" /c /a /i *
    วิธีทำความสะอาดและบีบอัดโฟลเดอร์ WinSxS บน Windows 10/Windows Server
  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:

วิธีทำความสะอาดและบีบอัดโฟลเดอร์ WinSxS บน Windows 10/Windows Server

อย่างที่คุณเห็น ในตัวอย่างของเรา ขนาดของโฟลเดอร์ WinSxS หลังจากการบีบอัดลดลงจาก 9.4GB เป็น 6.5GB (ประมาณหนึ่งในสาม) ไม่เลว โดยเฉพาะอย่างยิ่งสำหรับไดรฟ์ SSD ขนาดเล็ก

คำสั่งเหล่านี้สามารถเรียกใช้แยกกันได้ (ซึ่งง่ายกว่ามากในการติดตามผลลัพธ์ของแต่ละคำสั่ง) หรือใช้ในไฟล์สคริปต์เดียว หากคุณเรียกใช้ ขั้นตอนการบีบอัดที่อธิบายไว้สำหรับรายการในโฟลเดอร์ WinSxS จะเริ่มต้นขึ้น คุณสามารถดาวน์โหลดไฟล์แบตช์ที่พร้อมใช้งานเพื่อเปิดใช้งานการบีบอัด NTFS บน WinSxS ได้ที่นี่:winsxs_ntfs_compress.bat

คุณสามารถใช้สคริปต์นี้ได้เป็นประจำ เนื่องจากไฟล์ที่ไม่บีบอัดใหม่จะปรากฏในโฟลเดอร์ WinSxS หลังจากที่คุณติดตั้งการอัปเดตหรือแอป Windows ใหม่

สิ่งที่ได้รับผลกระทบจากการบีบอัดโฟลเดอร์ WinSxS ? Windows ทำงานอย่างโปร่งใสกับไฟล์บีบอัด อย่างไรก็ตาม เมื่อประมวลผลไฟล์ดังกล่าว อาจต้องใช้เวลาของ CPU เพิ่มเติมในการขยาย/บีบอัดไฟล์ ซึ่งอาจทำให้การทำงานช้าลงเล็กน้อยเมื่อติดตั้งส่วนประกอบหรือการอัปเดตของ Windows อย่างไรก็ตาม สำหรับซีพียูสมัยใหม่ การดำเนินการบีบอัด/คลายการบีบอัดไฟล์จะดำเนินการเกือบจะในทันที ดังนั้นผู้ใช้จึงอาจไม่สังเกตเห็นผลกระทบที่แท้จริงต่อประสิทธิภาพการทำงานด้วยซ้ำ