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

การใช้ DISM เพื่อตรวจสอบและซ่อมแซม Windows Image

คุณสามารถใช้ SFC (ตัวตรวจสอบไฟล์ระบบ ) และ DISM (การบริการและการจัดการอิมเมจการทำให้ใช้งานได้ ) คำสั่งเพื่อตรวจสอบและซ่อมแซมความสมบูรณ์ของไฟล์ระบบและ Component Store ของอิมเมจ Windows (Windows Server) ของคุณ เครื่องมือเหล่านี้มีประโยชน์อย่างยิ่งหาก Windows ของคุณไม่เสถียร ไม่สามารถบู๊ตได้ ข้อผิดพลาดปรากฏขึ้นเมื่อคุณพยายามเรียกใช้แอพหรือบริการในตัว หลังจากติดไวรัส ฯลฯ

ในบทความนี้ เราจะมาดูวิธีการใช้ SFC /ScanNow , DISM /Online /Cleanup-Image /RestoreHealth, หรือ Repair-WindowsImage -Online -RestoreHealth คำสั่งซ่อมอิมเมจและไฟล์ระบบใน Windows 10/11 และ Windows Server 2022/2019/2016

SFC /ScanNow:การใช้ตัวตรวจสอบไฟล์ระบบเพื่อซ่อมแซมไฟล์ระบบของ Windows

ขอแนะนำให้ใช้คำสั่ง DISM เพื่อกู้คืน Windows หลังจากที่คุณตรวจสอบความสมบูรณ์ของไฟล์ระบบโดยใช้เครื่องมือ SFC sfc /scannow คำสั่งสแกนไฟล์ระบบที่ได้รับการป้องกัน และหากไฟล์เหล่านั้นสูญหายหรือเสียหาย จะพยายามกู้คืนสำเนาต้นฉบับในเวอร์ชัน Windows Component Store (โฟลเดอร์ C:\Windows\WinSxS)

เครื่องมือ SFC เขียนกิจกรรมทั้งหมดไปยัง %windir%\logs\cbs\cbs.log . รายการ SFC ทั้งหมดในไฟล์ CBS.log ถูกแท็กด้วย [SR] . หากต้องการเลือกเฉพาะรายการที่เกี่ยวข้องกับ SFC จากบันทึก ให้เรียกใช้คำสั่ง:

findstr /c:"[SR]" %windir%\Logs\CBS\CBS.log >"%userprofile%\Desktop\sfc.txt"

ถ้า sfc /scannow คำสั่งส่งคืนข้อผิดพลาด Windows Resource Protection พบไฟล์ที่เสียหาย แต่ไม่สามารถแก้ไขบางไฟล์ได้ “ เป็นไปได้ว่าเครื่องมือไม่สามารถรับไฟล์ที่จำเป็นจาก Windows Component Store (ดูภาพด้านล่าง)

การใช้ DISM เพื่อตรวจสอบและซ่อมแซม Windows Image

ในกรณีนี้ คุณสามารถลองซ่อมแซม Component Store ของอิมเมจ Windows ของคุณโดยใช้ DISM.exe คำสั่ง

เครื่องมือ DISM (Deployment Image Servicing and Management) มีอยู่ใน Windows ทุกรุ่นตั้งแต่ Vista

หลังจากซ่อมแซมอิมเมจ Windows แล้ว คุณสามารถลองใช้ SFC เพื่อกู้คืนไฟล์ระบบของคุณ

ตรวจสอบความสมบูรณ์ของ Windows Component Store โดยใช้ DISM

DISM /Cleanup-Image /CheckHealth สวิตช์ใช้เพื่อสแกนอิมเมจ Windows เพื่อหาข้อผิดพลาดและแก้ไข ต้องเรียกใช้คำสั่ง DISM จากพรอมต์คำสั่งที่มีการยกระดับ

เรียกใช้คำสั่งต่อไปนี้เพื่อตรวจสอบว่ามีการตั้งค่าสถานะความเสียหายของ Windows image Component Store (ใช้ไม่ได้กับ Windows 7/Server 2008R2) หรือไม่ คำสั่งนี้ตรวจสอบ แฟล็ก CBS กำหนดโดยหนึ่งในกระบวนการบำรุงรักษาระบบ

