Cannot remove Hyper-V default switch
Guide to understanding why the "Default Switch" exists in Hyper-V and how to manage or hide it.
Why You Can't Remove It
Since Windows 10 Fall Creators Update (1709), Hyper-V includes a permanent "Default Switch".
- Purpose: Provides instant internet access to VMs via NAT (Network Address Translation).
- Behavior: It automatically assigns IP addresses (usually 172.x.x.x or 192.168.x.x) and shares the host's internet connection.
- Limitation: It is deeply integrated into the OS and cannot be deleted via Hyper-V Manager or PowerShell.
The Problem
Users often want to remove it because:
- It creates clutter in network adapters.
- It changes IP subnets after every reboot (breaking static IPs).
- It interferes with other network configurations.
Solution 1: Use a Different Switch (Recommended)
Instead of trying to remove the Default Switch, simply don't use it.
- Open Hyper-V Manager.
- Go to Virtual Switch Manager.
- Create a New virtual network switch.
- External: Connects directly to your physical network (Best for servers).
- Internal: For private communication between host and VMs.
- Assign your VMs to this new switch instead of "Default Switch".
Solution 2: Disable the Adapter (Not Permanent)
You can disable the network adapter, but Windows may re-enable it on reboot.
- Press
Win + R, typencpa.cpl. - Right-click vEthernet (Default Switch).
- Select Disable.
Solution 3: Hide the Adapter (PowerShell)
You can't delete it, but you can hide it from the "Network Connections" window so it doesn't annoy you.
Run PowerShell as Administrator:
# Hide the Default Switch
$netAdapter = Get-NetAdapter -Name "vEthernet (Default Switch)"
$netAdapter | Set-NetAdapter -InterfaceDescription "Hidden Default Switch" -Confirm:$false
(Note: Hiding options are limited in newer Windows versions)
Static IP Issues
The Default Switch changes its subnet dynamically on every reboot. This means you cannot set a static IP inside a VM using the Default Switch.
Fix: Use an Internal Switch with NAT if you need static IPs but want NAT functionality.
# Create stable NAT switch
New-VMSwitch -Name "StableNAT" -SwitchType Internal
New-NetIPAddress -IPAddress 192.168.100.1 -PrefixLength 24 -InterfaceAlias "vEthernet (StableNAT)"
New-NetNat -Name "StableNATNetwork" -InternalIPInterfaceAddressPrefix 192.168.100.0/24
Then connect VMs to "StableNAT".