How to identify Hyper-V VM by worker process if VM is hung on Starting/Stopping/Snapshotting

I recently encountered a situation where one of my Hyper-V virtual machines in production environment hung at Starting... 0%.  This particular server had about 30 other VMs running normally used by customers. I wanted multiple methods and options to identify which VM worker process was hung and terminate it without disturbing other systems.  In the few instances that I have encountered this issue, terminating the worker process with VM allowed the VM to start normally.  I knew that each VM running would have a Virtual Machine Worker Process associated with it but I didn't know how to identify VM by worker process.  The first glance at Task Manager was daunting and unclear:

 I found three easy methods for identification:

1. From within Task Manager you can click View -> Select Columns and check Image Path Name and Command Line

Now Task Manager provided an additional piece of information I was missing, "Command Line" revealing the GUID used by Hyper-V.  Since I knew the VM name which was experiencing the issue, I browsed the directory where the VM resided on file system.  Under the folder containing the VM a sub-directory existed name "Virtual Machines".  With that folder a XML resided, I simply documented part of that string and searched matching name in task manager. Once I identified the process I could terminate it from task manager.

2. Since I am a Mark Russinovich fan, I naturally turned to Process Explorer for help.  I simply went to live.sysinternals.com and download Process Explorer and launched with elevated rights.  (This is just an example, which is the reason the GUID between screen shots do not match, but they certainly would if real)  Once worker process has been identified in the same way as above, you can use the "Kill process" button.

 3. Finally, I downloaded process monitor from live.sysinternals.com.  This time I used the name of the VM called "FINDMEVM"as a filter to help identify the GUID for XML file.

 Use same process as options 1 and 2 to terminate process.

Dave Guenthner [MSFT]
This posting is provided "AS IS" with no warranties, and confers no rights.