DISM /Online /Cleanup-Image /CheckHealth

คำสั่งนี้ไม่ทำการสแกน Component Store แบบเต็ม คำสั่งจะตรวจสอบเฉพาะว่าอิมเมจ Windows ของคุณถูกตั้งค่าสถานะว่าเสียหายหรือไม่ และสามารถแก้ไขได้หรือไม่ ไม่มีการเปลี่ยนแปลงใดๆ กับรูปภาพ

การใช้ DISM เพื่อตรวจสอบและซ่อมแซม Windows Image

ในตัวอย่างนี้ คำสั่งได้ส่งคืนว่าอิมเมจ Windows 10 ไม่มีความเสียหาย:

No component store corruption detected.
The operation completed successfully.

หากต้องการเรียกใช้การสแกนความสมบูรณ์ของ Windows Component Store แบบเต็ม ให้เรียกใช้คำสั่ง:

DISM /Online /Cleanup-Image /ScanHealth

คำสั่งตรวจสอบอิมเมจ Windows อาจใช้เวลานาน (10-30 นาที) และจะส่งกลับหนึ่งในสามผลลัพธ์:

  • ไม่พบความเสียหายของที่เก็บส่วนประกอบ – DISM ไม่พบข้อผิดพลาดในที่เก็บส่วนประกอบ
  • ส่วนประกอบที่จัดเก็บสามารถซ่อมแซมได้ – DISM พบข้อผิดพลาดใน Component Store และสามารถแก้ไขได้
  • ที่เก็บส่วนประกอบไม่สามารถซ่อมแซมได้ – DISM ไม่สามารถแก้ไข Windows Component Store ได้ (ลองใช้ DISM เวอร์ชันใหม่กว่า มิฉะนั้น คุณจะต้องกู้คืนอิมเมจ Windows จากข้อมูลสำรอง รีเซ็ตหรือติดตั้งอินสแตนซ์ Windows ของคุณใหม่ทั้งหมด)

การใช้ DISM เพื่อตรวจสอบและซ่อมแซม Windows Image

ในการใช้สวิตช์ DISM /ScanHealth บน Windowsds 7 และ Windows Server 2008 คุณต้องติดตั้ง KB2966583 อัปเดต. มิฉะนั้น คุณจะเห็นข้อความ:“ข้อผิดพลาด 87 ตัวเลือก ScanHealth ไม่รู้จักในบริบทนี้

ในบางกรณี DISM /ScanHealth จะส่งคืนข้อผิดพลาดต่อไปนี้:

  • DISM Error 1726 – “การเรียกขั้นตอนระยะไกลล้มเหลว”;
  • ข้อผิดพลาด DISM 1910 – “ไม่พบผู้ส่งออกวัตถุที่ระบุ”

หมายความว่าอิมเมจ Windows ของคุณเสียหายและจำเป็นต้องได้รับการซ่อมแซม

ซ่อมแซมอิมเมจ Windows โดยใช้ DISM /RestoreHealth

ในการแก้ไขความเสียหายใน Windows image Component Store คุณต้องใช้ RestoreHealth ตัวเลือกคำสั่ง DISM ตัวเลือกนี้จะช่วยให้คุณสามารถแก้ไขข้อผิดพลาดที่พบในอิมเมจของ Windows ดาวน์โหลดและแทนที่ไฟล์ของส่วนประกอบที่เสียหายหรือขาดหายไปโดยอัตโนมัติด้วยไฟล์เวอร์ชันดั้งเดิมจาก Windows Update (คอมพิวเตอร์ของคุณต้องมีการเข้าถึงอินเทอร์เน็ตโดยตรง) รันคำสั่ง:

DISM /Online /Cleanup-Image /RestoreHealth,

ใน Windows 7/2008 R2 คำสั่งนี้จะดูแตกต่างออกไป:
DISM.exe /Online /Cleanup-Image /ScanHealth

