A virtual machine is only useful if it can talk to something. In Hyper-V, that “something” runs through a virtual switch, and picking the wrong type is the most common reason a new VM either has no network or can’t be reached from the rest of your LAN.
Most of the time you want an external switch. It bridges your VMs to a physical network adapter so they behave like real machines on the network — they get an IP from your router’s DHCP, they can reach the internet, and other devices can reach them. This guide covers the three switch types, when to use each, and how to build an external switch from both Hyper-V Manager and PowerShell without knocking your host offline in the process.
The three virtual switch types
Hyper-V gives you exactly three kinds of switch. The difference is simply how far traffic is allowed to travel.
Hyper-V virtual switch types at a glance
| External | Bound to a physical NIC. VMs reach the LAN, the internet, and the host. This is what most setups need. |
|---|---|
| Internal | VMs talk to each other and to the host, but not to the physical network. Good for an isolated lab that still needs host access. |
| Private | VMs talk only to each other. No host, no LAN, no internet. Useful for a fully sealed test network. |
A quick way to choose: if the VM needs the internet or needs to be reachable from another computer, you want external. If you’re building a closed lab of two or three VMs that should see each other but nothing else, private is cleaner. Internal sits in between — handy when you want the host to act as a router or run services the VMs consume, but you don’t want them exposed to the wider network.
Default Switch vs an external switch
On Windows 10, Windows 11, and recent Windows Server builds, Hyper-V ships with a built-in “Default Switch.” It’s tempting to just use it and move on, and for some jobs that’s the right call. But it behaves differently from an external switch in ways that matter.
The Default Switch uses NAT. Your VMs sit behind a private address range that Hyper-V hands out, and the host translates their traffic out to the network. That gets them online with zero setup, which is great on a laptop that hops between Wi-Fi networks. The downsides: the subnet can change, the VMs don’t appear as real devices on your LAN, and reaching a VM’s service from another machine takes port forwarding you can’t easily configure.
An external switch puts VMs directly on your physical network. They pull DHCP from the same router everything else uses, sit in your normal IP range, and answer to other machines without extra plumbing.
Before you start
Creating an external switch touches the host’s own networking, so a little prep saves a scramble later.
Before you create the switch
- Confirm the Hyper-V role/feature is installed and the host is rebooted
- Know which physical adapter you want to bridge (wired is the safest choice)
- Have a second way onto the box (console, KVM, or another NIC) if this is a remote server
- Note the host's current IP setup in case you need to reapply it
- Decide whether the host should share this adapter (almost always yes)
That third point is the one people skip and regret. On a remote server, binding your only NIC to a new switch will briefly drop the connection — and if you get a setting wrong, it can drop it for good until you fix it at the console.
Create an external switch in Hyper-V Manager
The GUI route is the clearest way to see what’s happening.
- Open Hyper-V Manager.
- In the right-hand Actions pane, click Virtual Switch Manager.
- Select New virtual network switch, choose External, and click Create Virtual Switch.
- Give it a clear name like
External - Ethernet. - Under Connection type, leave External network selected and pick the physical adapter from the dropdown.
- Keep Allow management operating system to share this network adapter checked.
- Click OK and confirm the warning about applying network changes.
That checkbox in step 6 is the important one. Leave it ticked and the host keeps using the adapter alongside your VMs. Clear it and Hyper-V hands the entire NIC to the virtual switch, cutting the host off from that network — sometimes that’s deliberate (a dedicated VM-only NIC), but on a single-adapter machine it’s how people accidentally lock themselves out.
Create an external switch with PowerShell
Once you’ve done it a few times, PowerShell is faster and scriptable. First, find the exact name of the physical adapter:
Get-NetAdapter | Where-Object Status -eq 'Up' | Format-Table Name, InterfaceDescription, Status
Note the Name of the NIC you want — for example Ethernet or Wi-Fi. Then create the
switch and let the host keep sharing it:
New-VMSwitch -Name "External - Ethernet" -NetAdapterName "Ethernet" -AllowManagementOS $true
-AllowManagementOS $true is the command-line equivalent of that shared-adapter checkbox. Set
it to $false only when you genuinely want a NIC dedicated to VM traffic with no host presence.
To confirm what you built:
Get-VMSwitch | Format-Table Name, SwitchType, NetAdapterInterfaceDescription
If you later need to let the host share an existing external switch it isn’t currently using:
Set-VMNetworkAdapter -ManagementOS -SwitchName "External - Ethernet"
Key New-VMSwitch parameters
| -Name | The switch name shown in Hyper-V Manager and used by VMs. |
|---|---|
| -NetAdapterName | The physical NIC to bind, from Get-NetAdapter. |
| -AllowManagementOS $true | Host keeps using the adapter. The safe default on a single-NIC machine. |
| -AllowManagementOS $false | Dedicates the NIC to VMs only; host loses that network path. |
| -SwitchType | Use Internal or Private instead of -NetAdapterName for non-external switches. |
Connect a VM to the switch
Creating the switch doesn’t attach anything to it. Each VM has its own network adapter that points at a switch. In Hyper-V Manager, open the VM’s Settings → Network Adapter and pick your new switch from the Virtual switch dropdown. Or from PowerShell:
Connect-VMNetworkAdapter -VMName "Lab-DC01" -SwitchName "External - Ethernet"
Start the VM and it should pull an address from your router’s DHCP like any other device. If it doesn’t, the switch type or the VM adapter is usually the cause — that’s a whole troubleshooting path of its own, covered in why a Hyper-V VM has no internet.
Internal and private switches, briefly
The same Virtual Switch Manager creates the other two types — just choose Internal or Private instead of External, and there’s no physical adapter to pick. From PowerShell:
New-VMSwitch -Name "Internal-Lab" -SwitchType Internal
New-VMSwitch -Name "Private-Lab" -SwitchType Private
With an internal switch, Windows creates a virtual adapter on the host, and you’ll typically give it a static IP and run something like DHCP or NAT on the host if you want the VMs online. A private switch creates nothing on the host at all — it’s purely VM-to-VM.
Common mistakes
A few patterns account for most of the support questions around external switches:
- Cleared the shared-adapter checkbox by accident. The host vanishes from the network.
Re-open Virtual Switch Manager and re-tick Allow management operating system to share this
network adapter, or run the
Set-VMNetworkAdapter -ManagementOScommand above. - Built the switch on the wrong NIC. On a multi-adapter machine it’s easy to bind the
switch to an unplugged port.
Get-NetAdaptershows which ones are actuallyUp. - Expecting two external switches on one NIC. Each physical adapter backs exactly one external switch. For more external networks, add NICs or use VLAN tagging.
- Wi-Fi quirks. A wireless external switch works in most home labs but can misbehave on enterprise networks that block the extra MAC addresses VMs present. Wired is more predictable.
If you’re new to Hyper-V networking in general, it pairs well with sorting out the host-side virtualization stack first — see the virtualization guides for related fixes, including the classic VirtualBox VT-x conflict with Hyper-V that trips up people running more than one hypervisor on the same box.
Wrapping up
External, internal, private — the choice comes down to how far you want VM traffic to reach. For VMs that should behave like real machines on your network, create an external switch, bind it to a wired adapter, and leave the management OS sharing enabled so your host stays online. The Default Switch is a fine shortcut for casual internet access, but it can’t replace a proper external switch when something needs to connect back to the VM.
Build it once in Hyper-V Manager to see the moving parts, then script it with New-VMSwitch for
every host after that. Just respect the brief network drop when the switch is applied, and keep
console access handy on anything you manage remotely.