How to Enable and Use Hyper-V in Windows 10 and 11
Enable Hyper-V on Windows 10/11 Pro to run virtual machines. Step-by-step setup, creating your first VM, network configuration, and common troubleshooting.
Hyper-V is Microsoft's built-in hypervisor — available for free on Windows 10/11 Pro, Enterprise, and Education. It lets you run Linux, older Windows versions, or test environments without separate virtualization software.
Requirements
- Windows 10/11 Pro, Enterprise, or Education (not available on Home)
- 64-bit processor with SLAT (Second Level Address Translation)
- Virtualization enabled in BIOS (Intel VT-x or AMD-V)
- Minimum 4 GB RAM (8 GB+ recommended)
Check if your CPU supports it:
systeminfo | findstr /i "hyper-v requirements"
All lines should show Yes.
Enable Hyper-V
Method 1: Windows Features
Win + R → optionalfeatures → check Hyper-V (all sub-items) → OK → restart
Method 2: PowerShell (faster)
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
Restart when prompted.
Method 3: DISM
DISM /Online /Enable-Feature /All /FeatureName:Microsoft-Hyper-V
Open Hyper-V Manager
Win + S → search Hyper-V Manager
Or: Win + R → virtmgmt.msc
Create a Virtual Machine
- In Hyper-V Manager → Action → New → Virtual Machine
- Name: give it a descriptive name
- Generation: choose Generation 2 for modern OS (Linux, Windows 10+). Generation 1 for older systems or if Gen 2 doesn't work
- Memory: assign RAM — minimum 2 GB, 4 GB recommended. Enable Dynamic Memory to let it adjust automatically
- Network: select Default Switch for internet access
- Virtual Hard Disk: create new, 50–100 GB is typical
- Installation: point to your ISO file
Click Finish, then Start the VM.
Configure Networking
Default Switch — created automatically, gives VMs internet via NAT. Simplest option.
External Switch — VM gets its own IP on your network (visible to other devices):
- Action → Virtual Switch Manager → New Virtual Network Switch → External → select your physical network adapter → Apply
Internal Switch — VMs can talk to each other and the host, but not the internet.
Enable Enhanced Session (Better Performance)
Enhanced Session allows clipboard sharing, audio, and higher resolution between host and VM.
On the VM: install Hyper-V Integration Services (included in modern Windows; for Linux, install linux-tools package).
In Hyper-V Manager: View → Enhanced Session
For Linux VMs, enable XRDP:
sudo apt install xrdp
sudo systemctl enable xrdp
Useful PowerShell Commands
# List all VMs
Get-VM
# Start/Stop VM
Start-VM -Name "Ubuntu"
Stop-VM -Name "Ubuntu" -Force
# Create checkpoint (snapshot)
Checkpoint-VM -Name "Ubuntu" -SnapshotName "Before update"
# List checkpoints
Get-VMSnapshot -VMName "Ubuntu"
# Restore checkpoint
Restore-VMSnapshot -Name "Before update" -VMName "Ubuntu"
# Get VM IP address
Get-VMNetworkAdapter -VMName "Ubuntu" | Select-Object IPAddresses
# Adjust RAM
Set-VMMemory -VMName "Ubuntu" -StartupBytes 4GB
# Adjust CPU count
Set-VMProcessor -VMName "Ubuntu" -Count 4
Common Issues
"Hyper-V cannot be installed: Virtualization is disabled" Enter BIOS → enable Intel VT-x or AMD-V (sometimes labeled "SVM Mode")
VM boots to black screen
- For Gen 2 VMs with Linux: disable Secure Boot in VM settings → Security → uncheck Enable Secure Boot
- Or change template to Microsoft UEFI Certificate Authority
Poor performance
- Enable Dynamic Memory
- Install Integration Services inside the VM
- Use Generation 2 for better I/O performance
No network in VM
- Check Default Switch exists in Virtual Switch Manager
- Restart the VM network adapter: inside VM run
ipconfig /renew
Hyper-V vs VMware vs VirtualBox
| Hyper-V | VMware Workstation | VirtualBox | |
|---|---|---|---|
| Cost | Free (Pro+) | Paid | Free |
| Performance | Excellent | Excellent | Good |
| Linux support | Good | Excellent | Good |
| USB passthrough | Limited | Full | Full |
| Snapshots | Yes | Yes | Yes |
Use Hyper-V if you're already on Windows Pro and don't need USB passthrough. Use VirtualBox if you need cross-platform or USB device access.
Summary
Enable via optionalfeatures or PowerShell → create VM → assign Default Switch for networking → use checkpoints before major changes. Generation 2 VMs perform better for modern operating systems. For Linux, disable Secure Boot in VM settings if it won't boot.