title: Detect the Virtualization Layer from a guest instance(VM) - VPC or Hyper-V in C# or Powershell
body: <p>I want to run my application on a virtual machine but I want to know about the underlying Virtualization layer Hyper-V , VPC(Windows/Microsoft Virtual PC), or VMware.
  If it is VPC i don't want to run my application. 
  I tried to look around <a href="http://blogs.technet.com/b/enterprise_admin/archive/2009/10/20/detecting-the-virtualization-layer-from-within-a-guest-child-instance.aspx" rel="nofollow">here</a> but the solution presented using WMI on WIn32_BIOS/MotherBoard doesn't differentiate between Hyper-V and VPC. I tried to see the instuction set method mentioned in the <a href="http://www.codeproject.com/Articles/9823/Detect-if-your-program-is-running-inside-a-Virtual" rel="nofollow">codeproject</a> too. Is there a way to identify between the two(Hyper-V/VPC)? I don't have Hyper-V setup to test but i have Virtual PC 2007.</p>