Why are there two Hyper-V PowerShell modules in Windows 10?

If you use get-module in PowerShell on Windows 10 - you will see that there are now two Hyper-V PowerShell modules:

There is an important reason for this.

In the past we have never supported using Hyper-V PowerShell on one version of Windows to manage a different version of Hyper-V on a remote computer.  For many scenarios this has "just worked" - but it has not been something that we actively supported and verified.  At the same time - we have been hearing feedback that people want this scenario to work.  To enable this in Windows 10 - we have started versioning our PowerShell module to provide cross version compatibility.  If you need to remotely manage a Windows 8.1 / Windows Server 2012 R2 instance of Hyper-V - you should load the v1.1 Hyper-V PowerShell module.  If you are remotely (or locally) managing Windows 10 / Windows Server 2016 - you should use the v2.0 PowerShell module.

By default, the v2.0 module will get loaded if you just run a Hyper-V Cmdlet - but you can easily remove and import the right module for the system that you want to manage.

Cheers,
Ben