What do you do after trying to stop a VM that isn’t working. Either you and hope and pray that it will start reponding to vSphere commands, or you can Kill-VM.
Function Kill-VM { <# .SYNOPSIS Kills a Virtual Machine. .DESCRIPTION Kills a virtual machine at the lowest level, use when Stop-VM fails. .PARAMETER VM The Virtual Machine to Kill. .PARAMETER KillType The type of kill operation to attempt. There are three types of VM kills that can be attempted: [soft, hard, force]. Users should always attempt 'soft' kills first, which will give the VMX process a chance to shutdown cleanly (like kill or kill -SIGTERM). If that does not work move to 'hard' kills which will shutdown the process immediately (like kill -9 or kill -SIGKILL). 'force' should be used as a last resort attempt to kill the VM. If all three fail then a reboot is required. .EXAMPLE PS C:\> Kill-VM -VM (Get-VM VM1) -KillType soft .EXAMPLE PS C:\> Get-VM VM* | Kill-VM .EXAMPLE PS C:\> Get-VM VM* | Kill-VM -KillType hard #> param ( [Parameter(Mandatory=$true, Position=0, ValueFromPipeline=$true)] $VM, $KillType ) PROCESS { if ($VM.PowerState -eq "PoweredOff") { Write-Host "$($VM.Name) is already Powered Off" } Else { $esxcli = Get-EsxCli -vmhost ($VM.VMHost) $WorldID = ($esxcli.vm.process.list() | Where { $_.DisplayName -eq $VM.Name}).WorldID if (-not $KillType) { $KillType = "soft" } $result = $esxcli.vm.process.kill($KillType, $WorldID) if ($result -eq "true"){ Write-Host "$($VM.Name) killed via a $KillType kill" } Else { $result } } } }
I find this script on the internet and I have integrated into my host profile for PowerShell. Now it is a simple command to kill a non-responsive VM.
Get-VM $VMName | Kill-VM -KillType Soft
Or
Get-VM $VMName | Kill-VM -Killtype Hard
This script was found from Virtu-Al.net
– Stuart