ขั้นตอนการสแกนและซ่อมแซม Component Store อาจใช้เวลานาน (30 นาทีขึ้นไป) DISM จะดาวน์โหลดและแทนที่ไฟล์ของส่วนประกอบที่เสียหายหรือสูญหายโดยอัตโนมัติด้วยไฟล์เวอร์ชันดั้งเดิมจากเซิร์ฟเวอร์ Windows Update

หากการซ่อมแซมสำเร็จ ข้อความต่อไปนี้จะปรากฏขึ้น:

The restore operation completed successfully.

การใช้ DISM เพื่อตรวจสอบและซ่อมแซม Windows Image

DISM /RestoreHealth: ไม่พบไฟล์ต้นทาง

หากคอมพิวเตอร์ (เซิร์ฟเวอร์) ของคุณไม่มีการเข้าถึงอินเทอร์เน็ตโดยตรง (อยู่หลังพร็อกซี หรือใช้ WSUS ภายในเพื่อรับความปลอดภัยและสร้างการอัปเดต) หรือบริการ Windows Update ถูกปิดใช้งาน/เสียหาย (วิธีซ่อมแซมไคลเอ็นต์ Windows Update) แสดงว่ามีข้อผิดพลาดดังต่อไปนี้ ปรากฏขึ้นเมื่อทำการซ่อม Component Store:

  • 0x800f0906 – ไม่สามารถดาวน์โหลดไฟล์ต้นทางได้ ใช้ตัวเลือกต้นทางเพื่อระบุตำแหน่งของไฟล์ที่จำเป็นสำหรับการคืนค่าคุณลักษณะนี้
  • 0x800f0950 - DISM ล้มเหลว ไม่มีการดำเนินการ
  • 0x800F081F - ไม่พบไฟล์ต้นฉบับ ใช้ตัวเลือก "แหล่งที่มา" เพื่อระบุตำแหน่งของไฟล์ที่จำเป็นสำหรับการกู้คืนคุณลักษณะ

การใช้ DISM เพื่อตรวจสอบและซ่อมแซม Windows Image

ในกรณีเหล่านี้ คุณสามารถใช้วิธีอื่นเพื่อรับไฟล์ Component Store ต้นทางได้ อาจเป็น:

  • ดิสก์การติดตั้ง/แฟลชไดรฟ์ USB/อิมเมจ ISO
  • ไฟล์ wim/esd ที่ติดตั้งแล้ว
  • โฟลเดอร์ \sources\SxS จากดิสก์การติดตั้ง
  • ไฟล์ install.wim (esd) ที่มีอิมเมจการติดตั้ง Windows

คุณสามารถระบุไฟล์ WIM หรือ ESD ด้วยอิมเมจการติดตั้ง Windows ดั้งเดิมเพื่อใช้เป็นแหล่งในการซ่อมแซมไฟล์ระบบ สมมติว่า คุณได้ติดตั้งการติดตั้ง Windows 11 ISO กับไดรฟ์เสมือน D: .

หมายเหตุ . ในการซ่อมแซมไฟล์ที่เสียหายใน Component Store จากต้นทางในระบบ บิลด์และรุ่นของ Windows ในอิมเมจ WIM/ESD จะต้องตรงกับระบบของคุณ

ตรวจสอบรุ่นของ Windows ที่ติดตั้งบนคอมพิวเตอร์ของคุณโดยใช้คำสั่ง PowerShell ต่อไปนี้:

Get-ComputerInfo |select WindowsProductName,WindowsEditionId,WindowsVersion, OSDisplayVersion

การใช้ DISM เพื่อตรวจสอบและซ่อมแซม Windows Image

แสดงรายการรุ่น Windows ที่มีอยู่ในอิมเมจการติดตั้ง:

Get-WindowsImage -ImagePath "D:\sources\install.wim"

ในกรณีของเรา อิมเมจ Windows 11 Pro ในไฟล์ install.wim มี ImageIndex = 6 .

การใช้ DISM เพื่อตรวจสอบและซ่อมแซม Windows Image

ในการซ่อมแซม Component Store จากไฟล์ WIM/ESD ในเครื่องโดยใช้ไฟล์ต้นฉบับในเครื่อง (โดยไม่ใช้บริการออนไลน์ของ Windows Update) ให้เรียกใช้คำสั่งต่อไปนี้ (อย่าลืมระบุดัชนีเวอร์ชัน Windows ในไฟล์รูปภาพ):

