In high-capacity local area networks, high-speed file sharing via Server Message Block (SMB 3.1.1) can easily consume entire 1GbE or 10GbE network links during massive file copies, system backup tasks, or virtual machine disk migrations. When unrestricted SMB transfers saturate network interfaces, latency spikes, causing VoIP dropouts, remote desktop lag, and web browsing timeouts across the client machine. To prevent SMB traffic from monopolising network throughput, Windows 11 includes the SMB Bandwidth Limit feature, configurable via the SmbShare PowerShell module.
Understanding SMB Bandwidth Categories
The SMB Bandwidth Limit architecture categorises network file transfers into three distinct traffic groups:
- Default: Covers standard user file copies traversing SMB shares (such as copying files via Windows Explorer,
robocopy, or mapped drives). - LiveMigration: Throttles Hyper-V virtual machine live migration data streams between virtualization hosts.
- VirtualMachine: Regulates Hyper-V virtual machine shared virtual hard disk (VHDX over SMB) storage traffic.
By defining explicit throughput limits per category, you can ensure that heavy file synchronization tasks cannot overwhelm available interface bandwidth.
Installing the SMB Bandwidth Limit Optional Feature
The cmdlets governing SMB bandwidth limiting require the underlying Windows feature to be installed. Open PowerShell as an Administrator and check the feature status:
Get-WindowsOptionalFeature -Online -FeatureName "FS-SMBBW"
If the state is Disabled, install the feature:
Enable-WindowsOptionalFeature -Online -FeatureName "FS-SMBBW" -NoRestart
Once enabled, the Get-SmbBandwidthLimit, Set-SmbBandwidthLimit, and Remove-SmbBandwidthLimit cmdlets become functional.
Querying Current SMB Bandwidth Limits
To inspect active bandwidth caps across all traffic categories on your Windows 11 system:
Get-SmbBandwidthLimit
If no limits have been configured previously, the command returns empty. When limits exist, the output reports:
Category BytesPerSecond
-------- --------------
Default 52428800
Configuring an SMB File Transfer Bandwidth Cap
To restrict standard SMB file transfers (the Default category) so that file sharing does not exceed a designated throughput limit, use Set-SmbBandwidthLimit:
For example, to cap file transfer speeds to 50 Megabytes per second (50 MB/s = 52,428,800 bytes per second):
Set-SmbBandwidthLimit -Category Default -BytesPerSecond 50MB
PowerShell natively converts size notation (KB, MB, GB) directly into bytes.
If you are operating Hyper-V virtual machines and need to ensure VM storage synchronization does not consume more than 200 MB/s:
Set-SmbBandwidthLimit -Category VirtualMachine -BytesPerSecond 200MB
The changes take effect immediately on active SMB connections without requiring a restart of the Server service or operating system.
Testing and Validating Bandwidth Enforcement
To verify that the bandwidth restriction is functioning:
- Open Task Manager and switch to the Performance tab.
- Select your active Ethernet or Wi-Fi network adapter.
- Initiate a large multi-gigabyte file transfer across an SMB share.
- Observe the throughput graph. The transfer speed plateaus cleanly at the specified limit (e.g., ~400 Mbps for a 50 MB/s cap), leaving ample bandwidth for other interactive traffic.
Removing SMB Bandwidth Limits
When high-speed unrestricted transfer performance is required again, remove the category limit:
Remove-SmbBandwidthLimit -Category Default
To remove all configured bandwidth limits across every category simultaneously:
Get-SmbBandwidthLimit | Remove-SmbBandwidthLimit -Confirm:$false
To confirm that all throughput limits have been cleared:
Get-SmbBandwidthLimit
SMB connections instantly revert to line-rate wire speed.