Powering off an unresponsive virtual machine on an ESX host

1) Determine the host on which the virtual machine is running.
This information is available in the virtual machine’s Summary tab when viewed in the vSphere Client page.

2) Login to that Host using ssh client

3) Type vmware-cmd -l (shows full path to runing vms on this host)

4) Then type vmware-cmd (path to the vm) getstate see the example below.
 vmware-cmd vmfs/volumes/49be35b9-b234a901-5406-002219b69217/Windows-2003-32-bit/win2003x86.vmx getstate

To stop the VM use the vmware-cmd command see the example below.

5) On the ESX host type vmware-cmd /vmfs/volumes/49be35b9-b234a901-5406-002219b69217/Windows-2003-32-bit/win2003x86.vmx stop

6) The type vmware-cmd /vmfs/volumes/49be35b9-b234a901-5406-002219b69217/Windows-2003-32-bit/win2003x86.vmx getstate

7) If the VM getstate output is still on then use the stop hard command see the example below.

vmware-cmd /vmfs/volumes/49be35b9-b234a901-5406-002219b69217/Windows-2003-32-bit/win2003x86.vmx stop hard

This article pertains to ESX and does not apply to ESXi.  
For more information see the KB Article: 1004340
For ESXi hosts, see Powering off a virtual machine on an ESXi host (1014165).