DISM /online /cleanup-image /restorehealth /source:WIM:D:\sources\install.wim:6 /limitaccess
หรือ:
DISM /online /cleanup-image /restorehealth /source:ESD:D:\sources\install.esd:6 /limitaccess

การใช้ DISM เพื่อตรวจสอบและซ่อมแซม Windows Image

ข้อผิดพลาดต่อไปนี้สามารถปรากฏขึ้นได้เมื่อรันคำสั่ง DISM /RestoreHealth:

  • ข้อผิดพลาด:50:DISM ไม่สนับสนุนการให้บริการ Windows PE ด้วยตัวเลือก /Online – นี่หมายความว่า DISM ของคุณคิดว่าคุณกำลังใช้อิมเมจ WinPE ในการแก้ไขปัญหานี้ ให้ลบรีจิสตรีคีย์ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MiniNT;
  • ข้อผิดพลาด DISM 87: ตรวจสอบให้แน่ใจว่าคำสั่ง DISM เขียนอย่างถูกต้อง ตรวจสอบให้แน่ใจว่าคุณใช้เวอร์ชัน DISM สำหรับเวอร์ชัน Windows ของคุณ (โดยปกติเมื่อบูตใน WinPE/ WinRE)

คุณสามารถค้นหาบันทึก DISM ของการสแกนและซ่อมแซมไฟล์ระบบได้ที่นี่:C:\Windows\Logs\CBS.log .

หลังจากที่ซ่อมแซมที่เก็บส่วนประกอบแล้ว คุณสามารถเรียกใช้เครื่องมือตรวจสอบไฟล์ระบบ (sfc /scannow ). มีแนวโน้มว่าจะสามารถกู้คืนไฟล์ระบบที่เสียหายหรือหายไปได้ (Windows Resource Protection พบไฟล์ที่เสียหายและซ่อมแซมได้สำเร็จ )

การใช้ DISM เพื่อตรวจสอบและซ่อมแซม Windows Image

หาก SFC.exe ตรวจไม่พบความเสียหายใดๆ กับไฟล์ระบบ จะมีข้อความปรากฏขึ้น

Windows Resource Protection did not find any integrity violations.

ซ่อมแซม-WindowsImage:การซ่อมแซม Windows Image Component Store ด้วย PowerShell

เวอร์ชันของ PowerShell ใน Windows 10/11 และ Windows Server 2016/2019/2022 มี cmdlet ที่คล้ายกับคำสั่ง DISM ที่กล่าวถึงข้างต้น หากต้องการสแกนที่เก็บคอมโพเนนต์ของ Windows และค้นหาความเสียหาย ให้เรียกใช้คำสั่งนี้:

Repair-WindowsImage -Online –ScanHealth

การใช้ DISM เพื่อตรวจสอบและซ่อมแซม Windows Image

หากไม่พบข้อผิดพลาดใน Component Store ข้อความต่อไปนี้จะปรากฏขึ้น:

ImageHealth State: Healthy

หากต้องการซ่อมแซมไฟล์ Windows Component Store ให้เรียกใช้:

Repair-WindowsImage -Online -RestoreHealth

หากคุณไม่มีการเชื่อมต่ออินเทอร์เน็ตโดยตรง คำสั่งนี้อาจค้างระหว่างกระบวนการซ่อมแซมรูปภาพ คุณสามารถกู้คืนส่วนประกอบของระบบได้จากไฟล์อิมเมจ Windows ในเครื่อง (install.wim/install.esd) ที่คัดลอกมาจากอิมเมจ ISO สำหรับการติดตั้ง Windows 10 ที่นี่คุณต้องระบุดัชนีเวอร์ชัน Windows ในไฟล์ wim เป็นแหล่งการกู้คืนด้วย:

Repair-WindowsImage -Online -RestoreHealth -Source F:\sources\install.wim:5 -LimitAccess

ใช้ DISM ออฟไลน์เพื่อซ่อมแซมอิมเมจของ Windows

