Skip to content
WindowsHow-To Published Updated 5 min readViews unavailable

How to Set Up Virtual Machines on Windows with Hyper-V

Enabling Hyper-V and creating a working virtual machine — Windows' own native, type-1 hypervisor, built directly into Pro and Enterprise editions.

Hyper-V is Windows’ native hypervisor, built directly into Windows 10/11 Pro, Enterprise, and Education editions — no third-party virtualization software required for a fully capable VM host.

Step 1: confirm hardware virtualization support is enabled

systeminfo | find "Virtualization"

Confirm virtualization extensions are enabled in BIOS/UEFI first — Hyper-V cannot function without them regardless of software configuration.

Step 2: enable the Hyper-V feature

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

Or via Control Panel: Programs → Turn Windows features on or off → Hyper-V. A restart is required after enabling.

Step 3: open Hyper-V Manager

Start menu → Hyper-V Manager

Step 4: create a virtual switch for networking

Hyper-V Manager → Virtual Switch Manager →
  New virtual network switch → External
  (bind to your actual physical network adapter)

An External switch bridges VM traffic onto your real network, giving VMs their own visible IP addresses; Internal and Private switches provide more isolated networking for VMs that don’t need direct external access.

Step 5: create a new virtual machine

Hyper-V Manager → Action → New → Virtual Machine

Follow the wizard: assign memory, attach the virtual switch created in Step 4, and create a new virtual hard disk (or attach an existing one).

Step 6: attach an installation ISO and boot

VM Settings → DVD Drive → attach an .iso file

Start the VM and proceed through the guest OS’s normal installation process, same as installing on physical hardware.

Step 7: install Hyper-V Integration Services inside the guest

Modern Windows and Linux guests generally include integration services already; older or minimal guest images may need them installed separately for proper mouse integration, clipboard sharing, and clean shutdown support from the host.

Step 8: use checkpoints for a safe rollback point

Hyper-V Manager → select VM → Checkpoint

Checkpoints (Hyper-V’s term for snapshots) let you revert a VM to an earlier state — useful before a risky change inside the guest, the same safety-net pattern as FreeBSD’s ZFS boot environments applied at the VM level instead.

Step 9: manage VMs from PowerShell for scripting or remote administration

Get-VM
Start-VM -Name "MyVM"
Stop-VM -Name "MyVM"

Why Hyper-V being a type-1 hypervisor matters practically

Unlike a hosted (type-2) hypervisor running as an application on top of the OS, Hyper-V runs beneath Windows itself, with the Windows you’re using also technically running as a guest under Hyper-V’s own root partition once enabled — this architecture is why VMs under Hyper-V generally achieve better performance and hardware access than application-level virtualization software, at the cost of Hyper-V needing to be enabled at the OS level rather than simply installed as a regular program.

Why enabling Hyper-V disables other hypervisors on the same machine

Because Hyper-V takes over the hardware virtualization extensions at the root partition level the moment it’s enabled, other type-2 hypervisors relying on direct access to those same extensions — older versions of VirtualBox in particular — historically couldn’t run simultaneously alongside Hyper-V on the same machine at all, producing confusing errors about virtualization not being available even with it clearly enabled in firmware. Current versions of most major virtualization products have adapted to run on top of Hyper-V’s own virtualization stack instead of requiring exclusive access to the hardware extensions directly, largely resolving this conflict, but it’s worth confirming a specific older or less-maintained virtualization tool’s compatibility with Hyper-V enabled before assuming the two will simply coexist without issue.

Quick-creating a VM for a minimal Linux or Windows sandbox

New-VM -Name "QuickTest" -MemoryStartupBytes 2GB -Generation 2 -SwitchName "External Switch" -NewVHDPath "C:\VMs\QuickTest.vhdx" -NewVHDSizeBytes 40GB

For a fast, fully scripted VM creation without walking through the GUI wizard, New-VM combined with the relevant configuration cmdlets creates a complete, ready-to-boot VM in a single PowerShell pipeline — genuinely useful for spinning up disposable test environments repeatedly, where recreating an identical VM through the GUI wizard each time would be considerably slower than running one saved script.

Choosing Generation 1 versus Generation 2 virtual machines

Hyper-V supports two distinct virtual machine generations with real architectural differences: Generation 1 emulates legacy BIOS firmware and older virtual hardware, offering the broadest compatibility with older guest operating systems that don’t support UEFI boot at all; Generation 2 uses UEFI firmware and more modern virtual hardware (including Secure Boot support), generally offering better performance and security for any guest OS recent enough to support it. Choosing Generation 2 by default for any current Windows or Linux guest, and reserving Generation 1 specifically for older operating systems requiring legacy BIOS boot, avoids inheriting Generation 1’s compatibility-focused limitations for a guest that doesn’t actually need them.

Configuring dynamic memory instead of a fixed allocation

Set-VMMemory -VMName "MyVM" -DynamicMemoryEnabled $true -MinimumBytes 512MB -StartupBytes 2GB -MaximumBytes 4GB

Rather than reserving a fixed amount of host RAM for a VM regardless of its actual current usage, Dynamic Memory lets Hyper-V adjust a running VM’s allocated memory within a configured range based on real-time demand — genuinely useful for running several VMs simultaneously on a host with limited total RAM, where each individual VM’s peak memory need rarely coincides with every other VM’s peak at the exact same moment.

Related:

Sources:

Comments