การใช้เครื่องเสมือน (virtual machines) เพิ่มขึ้นอย่างมากในช่วงเวลาล่าสุด ซึ่งเป็นเรื่องปกติเมื่อพิจารณาประโยชน์ของมัน Hyper-V เป็นซอฟต์แวร์เสมือนไฮเปอร์ไวเซอร์ (virtualization) แบบเนทีฟของ Windows ที่ให้คุณสร้างเครื่องเสมือนบนระบบ Windows ของคุณ แม้จะไม่ให้ฟีเจอร์มากเท่า VMware หรือ VirtualBox แต่ก็ยังถูกใช้งานค่อนข้างมาก เหมือนซอฟต์แวร์อื่นๆ มันก็มีปัญหาของตัวเอง ปัญหาหนึ่งที่ผู้ใช้หลายคนเผชิญคือเมื่อเครื่องเสมือนค้างที่สถานะ "Stopping" (กำลังหยุด)

เมื่อสิ่งนี้เกิดขึ้น เครื่องเสมือนจะปฏิเสธที่จะหยุด และดังนั้นจึงไม่สามารถเริ่มต้นได้ ซึ่งไม่ใช่สิ่งที่คุณต้องการ สิ่งนี้อาจเกิดจากหลายสาเหตุที่เราจะกล่าวถึงด้านล่าง อย่างไรก็ตาม ก่อนเริ่มต้น สิ่งสำคัญคือบางครั้งปัญหาเกิดจากเครื่องโฮสต์ (host machine) Windows ที่ล้าสมัย ดังนั้น ก่อนเริ่มอ่านบทความนี้ ตรวจสอบให้แน่ใจว่าคุณติดตั้งอัปเดต Windows ทั้งหมดที่มีอยู่แล้ว ด้วย ذلك เรามาเริ่มกันเลย
- ความล้มเหลวของที่เก็บข้อมูล (Storage Failure) — ในบางกรณี ปัญหาอาจเกิดจากความล้มเหลวของที่เก็บข้อมูล เกิดขึ้นเมื่อดิสก์ถูกรายงานว่าหายไป (missing) ในกรณีนี้ คุณจะต้องปิดเครื่องโฮสต์ (host) และดิสก์อื่นๆ ด้วย เมื่อบูทใหม่ ควรจะจดจำดิสก์ได้ และหากมีปัญหาใดๆ (ถ้าคุณมีระบบ RAID) จะเริ่มซ่อมแซมอัตโนมัติ
- การกำหนดค่า RRAS ผิดพลาด (RRAS Misconfiguration) — สาเหตุอีกอย่างคือการกำหนดค่าผิดพลาดของ Routing and Remote Access Service (RRAS) สิ่งนี้อาจเกิดเมื่ออินเทอร์เฟซในสภาพแวดล้อมของคุณทำให้การกำหนดค่า RRAS ผิดปกติ ในสถานการณ์นี้ คุณจะต้องปิดใช้งานบริการนี้เพื่อแก้ไขปัญหา
- ตัวเลือกพลังงานของ Windows (Windows Power Options) — ตัวเลือกพลังงานของเครื่องโฮสต์ Windows ของคุณก็อาจก่อให้เกิดปัญหานี้ ได้พบว่าหากคุณตั้งค่าให้ปิดหน้าจอ (turn off the display) หลังจากเวลาที่กำหนด อาจทำให้ VM ค้าง ในกรณีนี้ คุณจะต้องตั้งค่าให้ ไม่ปิดหน้าจอเลย (Never)
ตอนนี้เรารู้สาเหตุที่เป็นไปได้แล้ว มาเริ่มกับวิธีต่างๆ ที่คุณสามารถทำเพื่อให้เครื่องเสมือนของคุณกลับมาทำงานได้อีกครั้ง
วิธีที่ 1: Kill เครื่องเสมือน (Kill the Virtual Machine)
การ "Kill" ที่นี่ไม่ได้หมายถึงการกำจัดเครื่องเสมือนโดยสิ้นเชิง แต่หมายถึงการจบกระบวนการ (process) ของเครื่องเสมือนที่ค้าง เพื่อให้คุณสามารถเริ่มต้นมันได้ปกติอีกครั้ง กระบวนการนี้ค่อนข้างง่ายหากคุณมีเครื่องเสมือนเพียงตัวเดียวที่ทำงานบนเครื่องโฮสต์ หากเป็นเช่นนั้น คุณสามารถข้ามขั้นตอนบางส่วนที่เราจะระบุด้านล่างซึ่งช่วยในการหา GUID ของเครื่องเสมือนที่มีปัญหา
ในกรณีที่คุณมีหลายเครื่องเสมือน คุณไม่สามารถแค่ Kill กระบวนการ Virtual Machine Worker Process หรือ vmwp.exe ได้โดยไม่รู้ GUID ของเครื่องเสมือนที่ค้าง เพราะกระบวนการนี้จะปรากฏหลายครั้งใน Task Manager เมื่อคุณมี GUID แล้ว คุณสามารถหากระบวนการที่ตรงกับ ID นั้นและ Kill มันได้โดยไม่กังวล
ทำตามคำแนะนำด้านล่าง:
- ก่อนอื่น เพื่อหา GUID ของเครื่องเสมือนของคุณ ให้เปิด PowerShell หากคุณมีเครื่องเสมือนเพียงตัวเดียว คุณสามารถข้ามขั้นตอนนี้และ Kill กระบวนการได้เลย ทương tự หากคุณรู้ GUID ของเครื่องแล้ว ก็ข้ามขั้นตอนนี้ได้เช่นกัน
- เมื่อเปิด PowerShell แล้ว พิมพ์คำสั่งต่อไปนี้ โดย VMname คือชื่อของเครื่องเสมือนที่มีปัญหา:
Get-VM "VMname" | fl *
- บันทึก VMId ไว้ คุณจะต้องใช้ขณะหากระบวนการที่ถูกต้องเพื่อจบการทำงาน

