Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การแก้ไขปัญหา >> ข้อผิดพลาด Windows

ซ่อมแซม Windows 10/11 ด้วย DISM.exe /online /cleanup-image /scanhealth: คู่มือขั้นตอน

หาก Windows 10/11 ทำงานไม่ถูกต้อง อาจเป็นเพราะไฟล์หายหรือเสียหาย คู่มือนี้จะพาคุณซ่อมแซมการติดตั้งด้วย Deployment Image Servicing and Management (DISM) และ System File Checker (SFC) Command-line Tools

Deployment Image Servicing and Management เป็น Command-line Tool ให้ Administrator เตรียม ปรับเปลี่ยน และซ่อมแซม System Images เช่น Windows Recovery Environment, Windows Setup, และ Windows PE (WinPE) ผู้ที่มี Local Recovery Image ก็สามารถใช้ Tool นี้แก้ปัญหาระบบทั่วไปได้

นอกจากนี้ เมื่อต้อง Troubleshoot Error เฉพาะ กำหนดเหตุผลที่อุปกรณ์บูทไม่ถูกต้อง หรือแก้ปัญหาประสิทธิภาพ สามารถใช้ System File Checker Command-line Tool สแกนและแทนที่ไฟล์ระบบที่หายหรือเสียหายโดยใช้ Recovery Image

เคล็ดลับ: ใช้เครื่องมือเพิ่มประสิทธิภาพ PC เฉพาะทาง เพื่อกำจัดการตั้งค่าผิดพลาด ไฟล์ขยะ แอปมี害 และภัยคุกคามด้านความปลอดภัย ที่อาจก่อให้เกิดปัญหาระบบหรือทำให้เครื่องช้า

สแกนฟรีสำหรับปัญหา PC | 3,145,873 ครั้งดาวน์โหลด | รองรับ: Windows 10/11, Windows 7, Windows 8

แม้คำสั่งในคู่มือนี้จะ Non-destructive แต่ยังแนะนำให้สร้าง Full Backup ข้อมูลก่อนดำเนินการ เพราะจะทำการเปลี่ยนแปลงระบบ ควรรัน PC Repair Tool เช่น Outbyte PC Repair ลองแก้ Error ที่เจอก่อน

DISM คืออะไร?

Deployment Image Servicing and Management Tool (DISM) เป็น Windows Administrator-level Command-line Executable ใช้ซ่อม Windows Image หรือปรับเปลี่ยน Windows Installation Media สามารถ Mount Windows Images ในรูปแบบ .wim, .vhd, หรือ .vhdx และ Troubleshoot ปัญหาของ Windows OS ที่ติดตั้งอยู่

ปรากฏครั้งแรกใน Windows 7 และ Windows Server 2008 R2 มาจากการเปลี่ยนแปลงความคิดของ Microsoft เกี่ยวกับการ Deprecate ImageX จัดการการเติบโตของ WIM และ Virtual Images และรวม Features เพิ่มเติมที่มีประโยชน์ต่อ Admin และ End Users

DISM ใช้กับ Windows Image Files เก่าได้ แต่ไม่รองรับ Images ที่ใหม่กว่าเวอร์ชัน DISM ที่ติดตั้ง

DISM สามารถ Service Windows Images ตั้งแต่ Windows 7, Windows Server 2008 R2 และ WinPE/WinRE Versions ที่ไปกับพวกเขา คำสั่งและตัวเลือกสำหรับ Service Image แตกต่างกันไป ขึ้นกับ Windows OS ที่ Service และว่า Image เป็น Offline หรือ Running OS

DISM อยู่ที่ c:\windows\system32 ในทุก Windows 10/11 แต่รันได้จากที่ไหนก็ได้ใน Command Prompt DISM ต้องเปิดจาก Elevated Command Prompt

เมื่อไหร่ควรใช้ DISM

เมื่อคอมพิวเตอร์มีปัญหา Startup, Performance หรือเจอ Unexpected Errors เครื่องมือแรกควรเป็น System File Checker (sfc /scannow) ซึ่งตรวจจับและแทนที่ไฟล์เสียหายหรือหายไปบน Local Image

