คุณสามารถใช้ 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)
%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 (ดูภาพด้านล่าง)
ในกรณีนี้ คุณสามารถลองซ่อมแซม Component Store ของอิมเมจ Windows ของคุณโดยใช้ DISM.exe
คำสั่ง
หลังจากซ่อมแซมอิมเมจ 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 ของคุณถูกตั้งค่าสถานะว่าเสียหายหรือไม่ และสามารถแก้ไขได้หรือไม่ ไม่มีการเปลี่ยนแปลงใดๆ กับรูปภาพ
ในตัวอย่างนี้ คำสั่งได้ส่งคืนว่าอิมเมจ 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 /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,
DISM.exe /Online /Cleanup-Image /ScanHealth
ขั้นตอนการสแกนและซ่อมแซม Component Store อาจใช้เวลานาน (30 นาทีขึ้นไป) DISM จะดาวน์โหลดและแทนที่ไฟล์ของส่วนประกอบที่เสียหายหรือสูญหายโดยอัตโนมัติด้วยไฟล์เวอร์ชันดั้งเดิมจากเซิร์ฟเวอร์ Windows Update
หากการซ่อมแซมสำเร็จ ข้อความต่อไปนี้จะปรากฏขึ้น:
The restore operation completed successfully.
DISM /RestoreHealth: ไม่พบไฟล์ต้นทาง
หากคอมพิวเตอร์ (เซิร์ฟเวอร์) ของคุณไม่มีการเข้าถึงอินเทอร์เน็ตโดยตรง (อยู่หลังพร็อกซี หรือใช้ WSUS ภายในเพื่อรับความปลอดภัยและสร้างการอัปเดต) หรือบริการ Windows Update ถูกปิดใช้งาน/เสียหาย (วิธีซ่อมแซมไคลเอ็นต์ Windows Update) แสดงว่ามีข้อผิดพลาดดังต่อไปนี้ ปรากฏขึ้นเมื่อทำการซ่อม Component Store:
- 0x800f0906 – ไม่สามารถดาวน์โหลดไฟล์ต้นทางได้ ใช้ตัวเลือกต้นทางเพื่อระบุตำแหน่งของไฟล์ที่จำเป็นสำหรับการคืนค่าคุณลักษณะนี้
- 0x800f0950 - DISM ล้มเหลว ไม่มีการดำเนินการ
- 0x800F081F - ไม่พบไฟล์ต้นฉบับ ใช้ตัวเลือก "แหล่งที่มา" เพื่อระบุตำแหน่งของไฟล์ที่จำเป็นสำหรับการกู้คืนคุณลักษณะ
ในกรณีเหล่านี้ คุณสามารถใช้วิธีอื่นเพื่อรับไฟล์ 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
แสดงรายการรุ่น Windows ที่มีอยู่ในอิมเมจการติดตั้ง:
Get-WindowsImage -ImagePath "D:\sources\install.wim"
ในกรณีของเรา อิมเมจ Windows 11 Pro ในไฟล์ install.wim มี ImageIndex = 6
.
ในการซ่อมแซม 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 /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 พบไฟล์ที่เสียหายและซ่อมแซมได้สำเร็จ )
หาก 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
หากไม่พบข้อผิดพลาดใน 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 ไม่สามารถบู๊ตได้หลังจากติดตั้งโปรแกรมปรับปรุง ให้ลองถอนการติดตั้งโปรแกรมปรับปรุงล่าสุดก่อนตามคำแนะนำ- บูตอุปกรณ์จากอิมเมจการติดตั้ง Windows (คุณสามารถใช้ Media Creation Tool เพื่อสร้าง Windows USB stick ที่สามารถบู๊ตได้) และกด
Shift + F10
บนหน้าจอการติดตั้ง Windows เริ่มต้น - ในการตรวจสอบอักษรระบุไดรฟ์ที่กำหนดใน WinPE ให้เรียกใช้คำสั่ง
diskpart
->list vol
(ในตัวอย่างของฉัน อักษรระบุไดรฟ์ C:\ ถูกกำหนดให้กับดิสก์ซึ่งติดตั้ง Windows และฉันจะใช้ในคำสั่งถัดไป) - ตรวจสอบไฟล์ระบบและซ่อมแซมไฟล์ที่เสียหายด้วยคำสั่ง:
sfc /scannow /offbootdir=C:\ /offwindir=C:\Windows
- ในการซ่อมแซมอิมเมจ Windows ออฟไลน์ ให้ใช้คำสั่งต่อไปนี้ (ฉันกำลังใช้ไฟล์ WIM ที่มีอิมเมจการติดตั้ง Windows 10 ซึ่งคอมพิวเตอร์ถูกบูทเป็นซอร์สเพื่อกู้คืนอิมเมจ Windows ออฟไลน์ของฉัน):
Dism /image:C:\ /Cleanup-Image /RestoreHealth /Source:D:\sources\install.wim
- หากมีเนื้อที่ว่างไม่เพียงพอบนดิสก์เป้าหมาย คุณจะต้องมีไดรฟ์แยกต่างหาก e. g., F:\ ซึ่งคุณจะสร้างโฟลเดอร์ว่าง
mkdir F:\scratch
. ทำการซ่อมแซมที่เก็บส่วนประกอบโดยใช้ scratch dir ด้วยคำสั่ง:Dism /image:C:\ /Cleanup-Image /RestoreHealth /Source:D:\sources\install.wim /ScratchDir:F:\scratch
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 เวอร์ชันเต็มโดยไม่ต้องติดตั้งใหม่