Using “Nested Hyper-V” is useful for many scenarios including learning about the platform, validating installation/deployment configurations, and testing the effects of Hyper-V Windows Updates in a controlled environment prior to deploying in production.
Nested Hyper-V simply involves deploying Hyper-V as a VM running on an existing Hypervisor as illustrated below. On the left of the diagram is a typical virtualisation deployment with a hypervisor such as Hyper-V installed on a physical server such as a Dell PowerEdge or HPE ProLiant. 3 VMs have been deployed.

On the right of the digram a fourth VM has been deployed, into which Hyper-V has been installed. This instance of Hyper-V, running in the VM, is “nested”, as it is running on an existing Hypervisor. The nested instance of Hyper-V can run VMs itself; as the diagram illustrates, 3 test instances of the existing VMs (DC, Files, and DNS) are hosted and operational.
In this setup, the nested Hyper-V can have modifications made (such as network configuration changes or Windows Updates installed), to understand the effect that the change has on the Test VMs, without affecting the production instances.
Process
- Create VM with sufficient RAM, Storage, and CPU to support hosting of test VMs
- Expose CPU Virtualisation to the VM
- Install Windows Server on the VM
- Login to the VM & Install Hyper-V Role
Expose CPU Virtualisation (Hyper-V)
From the Hyper-V host, the following PowerShell commandlet can be used:
Set-VMProcessor -VMName NestedHyperV01 -ExposeVirtualizationExtensions $True
Expose CPU Virtualisation (VMware vSphere)
From PowerCLI connected to vCenter, the following commands can be used:
$EnableNestedHV = New-Object VMware.Vim.VirtualMachineConfigSpec
$EnableNestedHV.nestedHVEnabled = $true
(Get-VM -Name NestedHyperV01).ExtensionData.ReconfigVM($EnableNestedHV)
Server 2025 Note
In Server 2025, after installing Windows Server into the VM, it is required to edit the Microsoft boot configuration database that the VM reads on startup. Otherwise, the Hyper-V role will not install.
Launch PowerShell or Windows Terminal and enter the following:
bcdedit /set hypervisorlaunchtypeauto
Restart the VM (Mandatory) & add Hyper-V role:
Install-WindowsFeature -Name hyper-v -IncludeManagementTools