แต่บางครั้งปัญลาอยู่ลึกใน Image และ SFC ซ่อมไม่ได้ ในกรณีนี้ ตัวเลือกถัดไปคือใช้ DISM พยายามซ่อมปัญหารากฐาน

ตาม Microsoft มีสถานการณ์น้อยๆ ที่ DISM เหมาะสมที่สุด:

  • จัดการข้อมูลใน Windows Image: นับสต็อก Components, Updates, Drivers, Applications, Capture หรือ Split Image, Append/Delete Images ใน .wim, Mount Image
  • Service Image เอง: Add/Remove Driver Packages และ Drivers, เปลี่ยน Language Settings, Enable/Disable Windows Features, Upgrade เป็น Edition สูงกว่า

โดยสรุป คือ การรวบรวมข้อมูล อัปเกรด และซ่อมแซม

DISM ตั้งอยู่ที่ c:\windows\system32 ใน Windows 10/11 ทุกตัว แต่รันได้จากที่ไหนก็ได้ใน Command Prompt ต้องเปิดจาก Elevated Command Prompt

DISM บน Windows 10/11

DISM ใน Windows 10/11 รองรับ Features ใหม่:

  • Full Flash Update (.FFU): รองรับ Format .FFU ที่จับข้อมูล Drive ทั้งหมด รวม Partition Info ช่วยให้ Deployment เร็วและง่ายขึ้น
  • Capabilities: Package Type ใหม่ ขอ Services เช่น .NET หรือ Languages โดยไม่ต้องระบุ Version ใช้ DISM ค้นหาและติดตั้งเวอร์ชันล่าสุดจากหลายแหล่ง เช่น Windows Update หรือ Corporate Servers
  • Compression: บีบอัด OS และ Provisioning Packages รัน OS และ System Files อื่นๆ จากไฟล์บีบอัด เพื่อประหยัดพื้นที่ Windows Image แทนที่ WIMBoot ของ Windows 8.1

วิธีรัน DISM ใน Windows 10/11

เช่นที่กล่าว ไม่ต้องไปที่ C:\Windows\System32 หา DISM.exe เอง ใช้ Command Prompt หรือ Windows PowerShell รันคำสั่ง DISM

เพื่อได้สิทธิ์เพียงพอ ควรรัน Command Prompt หรือ Windows PowerShell As Administrator:

  1. กด Win + S เปิด Windows Search
  2. ในกล่องข้อความ พิมพ์ cmd หรือ powershell
  3. คลิกขวาผลลัพธ์ที่เกี่ยวข้องมากที่สุด เลือก Run as administrator
  4. พิมพ์คำสั่ง DISM ที่ต้องการ รอผลลัพธ์

DISM /Online /Cleanup-Image /ScanHealth Command คืออะไร?

เพื่อตรวจสอบ Corruption ให้รัน DISM /Online /Cleanup-Image /ScanHealth บน Image คำสั่งนี้ช่วยผู้ใช้สแกนและค้นหาปัญหาใน OS ของตน

ScanHealth เพียงทำ Initial Scan และรายงานผลลัพธ์ – ไม่ทำการซ่อมแซม

ขั้นตอนรัน Advanced Scan ด้วย DISM:

  1. เปิด Start
  2. ค้นหา Command Prompt คลิกขวาผลลัพธ์บนสุด เลือก Run as administrator
  3. พิมพ์คำสั่งแล้วกด Enter: DISM /Online /Cleanup-Image /ScanHealth

กระบวนการนี้ใช้เวลานานกว่า CheckHealth แต่มีโอกาสตรวจพบปัญหามากกว่า

ScanHealth vs CheckHealth: แตกต่างอย่างไร?

DISM มี Parameter /cleanup-image สำหรับสแกน เช็ค และกู้คืนสุขภาพของ Windows Target Image เฉพาะ สามารถทดสอบได้ด้วยการรันคำสั่งต่อไปนี้บน Windows 10/11 Image ที่ใช้อยู่

