How to Configure Hyper-V Switch Embedded Teaming (SET) in Windows 11 Using PowerShell

In virtualized enterprise workstations and server environments running Hyper-V, network redundancy and bandwidth aggregation are critical requirements. Historically, network engineers relied on Load Balancing and Failover (LBFO) NIC teaming to combine physical network adapters. However, LBFO introduced configuration complexity, lacked native support for RDMA (Remote Direct Memory Access) and SR-IOV (Single Root I/O Virtualization), and was formally deprecated for virtual switch uplinks in modern Windows architectures.

To succeed LBFO, Microsoft developed Switch Embedded Teaming (SET). SET integrates network interface teaming directly into the Hyper-V Virtual Switch itself. Available on Windows 11 and Windows Server via PowerShell, SET allows administrators to bind up to eight identical physical Ethernet adapters into a single high-performance team. This configuration provides automatic failover, dynamic load distribution, and full compatibility with advanced hardware offloads.

Understanding Switch Embedded Teaming Architecture

Unlike traditional NIC teaming where an intermediate virtual adapter team is created before binding to a virtual switch, SET constructs the team directly within the virtual switch core. Physical network adapters act as member ports beneath the switch. Virtual machines connect to the virtual switch, and traffic is distributed across active physical uplinks based on packet hash algorithms or Hyper-V port assignments.

SET brings significant architectural advantages:

  • RDMA Convergence: SET supports RDMA over Converged Ethernet (RoCE v2) and iWARP, allowing high-speed SMB Direct storage fabrics to share the teamed adapters.
  • Hardware Offload Preservation: Features like VMQ (Virtual Machine Queue), RSS (Receive Side Scaling), and RSC (Receive Segment Coalescing) remain fully functional.
  • Simplified Management: Teaming is managed strictly through Hyper-V PowerShell cmdlets (*-VMSwitch), eliminating disparate teaming control planes.

Prerequisites and Physical Adapter Requirements

Before deploying a SET-enabled virtual switch on Windows 11, ensure your hardware meets essential configuration criteria:

  • All teamed physical network adapters must have identical hardware models, chipsets, firmware revisions, and link speeds (e.g., dual 10GbE or dual 2.5GbE adapters).
  • The Hyper-V role must be installed and active on Windows 11 Pro, Enterprise, or Education.
  • Legacy LBFO NIC teams must not exist on the selected physical adapters.

Open an elevated PowerShell prompt and identify your available physical network interface names:

Get-NetAdapter | Select-Object Name, InterfaceDescription, Status, LinkSpeed

Creating a SET-Enabled Hyper-V Virtual Switch

To create a new SET-enabled external virtual switch, use the New-VMSwitch cmdlet with the -EnableEmbeddedTeaming switch parameter. Pass the names of the physical adapters as a comma-separated array:

New-VMSwitch -Name "SET-vSwitch" -NetAdapterName "Ethernet 1", "Ethernet 2" -EnableEmbeddedTeaming $true -AllowManagementOS $true

The parameter -AllowManagementOS $true creates a virtual host management network adapter, allowing the host Windows 11 operating system to share network connectivity across the team alongside virtual machines.

Verify that the virtual switch was provisioned correctly with embedded teaming enabled:

Get-VMSwitch -Name "SET-vSwitch" | Select-Object Name, SwitchType, EmbeddedTeamingEnabled

Inspecting and Modifying SET Team Settings

Once created, inspect the internal operational parameters of the Switch Embedded Team using the dedicated Get-VMSwitchTeam cmdlet:

Get-VMSwitchTeam -Name "SET-vSwitch"

The command returns the list of active team members and the configured load balancing distribution algorithm:

Name    : SET-vSwitch
Members : {Ethernet 1, Ethernet 2}
LoadBalancingAlgorithm : HyperVPort

Configuring Load Balancing Algorithms and Standby Adapters

SET supports two primary load balancing modes:

  • HyperVPort (Default): Distributes network traffic based on the virtual machine’s port ID on the switch. Each virtual machine’s virtual network interface is pegged to a specific physical adapter. This mode is optimal for multi-VM environments with predictable workloads.
  • Dynamic: Analyzes TCP stream hashes and real-time adapter utilization to rebalance outbound flowlets dynamically. Dynamic mode delivers superior throughput when running single VMs that transmit massive multi-gigabit data streams.

To switch the load balancing algorithm to Dynamic mode, execute:

Set-VMSwitchTeam -Name "SET-vSwitch" -LoadBalancingAlgorithm Dynamic

By default, SET operates in an active-active mode where all member adapters participate in traffic transmission. If your architecture requires an active-standby configuration, designate one adapter as primary and another as standby:

Set-VMSwitchTeam -Name "SET-vSwitch" -TeamNicName "Ethernet 1" -ActiveTeamNicName "Ethernet 1"

Adding and Removing Member Network Adapters

SET allows dynamic adjustment of member network interfaces without tearing down the virtual switch or disrupting running virtual machines.

To add an additional physical adapter (e.g., Ethernet 3) to an existing SET switch, run:

Add-VMSwitchTeamMember -Name "SET-vSwitch" -NetAdapterName "Ethernet 3"

To safely remove an adapter from the team for hardware replacement or reallocation, execute:

Remove-VMSwitchTeamMember -Name "SET-vSwitch" -NetAdapterName "Ethernet 3"

Testing Failover and Validating Network Resiliency

To confirm that SET delivers continuous network availability, initiate an active ping or file transfer from a virtual machine connected to the SET switch. In PowerShell, simulate an uplink failure by disabling one physical adapter:

Disable-NetAdapter -Name "Ethernet 1" -Confirm:$false

Check the team status:

Get-VMSwitchTeam -Name "SET-vSwitch"

Observe that the virtual machine experiences zero packet drops or session timeouts as the Hyper-V virtual switch automatically steers outbound and inbound traffic through Ethernet 2. Re-enable the adapter to restore balanced operation:

Enable-NetAdapter -Name "Ethernet 1" -Confirm:$false

Get the best tech tips delivered straight to your inbox.

Join thousands of readers mastering Apple, Google, Microsoft, and Linux.