- เปิด Task Manager โดยคลิกขวาที่แถบงาน (taskbar) เลือก Task Manager จากเมนูที่ปรากฏ
- เมื่อ Task Manager เปิดแล้ว สลับไปที่แท็บ Details
- ค้นหากระบวนการ vmpw.exe โดยกดปุ่ม V คุณจะพบหลายกระบวนการหากมีหลาย VMs ทำงานอยู่

- ใช้ ID ที่คุณหาได้ก่อนหน้านี้ เพื่อหากระบวนการที่ถูกต้อง
- สุดท้าย ไฮไลท์กระบวนการที่ User name สัมพันธ์กับ ID แล้วกดปุ่ม End Task
วิธีที่ 2: เปลี่ยนตัวเลือกพลังงาน (Change Power Options)
ได้พบว่าตัวเลือกพลังงานของเครื่องโฮสต์ Windows ของคุณก็อาจส่งผลต่อสถานะของเครื่องเสมือน Hyper-V ผู้ใช้ที่เผชิญปัญหาเดียวกันรายงานว่าการเปลี่ยนการตั้งค่าหน้าจอให้ไม่ปิดเลย (Never) แก้ไขปัญหาได้ ดังนั้นจึงคุ้มค่าที่จะลอง วิธีทำดังนี้:
- เปิดเมนู Start โดยกดปุ่ม Windows key แล้วค้นหา Power Plan
- กด Enter บนผลลัพธ์ที่แสดง
- จากนั้น เปลี่ยนตัวเลือก Turn off the display เป็น Never จากเมนูแบบเลื่อนลง

- สุดท้าย คลิกปุ่ม Save changes
วิธีที่ 3: ปิดใช้งาน RRAS (Disable RRAS)
บริการการเข้าถึงระยะไกลที่กำหนดค่าผิดพลาดก็อาจทำให้เกิดปัญหานี้ ตามที่กล่าวไว้ อินเทอร์เฟซเครือข่ายของคุณอาจทำให้บริการ RRAS ผิดปกติ ซึ่งทำให้เครื่องเสมือนค้าง ดังนั้น วิธีแก้ไขที่ง่ายคือปิดใช้งานบริการ Routing and Remote Access วิธีทำดังนี้:
- เปิดกล่องโต้ตอบ Run โดยกด Windows key + R
- ในกล่อง Run พิมพ์ services.msc แล้วกด Enter
- ในหน้าต่าง Services ค้นหา Routing and Remote Access Service กดปุ่ม R หนึ่งครั้งเพื่อกระโดดไปที่บริการที่ขึ้นต้นด้วย R
- เมื่อพบแล้ว คลิกสองครั้งที่บริการเพื่อเปิดหน้าต่าง Properties

- หากบริการกำลังทำงาน ให้หยุดมันโดยคลิกปุ่ม Stop
- หลังจากบริการหยุดแล้ว เลือก Disabled จากเมนูแบบเลื่อนลง Startup type
- รีบูทระบบ
วิธีที่ 4: รีบูทเครื่องโฮสต์ (Reboot the Host Machine)
ในกรณีส่วนใหญ่ ปัญหาแบบนี้สามารถแก้ไขได้ง่ายๆ โดยแค่รีบูทเครื่องโฮสต์ (reboot the host machine) หลังจากที่คุณรีบูทเครื่องโฮสต์แล้ว VM จะเคลียร์สถานะและเริ่มต้นปกติ นอกจากนี้ ตรวจสอบให้แน่ใจว่าระบบของคุณเป็นเวอร์ชันล่าสุด เพราะปัญหาอาจเกิดจากบั๊กของ Windows ซึ่งมักได้รับการแก้ไขในอัปเดตต่อไป