ดู 2 คำสั่งที่เช็คสุขภาพ Image ต่างกัน ต้องเปิด Administrative Command Prompt หรือ PowerShell Session เพื่อใช้ใดๆ ก็ได้

คำสั่ง:

  • dism /online /cleanup-image /checkhealth
  • dism /online /cleanup-image /scanhealth

เข้าใจความแตกต่างได้จาก Reference Material คำสั่ง CheckHealth แค่ตรวจสอบ Logs ที่มีอยู่ เพื่อดูว่า Windows Processes ใดรายงาน Error ตอนพยายามรัน Items จาก Windows Component Store คำสั่งนี้แค่หา Errors ที่มีอยู่แล้ว และ Scan เสร็จเร็วมาก

ScanHealth ตรวจสอบทุก Item ใน Component Store คำนวณ Hash Value ของไฟล์ปัจจุบัน เปรียบเทียบกับ Hash Value ที่คำนวณไว้ก่อนหน้าสำหรับ Known Healthy Version ของไฟล์นั้น Microsoft คำนวณเป็นประจำส่วนหนึ่งของ Release และ Integrity Management Processes ขณะ Scan Health ยังเขียน Log File ด้วย

นั่นคือเหตุผลที่ ScanHealth ใช้เวลานาน: มันทำงานมากจริงๆ หากดู Performance Monitor หรือ Tools อื่นๆ ที่รายงาน CPU/Storage Real-time จะเห็นความแตกต่างของ Activity ที่ต้องใช้ระหว่าง CheckHealth และ ScanHealth

ถ้าใช้ CheckHealth จะแจ้งถ้าพบ Errors และบอกว่า Windows Image Healthy, Repairable, หรือ Unrepairable หาก Healthy ไม่ต้อง ScanHealth เสร็จในไม่กี่วินาที หาก Repairable การรัน ScanHealth จะบอกว่าต้องซ่อมอะไรบ้าง หากยินดีใช้เวลา Review CBS.log ที่ DISM เขียน Default ไว้ที่ %windir%/Logs/CBS

CBS ย่อมาจาก Component-Based Servicing ซึ่งเป็นสิ่งที่ DISM ทำเบื้องหลังกับ Component Store หาก Image รายงานว่า Unrepairable Microsoft แนะนำว่า "ควรทิ้ง Image และเริ่มใหม่" (คำสั้นสำหรับกระบวนการที่ใช้เวลานานและยาก) หาก Image ซ่อมได้ ใช้ Option RestoreHealth แก้ไข

อีกด้านหนึ่ง อาจมีบางอย่างผิดปกติกับ Windows Image ที่ยังไม่ทำให้ Error Log Entry เกิดขึ้นให้ CheckHealth พบ หาก Windows Installation ทำงานแปลกๆ และ CheckHealth ไม่พบอะไร อาจคุ้มค่าที่จะรัน ScanHealth เพื่อบังคับ Item-by-item Check ของ Component Store จะเก็บไว้เป็น Last Resort หาก CheckHealth ไม่พบอะไร และ Windows ยังคงมีปัญหา

Components ของ DISM /Online /Cleanup-Image /ScanHealth

เช่นที่กล่าว คำสั่งนี้รายงานปัญหาที่ระบุใน OS ปัจจุบัน

แต่ Switch แต่ละตัวในคำสั่งนี้ทำอะไร? เราจะอธิบายความหมายและรวมไว้ที่นี่

DISM.exe /Online vs /Image

ตอนรัน DISM.exe ต้องระบุ /Online หรือ /Image Switch

ใช้ /Online Switch DISM.exe ไม่คาดหวัง Path ไปยัง Offline Image แทนที่จะเป็น Tool จะ Target Running OS ปัจจุบัน

ใช้ /Image Switch Deployment Image Servicing and Management Tool จะคาดหวังว่า Path ไปยัง Root Directory ของ Offline Windows Image

DISM.exe /Cleanup-Image

/Online หรือ /Image Switch ต้องตามด้วย Image Servicing Commands อื่นๆ เพื่อให้ DISM.exe ทำงาน /Cleanup-Image Switch เป็นหนึ่งใน Command-line Options สำหรับ DISM.exe /Online Switch

