Nested virtualization is a feature that allows you to run Hyper-V inside a Hyper-V virtual machine.

In other words, with nested virtualization, a Hyper-V host itself can be virtualized.


  • A Hyper-V host running Windows Server 2016 or Windows 10 Anniversary Update.
  • A Hyper-V VM running Windows Server 2016 or Windows 10 Anniversary Update.
  • A Hyper-V VM with configuration version 8.0 or greater.
  • An Intel processor with VT-x and EPT technology.

Configure Nested Virtualization

  1. Create a virtual machine. See the prerequisites above for the required OS and VM versions.

  We used Windows 2016 OS.

 2.  While the virtual machine is in the OFF state, run the following command on the physical HyperV host.     This enables nested virtualization for the virtual machine.

Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true

Start virtual machine.

Disable Nested Virtualization

 You can disable nested virtualization for a stopped virtual machine using the following PowerShell command:

Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $false

Install Hyper-V role and features in virtual machine.

Open PowerShell and run below command:

Install-WindowsFeature Hyper-v –IncludeManagementTools

After reboot, you can use HyperV manager for creating and managing a virtual machine.

Create a new virtual machine under your nestedvm.

Now you can use new VM2.

Networking Options

There are two options for networking with nested virtual machines: MAC address spoofing and NAT mode.

MAC Address Spoofing

For routing network packets through two virtual switches, MAC address spoofing needs to enabled on the virtual switch’s first level. This is done through the following PowerShell command:

Get-VMNetworkAdapter -VMName <VMName> | Set-VMNetworkAdapter -MacAddressSpoofing On

Network Address Translation

The second option is via network address translation (NAT). This approach is ideal for cases where MAC address spoofing cannot be done, like in a public cloud environment.

First, a virtual NAT switch must be created in the host virtual machine (the “middle” VM). Note that the IP addresses below are taken for the purpose of an example, and will vary across environments:

New-VMSwitch -Name VmNAT -SwitchType Internal

New-NetNat –Name LocalNAT –InternalIPInterfaceAddressPrefix “”

Next, assign an IP address to the net adapter:

Get-NetAdapter “vEthernet (VmNat)” | New-NetIPAddress -IPAddress -AddressFamily IPv4 -PrefixLength 24

Each nested virtual machine must have an IP address and gateway assigned to it. Note that the gateway IP must point to the NAT adapter from the previous step. You may also want to assign a DNS server:

Get-NetAdapter “Ethernet” | New-NetIPAddress -IPAddress -DefaultGateway -AddressFamily IPv4 -PrefixLength 24

Netsh interface ip add dnsserver “Ethernet” address=<my DNS server>

That’s all for now!

Hyper-V powers a lot of cloud and VPS services. Like, ZNetLive leverages it in Cloud Windows VPS and Microsoft Azure Private Cloud.

In case you have any query regarding nested virtualization, you can get in touch with me via comments section. I will be happy to help.

Services ZNetLive offer:

Domain Name Registration

Best Shared Hosting

WordPress Hosting Plan

VPS Hosting Plans

Buy Dedicated Server