Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Windows Server

การทำความสะอาดโฟลเดอร์ WinSXS อย่างปลอดภัยใน Windows Server 2012

ก่อนพูดถึงการทำความสะอาดโฟลเดอร์ WinSXS อย่างปลอดภัยใน Windows Server 2012 มาลองเข้าใจก่อนว่า WinSXS Folder คืออะไร มีอะไรเก็บอยู่ในโฟลเดอร์นี้ และทำไมขนาดของมันจึงเพิ่มขึ้นเรื่อยๆ ตามเวลา

[accordion]
[tab title="Contents of this article"]

[/tab]
[/accordion]

หากคุณจำได้ ระหว่างการติดตั้งฟีเจอร์เพิ่มเติมใน Windows Server 2003 วิซาร์ดการติดตั้งจะขอให้ใส่แผ่นติดตั้งใน CD-Rom หรือระบุเส้นทางไปยังโฟลเดอร์ที่มีแพ็กเกจการติดตั้ง Windows Server 2003 Microsoft ตัดสินใจเปลี่ยนนโยบายสำหรับ Roles และ Features เพิ่มเติมของ Windows ใน Windows Server 2008 ตอนนี้ ไฟล์ไบนารีทั้งหมดที่จำเป็นสำหรับการปรับใช้ Role ใดๆ ถูกจัดเก็บในโฟลเดอร์ %windir%\WinSxS (WinSxS – Windows Side By Side) หมายความว่าในกรณีการติดตั้ง Role เพิ่มเติม ไม่มีความจำเป็นต้องค้นหาและเชื่อมต่อแผ่นดิสก์ที่มีแพ็กเกจการติดตั้งกับเซิร์ฟเวอร์ โดยปกติแล้ว ในกรณีของท่าทีเช่นนี้ ต้องการพื้นที่มากขึ้นสำหรับ OS จำเป็นต้องเข้าใจว่าองค์ประกอบหลักของระบบตั้งอยู่ในแคตตาล็อก WinSXS และห้ามลบอะไรจากมันด้วยตนเองเด็ดขาด ทำไมขนาดจึงเพิ่มขึ้นเรื่อยๆ? คำตอบง่าย — อัปเดต ระหว่างการติดตั้งอัปเดตสำหรับฟีเจอร์ต่างๆ ในแคตตาล็อก WinSXS เวอร์ชันเก่าและใหม่ของฟีเจอร์ที่อัปเดตจะถูกบันทึกไว้ เนื่องจากสถาปัตยกรรมแบบนี้ เราสามารถลบอัปเดตที่ติดตั้งไว้ได้อย่างปลอดภัยทุกเมื่อและกลับไปใช้เวอร์ชันเก่าของฟีเจอร์ได้

Tip Windows 7 SP 1 สามารถลดขนาดโฟลเดอร์ WinSxS ได้โดยการลบอัปเดตที่ไม่ได้ใช้

และควรทำอย่างไรหากระบบเปิดใช้งานและทำงานได้ดี ไม่มีความจำเป็นในการปรับใช้ Role เพิ่มเติม แต่ยังไม่มีพื้นที่เพียงพอบนดิสก์? ดูค่อนข้างไม่สมเหตุสมผลที่จะใช้พื้นที่หลายกิกะไบต์บน System Disk สำหรับแพ็กเกจการติดตั้งที่จะไม่มีความจำเป็นเลย! น่าเสียดายที่ค่อนข้างยากที่จะลบไฟล์เหล่านี้โดยไม่ทำลายระบบใน Windows Server 2008 อย่างไรก็ตาม Microsoft ใน OS เซิร์ฟเวอร์ใหม่ (Windows Server 2012) ตัดสินใจปรับปรุงข้อบกพร่องนี้โดยการนำฟังก์ชันใหม่มาใช้ซึ่งเรียกว่า Features on Demand.

Features on Demand ใน Windows Server 2012

ฟังก์ชัน Features on Demand อนุญาตให้ลดพื้นที่บนดิสก์ที่ใช้สำหรับไฟล์ระบบ เนื่องจากความเป็นไปได้ในการลบไฟล์ไบนารีของ Roles ที่ไม่ได้ใช้จากโฟลเดอร์ WinSxS ในกรณีที่ภายหลังจะมีความจำเป็นต้องคืน Role ที่ลบไปก่อนหน้านี้ ไฟล์ที่จำเป็นทั้งหมดสามารถหาได้ใน Windows Server 2012 Installation Package Image, Windows Update Service หรือ Network Resource ที่มีเนื้อหาต้นฉบับ