ในคำสั่ง "DISM /online /cleanup-image /scanhealth" /Cleanup-Image Switch ทำอะไร? /Cleanup-Image Switch ทำความสะอาดและกู้คืน Running OS ปัจจุบัน

DISM.exe /ScanHealth

Component /ScanHealth สแกน Image หา Component Store Corruption Option นี้ไม่แก้ไข Corruption แค่เช็ค Component Store Corruption และเขียนลง Log File อาจใช้เวลา 5-10 นาที จะค้างที่ 20% สักพักก่อนจะดำเนินต่อ

DISM /Online /Cleanup-Image /ScanHealth Results

DISM ScanHealth Scan ใช้เวลานานแค่ไหน? คำสั่งเช็ค Windows Image ใช้เวลานาน (10-30 นาที) และให้ผลลัพธ์ 3 แบบ:

  • No component store corruption detected – DISM ไม่พบ Error ใน Component Store
  • The component store is repairable – DISM พบและแก้ไข Error ใน Component Store
  • The component store is not repairable – DISM ไม่สามารถซ่อม Windows Component Store ได้ (ลอง DISM เวอร์ชันใหม่กว่า หรือต้อง Restore Windows Image จาก Backup หรือ Reset/Reinstall Windows ทั้งหมด)

วิธีแก้ไข DISM ScanHealth Errors ที่พบบ่อย

ผู้ใช้เจอ Errors ต่างๆ ตอนรัน DISM ScanHealth Command ดูบางอย่าง:

DISM /online /cleanup-image /scanhealth ค้าง (Stuck)

มีรายงาน DISM Process ค้างที่ ScanHealth บ้างค้างหลายชั่วโมงโดยไม่มีความคืบหน้า

วิธีแรก เช็ค Update ติดตั้ง Updates ที่มี เพื่ออัปเดต OS Build อาจซ่อม System Files บางส่วนได้ Error นี้อาจมาจากปัญหา System Files ไฟล์ ISO ก็สามารถใช้ทำ Offline Repair ได้

DISM exe /online /cleanup-image /scanhealth Error 87

ตอนใช้ DISM /CheckHealth หรือ DISM /ScanHealth อาจเจอ "DISM error 87: the parameter is incorrect" จากการพิมพ์คำสั่งผิด กรณีนี้ ตรวจสอบก่อนว่าพิมพ์คำสั่งถูกต้องไหม

ถ้ายืนยันคำสั่งถูกต้องแล้ว ตรวจสอบความเป็นไปได้ต่อไป:

  • Windows Update มีปัญหา DISM ตรวจพบ Corrupted Images/Files จะใช้ Windows Update ดาวน์โหลดไฟล์ที่ต้องการ กระบวนการจะหยุดถ้า Windows Update ล้มเหลว
  • ใช้ DISM /AddPackage คัดลอกไฟล์ใหญ่กว่า 48GB จาก Partition หนึ่งไปอีก Partition
  • Required Service ไม่เริ่มต้น – เช่น ไม่สามารถเชื่อมต่อ Network ได้

แก้ไข Error นี้: พิมพ์คำสั่งถูกต้อง รวม Space ก่อน Slash จำได้ว่า Run cmd as Administrator การไม่ทำอย่างนี้เป็นสาเหตุ Error 87 หนึ่ง

ถ้า Error ยังคงอยู่ สามารถ Revert Windows Update กลับสู่สถานะที่ทำงานได้ก่อนหน้า และ Clean Up Component Store ตัวเลือกสุดท้ายคือ System Restore

หากรัน DISM /ScanHealth Switch บน Windows 7 และ Windows Server 2008 ต้องติดตั้ง KB2966583 Update ก่อน มิฉะนั้นจะได้ข้อความ: "Error 87. In this context, the ScanHealth option is not recognized."

หวังว่าคู่มือของเรามีประโยชน์ อย่าลังเลติดต่อเราหากมีคำถามหรือข้อเสนอแนะ