যদি Hyper-V-এ চলমান আপনার ভার্চুয়াল মেশিন কোনো কারণে আটকে যায়, রেসপন্স করা বন্ধ করে দেয় এবং Hyper-V কনসোলে সম্পর্কিত বাটনে ক্লিক করলে Start/Stop/Reset না হয়, তবে একমাত্র উপায় হলো হোস্ট OS-এ সেই VM-এর জন্য দায়ী প্রসেসটি বাধ্যতামূলকভাবে কিল করা। আমরা দেখাবো কিভাবে Windows Server 2016/2019-এ আটকে যাওয়া Hyper-V VM গুলো পুরো হোস্ট এবং সব রানিং VM রিবুট না করেই ফোর্স রিস্টার্ট করা যায় (যদি আপনার কাছে Hyper-V HA ক্লাস্টার এবং Live-Migration না থাকে)।
সুচিপত্র
- Hyper-V VM "Stopping/Starting" স্টেটে আটকে থাকলে
- Hyper-V Manager "Connecting to Virtual Machine Management Service"-এ আটকে থাকলে
- Task Manager-এ আটকে যাওয়া VM প্রসেস কিল করা
- PowerShell দিয়ে ফ্রোজেন Hyper-VM কিল করা
- Hyper-V: Failed to Change VM State এরর
Hyper-V VM "Stopping/Starting" স্টেটে আটকে থাকলে
মান लीজিয়ে, আপনার Hyper-V VM-গুলোয় একটা Stopping (Stopping-Critical) বা Starting (Starting x%) স্টেটে আটকে আছে।

গেস্ট OS রেসপন্স করছে না এবং Hyper-V Manager-এ "Turn Off", "Shut Down" এবং "Reset" বাটনগুলো বা অ্যাক্সেসিবল নেই, বা ক্লিক করলে নিচের এরর দেয়:
The application encountered an error while attempting to change the state of VM.
Failed to change state.
The operation cannot be performed while the object is in its current state.

Hyper-V Manager "Connecting to Virtual Machine Management Service"-এ আটকে থাকলে
যদি আপনার Hyper-V Hyper-V Manager কনসোলে ভার্চুয়াল মেশিনগুলো না দেখায় এবং "Connecting to Virtual Machine Management service" এরর দেয়, তবে আপনাকে vmms.exe (Hyper-V Virtual Machine Management service) প্রসেসটি রিস্টার্ট করতে হবে। এটি একটি নিরাপদ অপারেশন এবং রানিং VM-গুলোর ওপর কোনো প্রভাব ফেলে না। vmms.exe প্রসেসটি রিস্টার্ট করার সবচেয়ে সহজ উপায় হলো vmms সার্ভিস ব্যবহার করে services.msc কনসোল বা PowerShell সার্ভিস ম্যানেজমেন্ট cmdlet দিয়ে:
Get-Service vmms | Restart-Service

Task Manager-এ আটকে যাওয়া VM প্রসেস কিল করা
পুরো Hyper-V হোস্ট রিবুট না করেই এইরকম আটকে যাওয়া VM ফোর্স শাটডাউন/রিস্টার্ট করার একমাত্র উপায় হলো গেস্ট OS-এ এর রানিং ওয়ার্কফ্লো এন্ড করা। Hyper-V হোস্টের সব VM গুলো vmwp.exe প্রসেস (Virtual Machine Worker Process) দিয়ে চালানো হয়। প্রসেস খুঁজে বের করতে আপনাকে ভার্চুয়াল মেশিনের GUID জানতে হবে।
VM GUID পেতে Hyper-V Manager কনসোল ব্যবহার করতে পারেন। Hyper-V সার্ভার সেটিংস খুলুন। Server সেকশনে VM কনফিগারেশন ফাইলগুলোর লোকেশন দেখানো থাকে (আমাদের কেসে D:\VMStore)।

File Explorer-এ এই ডিরেক্টরি খুলুন এবং আপনার ভার্চুয়াল মেশিনের নামের মতো নামের ফোল্ডার খুঁজে বের করুন। *.vmcx এক্সটেনশন वाली VM কনফিগারেশন ফাইলের নামে নির্দিষ্ট GUID কপি করুন।

Task Manager চালু করুন এবং Details ট্যাবে যান। সব ভার্চুয়াল মেশিন নিজস্ব vmwp.exe ইনস্ট্যান্সে চলে। আপনার VM-এর জন্য কোন প্রসেস দায়ী তা বের করতে আপনার কাছে আটকে যাওয়া VM-এর GUID থাকতে হবে (যেটি আপনি আগে পেয়ে গেছেন)। User name কলামে আপনার VM-এর GUID থাকা vmwp.exe প্রসেসটি লোকেট করুন। এই প্রসেসটি কিল করুন (End Task).

