Hoe Een Niet-Reagerende Hyper-V Virtuele Machine Te Stoppen

Het gebeurt niet zo vaak, maar soms hangen Hyper-V virtuele machines (VM) wanneer je ze probeert af te sluiten. En dan eindig je met een VM in Hyper-V Manager met de status ‘Aan het afsluiten’ die niet meer reageert, en die niet gedwongen kan worden afgesloten met de normale knoppen. Zelfs de PowerShell Stop-VM -Force opdracht helpt niet.

In deze situatie moet je creatiever zijn met het afsluiten van de VM. Een manier is om je server uit te schakelen (of je PC als je client Hyper-V gebruikt). Maar dat is nogal een drastische oplossing. Het belangrijkste wat je nodig hebt als je een niet-reagerende VM wilt afdwingen af te sluiten, is de GUID van de VM. Met behulp van de GUID kun je de CPU-process ID van de VM vinden en deze beëindigen.

Forceer het afsluiten van een Hyper-V virtuele machine door het proces te beëindigen

Het onderstaande methode wordt alleen aanbevolen als de VM niet reageert op een afsluitopdracht vanuit Hyper-V Manager of bij gebruik van de PowerShell Stop-VM -Force opdracht. De volgende commando’s moeten worden uitgevoerd in Windows PowerShell als een lokale beheerder. De methode hieronder vereist Windows PowerShell. Het werkt niet in PowerShell 6 of latere versies.

In een verhoogde Windows PowerShell-prompt, begin met het gebruiken van Get-VM om de GUID van de VM te vinden. Je moet de naam van de niet-reagerende VM weten om dit te doen. Als je de naam van de VM moet bevestigen, voer dan gewoon Get-VM uit om een lijst van alle op het apparaat draaiende VM’s te zien.

Als AD Down is, Telt Elke Minuut

A recent survey revealed 94% of organizations can’t recover their Active Directory (AD) forest in minutes. Cayosoft offers the only instant AD forest recovery.

Learn More

Get-VM

Zodra je de VM-naam hebt, voer je de onderstaande opdracht uit, waarbij je ‘Windows 11’ vervangt door de naam van de VM die je wilt stoppen:

$VmGUID = (Get-VM 'Windows 11').id

De volgende stap is om Get-WMIObject te gebruiken om het proces-ID van de VM te vinden. Hier gebruiken we de Win32_Process Windows Management Instrumentation (WMI) namespace om een CPU-proces te vinden dat overeenkomt met vmwp.exe en de GUID ($VmGUID) van onze virtuele machine.

$VMWMProc = (Get-WMIObject Win32_Process | ? {$_.Name -match 'VMWP' -and $_.CommandLine -match $VmGUID})

Zodra we het proces-ID ($VMWMProc) hebben, kunnen we de Stop-Process cmdlet gebruiken om het te beëindigen:

Stop-Process ($VMWMProc.ProcessId) –Force
How to Stop an Unresponsive Hyper-V Virtual Machine (Image Credit: Russell Smith)

Forceer het stoppen van alle VM’s

De andere manier om een niet-reagerende VM te stoppen, is door de Hyper-V-service te beëindigen. Maar deze methode zal alle actieve VM’s op je server hard uitschakelen. Net als bij de vorige methode moet je de volgende opdracht uitvoeren in een verhoogde PowerShell-venster, dat wil zeggen een venster met lokale beheerdersrechten.

Get-Service vmms | Restart-Service

Het opnieuw starten van de Hyper-V-service (vmms) kan enige tijd duren. Maak je dus geen zorgen als het enkele minuten duurt om het te stoppen en vervolgens opnieuw te starten.

Gerelateerde artikelen:

Source:
https://petri.com/how-to-stop-an-unresponsive-hyper-v-virtual-machine/