ด้วยความช่วยเหลือของคำสั่ง PowerShell ต่อไปนี้ คุณสามารถรับข้อมูลเกี่ยวกับ Roles และ Features ของระบบทั้งหมด:

1 
Get-WindowsFeature

การทำความสะอาดโฟลเดอร์ WinSXS อย่างปลอดภัยใน Windows Server 2012

ตามที่เห็น สถานะของทุก Role แสดงในคอลัมน์ Install State สถานะต่อไปนี้เป็นไปได้:

  • Installed: Role หรือ Feature ถูกติดตั้งและถูกใช้งานโดยระบบในขณะนี้
  • Available: Role ไม่ได้ติดตั้งบนเซิร์ฟเวอร์ อย่างไรก็ตาม ไฟล์ที่จำเป็นทั้งหมดพร้อมใช้งานบนดิสก์ ซึ่งอนุญาตให้ติดตั้ง/เปิดใช้งาน Role นี้ได้ทุกเมื่อ
  • Removed: Role หรือ Feature ไม่ได้ติดตั้งบนเซิร์ฟเวอร์ ไฟล์ทั้งหมดที่จำเป็นสำหรับการติดตั้งถูกลบออกจากดิสก์

ตามลำดับ ในกรณีการติดตั้ง Role ใดๆ ผ่าน GUI หรือ PowerShell (คำสั่ง Install-WindowsFeature) สถานะของมันจะเปลี่ยนจาก Available เป็น Installed หรือในกรณีการลบ (คำสั่ง Uninstall-WindowsFeature) และในทางกลับกัน

การลบ Roles ที่ไม่ได้ใช้จาก Windows Server 2012

การลบ Role จากดิสก์ (จากโฟลเดอร์ WinSxS) เป็นไปได้เฉพาะผ่าน PowerShell ควรใช้ Argument พิเศษของคำสั่ง Uninstall-WindowsFeature –Remove สำหรับวัตถุประสงค์นี้

หากคุณต้องการลบไฟล์ไบนารีของ Role DHCP Server ตัวอย่างเช่น ควรใช้คำสั่งต่อไปนี้:

1 
Uninstall-WindowsFeature –Name DHCP –Remove

คำสั่งต่อไปนี้จะลบไฟล์บริการของ Active Directory Domain Services Catalog:

1 
Uninstall-WindowsFeature AD-Domain-Services -Remove

การทำความสะอาดโฟลเดอร์ WinSXS อย่างปลอดภัยใน Windows Server 2012

ด้วยความช่วยเหลือของ PowerShell สามารถเขียนคำสั่งที่ซับซ้อนมากขึ้นซึ่งจะลบไฟล์การติดตั้งของ Roles และ Functions ที่ไม่ได้ใช้งานของ Windows Server ทั้งหมด:

1 
Get-WindowsFeature | Where-Object {$_.InstallState -Eq "Available"} | Uninstall-WindowsFeature -Remove

การทำความสะอาดโฟลเดอร์ WinSXS อย่างปลอดภัยใน Windows Server 2012

ในตัวอย่างของเรา โดยที่ติดตั้ง Role File Server เพียงอย่างเดียว ขนาดของโฟลเดอร์ WinSxS จะลดลงจาก 8 เป็น 5 GB ผลลัพธ์ไม่แย่เลยใช่ไหม? ยิ่งไปกว่านั้น เราใช้คำสั่งเพียงคำเดียวสำหรับการทำความสะอาดโฟลเดอร์ WinSxS

การทำความสะอาดโฟลเดอร์ WinSXS อย่างปลอดภัยใน Windows Server 2012

วิธีติดตั้ง Roles และ Features ที่ลบแล้วใน Windows Server 2012

อีกตัวอย่างหนึ่ง สมมติว่าคุณต้องการติดตั้ง Role ของ Windows Server 2012 บางอย่าง แต่แพ็กเกจการติดตั้งของมันถูกลบจากแคตตาล็อก WinSxS สามารถกู้คืน Role นี้ได้หลายวิธี: ด้วย GUI Server Manager หรือด้วย PowerShell

ก่อนเริ่มกู้คืนไฟล์ Role จำเป็นต้องระบุ Index ของ Windows Server 2012 Installed Edition เราต้องการ Disk ที่มี Windows Server 2012 Installation Package (Install.wim Image File ซึ่งจัดสรรใน Sources Catalog) ให้ทำคำสั่ง PowerShell ต่อไปนี้:

1 
Get-windowsimage –imagepath \sources\install.wim

การทำความสะอาดโฟลเดอร์ WinSXS อย่างปลอดภัยใน Windows Server 2012