หาก Windows บูตไม่ถูกต้อง คุณสามารถใช้ DISM เพื่อตรวจสอบและซ่อมแซมไฟล์ระบบของอิมเมจ Windows แบบออฟไลน์ได้

หาก Windows ไม่สามารถบู๊ตได้หลังจากติดตั้งโปรแกรมปรับปรุง ให้ลองถอนการติดตั้งโปรแกรมปรับปรุงล่าสุดก่อนตามคำแนะนำ
  1. บูตอุปกรณ์จากอิมเมจการติดตั้ง Windows (คุณสามารถใช้ Media Creation Tool เพื่อสร้าง Windows USB stick ที่สามารถบู๊ตได้) และกด Shift + F10 บนหน้าจอการติดตั้ง Windows เริ่มต้น
  2. ในการตรวจสอบอักษรระบุไดรฟ์ที่กำหนดใน WinPE ให้เรียกใช้คำสั่ง diskpart -> list vol (ในตัวอย่างของฉัน อักษรระบุไดรฟ์ C:\ ถูกกำหนดให้กับดิสก์ซึ่งติดตั้ง Windows และฉันจะใช้ในคำสั่งถัดไป) การใช้ DISM เพื่อตรวจสอบและซ่อมแซม Windows Image
  3. ตรวจสอบไฟล์ระบบและซ่อมแซมไฟล์ที่เสียหายด้วยคำสั่ง:sfc /scannow /offbootdir=C:\ /offwindir=C:\Windows
    การใช้ DISM เพื่อตรวจสอบและซ่อมแซม Windows Image
  4. ในการซ่อมแซมอิมเมจ Windows ออฟไลน์ ให้ใช้คำสั่งต่อไปนี้ (ฉันกำลังใช้ไฟล์ WIM ที่มีอิมเมจการติดตั้ง Windows 10 ซึ่งคอมพิวเตอร์ถูกบูทเป็นซอร์สเพื่อกู้คืนอิมเมจ Windows ออฟไลน์ของฉัน):
    Dism /image:C:\ /Cleanup-Image /RestoreHealth /Source:D:\sources\install.wim
    การใช้ DISM เพื่อตรวจสอบและซ่อมแซม Windows Image
  5. หากมีเนื้อที่ว่างไม่เพียงพอบนดิสก์เป้าหมาย คุณจะต้องมีไดรฟ์แยกต่างหาก e. g., F:\ ซึ่งคุณจะสร้างโฟลเดอร์ว่าง mkdir F:\scratch . ทำการซ่อมแซมที่เก็บส่วนประกอบโดยใช้ scratch dir ด้วยคำสั่ง:Dism /image:C:\ /Cleanup-Image /RestoreHealth /Source:D:\sources\install.wim /ScratchDir:F:\scratch
เคล็ดลับ ต่อไปนี้คือพารามิเตอร์ DISM ที่มีประโยชน์ซึ่งผู้ดูแลระบบต้องทราบ:

  • DISM /Add-Package – ติดตั้งไฟล์อัปเดต MSU/CAB รวมการอัปเดตความปลอดภัยลงในอิมเมจ Windows ของคุณ
  • DISM /Get-Drivers – รับรายการไดรเวอร์ที่ติดตั้ง
  • DISM /Add-Driver – ฉีดไดรเวอร์ไปยังอิมเมจการติดตั้ง Windows;
  • DISM /Add-Capability – การติดตั้งฟีเจอร์ Windows เพิ่มเติมผ่านฟีเจอร์แบบออนดีมานด์ (FoD) ตัวอย่างเช่น RSAT, เซิร์ฟเวอร์ OpenSSH หรือไคลเอนต์ Windows SSH);
  • DISM /Enable-Features และ /Disable-Features – การเปิดใช้งานและปิดใช้งานคอมโพเนนต์ของ Windows (เช่น โปรโตคอล SMBv1)
  • Dism.exe /StartComponentCleanup – ล้าง Component Store และลบส่วนประกอบเวอร์ชันเก่า (จากโฟลเดอร์ WinSxS)
  • Dism /set-edition – อัปเกรดจากการประเมินเป็น Windows เวอร์ชันเต็มโดยไม่ต้องติดตั้งใหม่