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