โปรดหาเวอร์ชันของ Windows Server ที่ติดตั้งบน PC ของคุณและจำ Index ของมัน (ค่าในบรรทัด Index) ในตัวอย่างของเรา คือ Windows Server 2012 Datacenter ด้วย Index 4

การดำเนินการเดียวกันสามารถทำได้ด้วย Utility Dism:

1 
dism.exe /get-imageinfo /imagefile:d:\sources\install.wim

การติดตั้ง Role ที่ลบแล้วโดยใช้ Server Manager

เปิดคอนโซล Server Manager และเปิดใช้งาน Role Installation Manager (Add Roles and Features) เลือก Role หรือ Feature ที่ต้องการติดตั้ง Manager จะเตือนคุณว่าบางไฟล์ที่จำเป็นสำหรับการติดตั้ง Role นี้หายไป และคุณต้องระบุ Alternate Source Path ไปยังตำแหน่งแพ็กเกจการติดตั้ง กดปุ่ม Specify an alternate source path

การทำความสะอาดโฟลเดอร์ WinSXS อย่างปลอดภัยใน Windows Server 2012

ในฟิลด์ Path ให้ระบุ Full Path ไปยังไฟล์ install.wim และ Index ของ OS Installed Edition ในรูปแบบต่อไปนี้:

1 
WIM:D:\Sources\Install.wim:4

การทำความสะอาดโฟลเดอร์ WinSXS อย่างปลอดภัยใน Windows Server 2012

หลังจากกดปุ่ม OK ไฟล์ทั้งหมดที่จำเป็นสำหรับ Role ที่ติดตั้งจะถูกคัดลอกไปยังแคตตาล็อก WinSxS

หากจำเป็น สามารถระบุ Path ไปยังโฟลเดอร์ที่มี WIM File หรือ Network Path ไปยังแคตตาล็อก WinSxS ในบรรทัดนี้ได้ นอกจากนี้ ยังสามารถระบุ Path ไปยังโฟลเดอร์นี้สำหรับกลุ่มเซิร์ฟเวอร์ด้วยความช่วยเหลือของ Group Policy ( Computer Configuration / Administrative Templates / System / Specify settings for optional component installation and component repair) ตัวเลือกสุดท้ายนี้สะดวกมาก หากต้องการดำเนินการติดตั้งเซิร์ฟเวอร์จำนวนมากด้วย Windows Server 2012 เพราะผลรวมของการทำความสะอาดดังกล่าวอาจนำไปสู่หลายร้อยกิกะไบต์

การทำความสะอาดโฟลเดอร์ WinSXS อย่างปลอดภัยใน Windows Server 2012

Windows Server 2012 กู้คืน Roles ที่ลบแล้วด้วย PowerShell

การดำเนินการเดียวกันสามารถทำได้ด้วยความช่วยเหลือของคำสั่ง PowerShell เพียงคำเดียว สมมติว่าเราต้องการกู้คืนไฟล์ Remote ของ Role ADDS ให้รันคำสั่งต่อไปนี้:

1 
Install-WindowsFeature AD-Domain-Services -Source WIM:WIM:D:\Sources\Install.wim:4

การทำความสะอาดโฟลเดอร์ WinSXS อย่างปลอดภัยใน Windows Server 2012

ดังนั้น ในบทความนี้ เราเรียนรู้ฟังก์ชันใหม่ของ Windows Server 2012 ซึ่งเรียกว่า Features on Demand มันอนุญาตให้ลบไฟล์ไบนารีที่มีแพ็กเกจการติดตั้ง Server Roles ออกจากแคตตาล็อก WinSxS Role ที่ลบแล้วสามารถกู้คืนได้หากจำเป็น: ทั้งสิ่งที่คุณต้องการคือ Windows Server 2012 Installation Package

Feature on Demand ใน Windows 8 ทำงานแตกต่างเล็กน้อย เพราะคำสั่ง PowerShell ที่เราใช้ในกรณีก่อนหน้านี้เพียงแค่ไม่มีอยู่ที่นี่ คำสั่ง DISM พร้อมพารามิเตอร์ /Disable-Feature ถือเป็น Analog ของมัน (ไม่สะดวกเท่าไหร่) เนื้อหาไดเรกทอรี WinSxS ยังสามารถบีบอัดได้ อ่านเพิ่มเติมในบทความ: How to Clean Up and Compress WinSxS Folder
Tip เพิ่มเติมเกี่ยวกับการลดขนาดโฟลเดอร์ WinSxS ใน Windows 8.1 ที่นี่