Microsoft Hyper-V hypervisor driver

The libvirt Microsoft Hyper-V driver can manage Hyper-V 2008 R2.

Project Links

Connections to the Microsoft Hyper-V driver

Some example remote connection URIs for the driver are:

hyperv://example-hyperv.com                  (over HTTPS)
hyperv://example-hyperv.com/?transport=http  (over HTTP)

Note: In contrast to other drivers, the Hyper-V driver is a client-side-only driver. It connects to the Hyper-V server using WS-Management over HTTP(S). Therefore, the remote transport mechanism provided by the remote driver and libvirtd will not work, and you cannot use URIs like hyperv+ssh://example.com.

URI Format

URIs have this general form ([...] marks an optional part).

hyperv://[username@]hostname[:port]/[?extraparameters]

The default HTTPS ports is 5986. If the port parameter is given, it overrides the default port.

Extra parameters

Extra parameters can be added to a URI as part of the query string (the part following ?). A single parameter is formed by a name=value pair. Multiple parameters are separated by &.

?transport=http

The driver understands the extra parameters shown below.

NameValuesMeaning
transport http or https Overrides the default HTTPS transport. The default HTTP port is 5985.

Authentication

In order to perform any useful operation the driver needs to log into the Hyper-V server. Therefore, only virConnectOpenAuth can be used to connect to an Hyper-V server, virConnectOpen and virConnectOpenReadOnly don't work. To log into an Hyper-V server the driver will request credentials using the callback passed to the virConnectOpenAuth function. The driver passes the hostname as challenge parameter to the callback.

Note: Currently only Basic authentication is supported by libvirt. This method is disabled by default on the Hyper-V server and can be enabled via the WinRM commandline tool.

winrm set winrm/config/service/auth @{Basic="true"}

To allow Basic authentication with HTTP transport WinRM needs to allow unencrypted communication. This can be enabled via the WinRM commandline tool. However, this is not the recommended communication mode.

winrm set winrm/config/service @{AllowUnencrypted="true"}