The v2 WMI namespace in Hyper-V on Windows 8

The v2 WMI namespace in Hyper-V on Windows 8

Rate This
  • Comments 23


Hyper-V’s primary management interface is based on WMI.  More than that, it is based on an industry standard API profile that is defined by the DMTF (Distributed Management Task Force - http://dmtf.org/). The DMTF profiles that we use are developed by a number of industry members (Microsoft included) and are constantly growing and evolving.

When we started working on Windows 8, we decided that we needed to update our WMI interfaces to take advantage of newer profiles that have been defined since the initial release of Hyper-V.  Some of these newer profiles were needed to support new features in Windows 8, while other profiles had been improved to be easier to use and develop against.

There was one problem with this decision.  In some key areas – the newest profiles were not 100% compatible with the existing Hyper-V WMI interfaces.  This meant that adopting them would break any scripts / programs that people had written against Hyper-V in the past. 

This is not something that we wanted to do.

The solution that we came up with is what we call the “v2 namespace” for WMI.

What we did was to create a new WMI namespace for Hyper-V.  This namespace has WMI APIs that are based off of the newer DMTF profiles and allows you to do everything that you need to with a Windows 8 / Windows Server 2012 installation of Hyper-V.  At the same time we also maintained the old WMI namespace and kept 100% compatibility with the APIs from Windows Server 2008 / Windows Server 2008 R2 – however, this namespace does not have any APIs for new Windows 8 / Windows Server 2012 features.

This approach provides the best of all worlds.  We can provide access to new features, continue to adhere to industry standards and maintain backwards compatibility with existing programs / scripts.

Selecting to use one WMI namespace or another is as simple as specifying the “root\virtualization” or “root\virtualization\v2” namespace on your WMI query.  In some cases – the difference between the two is nonexistent:

image

But in other areas there are big differences:

image

You can read about the new WMI details here: http://msdn.microsoft.com/en-us/library/hh850319(v=vs.85)

Another interesting impact of the WMI changes is around our in-box management tools.  In order to support all of the new features in Windows 8 / Windows Server 2012 we had to move our management tools to using the new v2 WMI namespace.  Unfortunately, this means that you cannot use these tools to manage Hyper-V on Windows Server 2008 R2 / Windows Server 2008 (i.e. you cannot use Hyper-V Manager or Hyper-V PowerShell cmdlets on Windows 8 to connect to Windows Server 2008 R2).  However, you can use Hyper-V Manager on Windows Server 2008 R2 to manage a Windows Server 2012 installation (due to our work to maintain backwards compatibility of APIs) but then you will not have access to any of the new features.

One final note here – for the curious – here are the DMTF profiles and versions that we are using in Windows 8 / Windows Server 2012:

Registered Name                         Registered Version
--------------                         -----------------
Computer System                        1.0.1
Generic Device Resource Virtualization 1.0.0
Storage Resource Virtualization        1.0.0
Processor Resource Virtualization      1.0.0
Ethernet Port Resource Virtualization  1.0.0
Virtual System                         1.0.0
Allocation Capabilities                1.0.0
System Virtualization                  1.0.0
Resource Allocation                    1.1.0
Memory Resource Virtualization         1.0.0
Virtual Ethernet Switch                1.0.0
Base Metrics                           1.0.1
Virtual System Migration               0.7.3

Cheers,
Ben

Leave a Comment
  • Please add 2 and 5 and type the answer here:
  • Post
  • This is hog wash. MS should have built in support.

  • The fact that the new Hyper-V is now using a different WMI namespace does not justify anything.

    If MS wanted to avoid this problem they could have programmed the Hyper-V Manager to first detect the Server version and then use the right WMI namespace.

  • Ugh...everything Microsoft does is almost great...which is really bad.    This is just another example.  Azure could be great...but its not.  Hyper-V almost caught up to VMWare...but then you can't manage a large environment from one place.  Some very strange product decisions.  Do or die Microsoft...either be great or not.  Enough in between.

  • How hard would it be to release a copy of the old (2008/2008R2) Hyper-V management console for Windows 8?

    Installing the old Win7 RSAT tools clearly won't work, but it would be really useful if Microsoft were to release the old management console for Win8.

  • I actually can't see root/virtualization on Windows 8 Pro in the WMIControl.  It was there on a previous install and I can bring up the Hyper-V manager but can't connect. Is the root/virtualization meant to be visible in the tool?

  • Does Windows 2012 R2 Hyper-V support root\virtualization WMI classes as Windows 2012 does? Currently We are looking at the Hyper-V WMI classes in a preview version of 2012 R2 and it seems that all Hyper-V WMI classes such as MSVM_ComputerSystem are removed from root\virtualization namespace. I wonder this is a temporary phenomenon or a permnent decision.

  • extreamly nice

  • I have the same question as  Shangwu, it looks like root\virtualization has been removed from windows 8. I tested on my two windows 8 client machines and none of them have root\virtualization, though I can use root\virtualization\v2. We have 2008R2 scripts to deal with VM, but none of them work on widows 8.

    How to get v1 of virtualization on win 8 clients ?

Page 2 of 2 (23 items) 12