How to Configure Virtual Network Adapter Bandwidth Limits in Windows 11 Hyper-V Using PowerShell

When running multiple virtual machines on Windows 11 using Hyper-V, VMs share the physical host\u2019s network interface card (NIC) via an internal or external Virtual Switch (vSwitch). If a single virtual machine initiates a massive file download, database backup, or unthrottled streaming job, it can consume the entire available bandwidth of the physical link. This “noisy neighbor” effect starves adjacent virtual machines and the host operating system of network throughput. To guarantee minimum network resources for mission-critical virtual machines and cap maximum throughput on development instances, Hyper-V provides granular Network Quality of Service (QoS) controls configurable via PowerShell.

Understanding Hyper-V Network QoS Mechanisms

Hyper-V supports two complementary bandwidth regulation mechanisms applied directly to virtual network adapters:

  • Minimum Bandwidth Weight (Relative Allocation): Assigns a relative priority weighting (ranging from 1 to 100) to a virtual adapter. When the physical link experiences congestion, the virtual switch divides bandwidth proportionally according to assigned weights. During non-congested periods, VMs can exceed this threshold and utilize idle bandwidth.
  • Maximum Bandwidth (Absolute Throughput Cap): Enforces a strict ceiling (in bits per second) that the virtual network adapter can never exceed, regardless of whether the physical wire is idle.
  • Minimum Bandwidth Absolute: Enforces an absolute minimum transmission rate (in bits per second) guaranteed to the VM.

Configuring Virtual Switch Bandwidth Reservation Mode

Before configuring minimum bandwidth weights on individual virtual network adapters, verify that the target Hyper-V Virtual Switch is configured to use weight-based bandwidth reservations:

Open PowerShell as an Administrator and query your virtual switches:

Get-VMSwitch | Select-Object Name, SwitchType, BandwidthReservationMode

If BandwidthReservationMode is set to None or Absolute, configure weight-based allocation:

Set-VMSwitch -Name "ExternalSwitch" -BandwidthReservationMode Weight

This instructs the virtual switch scheduler to distribute contended bandwidth proportionally according to each adapter\u2019s assigned weight.

Querying Virtual Network Adapter Bandwidth Parameters

To inspect active bandwidth settings on a specific virtual machine (e.g., "WebServerVM"):

Get-VMNetworkAdapter -VMName "WebServerVM" | Select-Object VMName, Name, MinimumBandwidthWeight, MinimumBandwidthAbsolute, MaximumBandwidth

By default, newly provisioned virtual network adapters report:

VMName      Name                   MinimumBandwidthWeight MinimumBandwidthAbsolute MaximumBandwidth
------      ----                   ---------------------- ------------------------ ----------------
WebServerVM Network Adapter                             0                        0                0

A value of 0 indicates no bandwidth guarantees or maximum caps are enforced.

Setting Minimum Bandwidth Weights for Critical VMs

Suppose you host a production database VM ("DBServerVM") and a secondary test VM ("TestVM") sharing a single 1GbE network adapter. You want the database to receive at least 70% of available bandwidth during peak congestion, while the test VM receives 30%:

Configure the database VM weight to 70:

Set-VMNetworkAdapter -VMName "DBServerVM" -MinimumBandwidthWeight 70

Configure the test VM weight to 30:

Set-VMNetworkAdapter -VMName "TestVM" -MinimumBandwidthWeight 30

When both virtual machines transmit simultaneously and saturate the link, the Hyper-V virtual switch guarantees the database VM 70% of throughput and limits the test VM to 30%.

Enforcing Maximum Bandwidth Caps on Virtual Adapters

To prevent a non-essential virtual machine from overwhelming your local network during background updates or stress testing, enforce an absolute maximum throughput cap using MaximumBandwidth:

For example, to limit a virtual machine\u2019s network speed to 100 Mbps (100,000,000 bits per second):

Set-VMNetworkAdapter -VMName "TestVM" -MaximumBandwidth 100000000

To cap throughput at 25 Mbps:

Set-VMNetworkAdapter -VMName "TestVM" -MaximumBandwidth 25000000

The restriction takes effect immediately without requiring the virtual machine to be restarted or powered down.

Removing Bandwidth Restrictions

To remove minimum guarantees and maximum throughput caps, resetting the virtual network adapter to unthrottled best-effort operation:

Set-VMNetworkAdapter -VMName "TestVM" -MinimumBandwidthWeight 0 -MaximumBandwidth 0

To verify that all limits have been cleared:

Get-VMNetworkAdapter -VMName "TestVM" | Format-List *Bandwidth*

The adapter returns to default unconstrained virtual switch forwarding.

Get the best tech tips delivered straight to your inbox.

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