ভার্চুয়াল মেশিনটি বাধ্যতামূলকভাবে বন্ধ হয়ে যাবে। এখন আপনি এর সাথে যা খুশি করতে পারেন।
PowerShell দিয়ে ফ্রোজেন Hyper-VM কিল করা
PowerShell CLI ব্যবহার করে আটকে যাওয়া ভার্চুয়াল মেশিনের প্রসেস খুঁজে বের করে কিল করা অনেক সহজ। অ্যাডমিনিস্ট্রেটর প্রিভিলেজ সহ PowerShell কনসোল চালু করুন (আপনার একাউন্ট অবশ্যই লোকাল "Hyper-V administrators" গ্রুপে যোগ করা থাকতে হবে)।
এই কেসে বিল্ট-ইন Stop-VM cmdlet আপনাকে VM শাটডাউন করতে দেবে না। আপনি যদি Stop-VM -Force কমান্ড চালান, তবে সেটিও ফ্রিজ হয়ে যাবে। očividne VM থেকে রেসপন্স অপেক্ষা করছে।
আপনাকে VM প্রসেসটি এর GUID দিয়ে কিল করতে হবে। VM-এর নাম দিয়ে VM GUID পেতে পারেন। উদাহরণস্বরূপ, SVM-GUARDEDHOST1 নামের VM-এর GUID পেতে নিচের কমান্ডটি চালান:
$VMGUID = (Get-VM "SVM-GUARDEDHOST1").ID
যদি আপনি VM-এর পুরো নাম টাইপ করতে না চান, তবে এই Hyper-V হোস্টে রেজিস্টার্ড সব VM লিস্ট করতে পারেন:
Get-VM | Select Name, Id

রেজাল্ট লিস্ট থেকে আপনার VM GUID কপি করুন।
এই VMGUID-এর জন্য vmwp.exe প্রসেস আইডেন্টিফায়ার (PID) খুঁজে বের করুন:
$VMWMProc = (Get-WmiObject Win32_Process | ? {$_.Name -match 'VMWP' -and $_.CommandLine -match $VMGUID})
তারপর Stop-Process কমান্ড ব্যবহার করে এই প্রসেসটি ফোর্সফুলি টার্মিনেট করুন:
Stop-Process ($VMWMProc.ProcessId) –Force

এটি আটকে যাওয়া Hyper-V ভার্চুয়াল মেশিনের ওয়ার্কিং প্রসেস ফোর্সফুলি টার্মিনেট করার সহজ পদ্ধতি।
টিপ. VMWare ESXi-এ আটকে যাওয়া VM প্রসেস কিল করার অনুরূপ পদ্ধতির বর্ণনা আমাদের আছে।
Hyper-V: Failed to Change VM State এরর
কখনো কখনো হয় যে আটকে যাওয়া VM প্রসেস কিল করার পরেও আপনি VM চালু করতে পারছেন না। আরো বরং, এটি Starting স্টেটে আটকে যাচ্ছে এরর দিয়ে:
Virtual Machine Connection Failed to Change State.
এই কেসে নিচের অপশনগুলো চেক করুন:
- Hyper-V VM ফাইলগুলো থাকা ডিস্কে পর্যাপ্ত ফ্রি স্পেস আছে কিনা চেক করুন;
- VM সেটিংসে কোনো ISO ইমেজ কানেক্ট করা থাকলে, তার উপলব্ধতা চেক করুন;
- VM-এর নেটওয়ার্ক অ্যাডাপ্টার সেটিংস চেক করুন। ভার্চুয়াল নেটওয়ার্ক অ্যাডাপ্টারগুলো অবশ্যই কোনো বিদ্যমান Hyper-V ভার্চুয়াল সুইচের সাথে কানেক্টেড থাকতে হবে (যেকোনো NIC-এর জন্য Network Adapter – Configuration Error স্ট্যাটাস থাকা উচিত নয়);

- Hyper-V Virtual Management Service (VMMS) চলছে কিনা এবং Stopping স্টেটে আটকে আছে কিনা চেক করুন;
- নিশ্চিত করুন যে আপনার অ্যান্টিভাইরাস সফটওয়্যার VM ফাইলগুলোর অ্যাক্সেস ব্লক করছে না। VM ডিরেক্টরির পাথগুলো অ্যান্টিভাইরাস এক্সক্লুশনে যোগ করুন (Windows Server 2016-এ বিল্ট-ইন Windows Defender অ্যান্টিভাইরাসে এক্সক্লুশন যোগ করার পদ্ধতি দেখুন);
- Event Viewer → Applications and Services Logs → Microsoft → Windows → Hyper-V-Worker-এ Hyper-V সম্পর্কিত এরর চেক করুন।