Last Updated on January 28, 2022
Windows 10 has a lot of apps running in the background all the time. Some take up the system memory, others use your bandwidth. One of these apps is Microsoft’s OneDrive. If you are not familiar with it, it is an online cloud storage service by Microsoft which is preinstalled on a lot of systems running Windows 10. The Windows 10 app for OneDrive always keeps running in the background taking up your precious bandwidth and increasing the ping.
While this won’t affect a normal user, this might turn frustrating really quickly for gamers and people who require ping to remain stable. Any jump in ping from 10-50 can have a drastic change in how your character acts in a game.
How to Throttle Bandwidth for Apps in Windows 10
Adding insult to the injury, both the Windows 10 and the OneDrive app don’t give us an option in the system to limit or disable this bandwidth-hogging process happening without our permission. Fortunately for us, there are some PowerShell tricks that we can use in order to set up limits for the OneDrive app.
For controlling the bandwidth used by OneDrive (or any app for that matter), we can use two metrics:
- Throttling – an upper limit which can be used.
- Weighting – Sort of like a priority scheme which decides which apps get higher bandwidth when multiple apps are running.
Note: The steps mentioned below will require some technical knowledge. We try our best to explain everything in layman terms. You can try TMeter or inbuilt bandwidth limiting apps if you don’t want to tinker around.
Steps for Throttling Bandwidth for an App (say OneDrive)
- Press Alt + Ctrl + Delete to open the Task Manager.
- In the Processes tab click on the Network column label in order to arrange the apps by decreasing Network usage. Remember the name of the App (OneDrive.exe in this example).
- Now press Win + R to open Run box. Type “powershell” without quotes.
- In the PowerShell window, type “New-NetQosPolicy -Name OneDriveLimits -AppPathNameMatchCondition OneDrive.exe -IPProtocolMatchCondition Both -NetworkProfile All -ThrottleRateActionBitsPerSecond 5000000“ without quotes. This will set the OneDrive.exe process to use a maximum of 5Mbps max from your whole bandwidth. You can use any value here like 1000000 for a maximum of 1Mbps.
- You can check whether the value is enforced in the system by typing “Get-NetQosPolicy -Name OneDriveLimits” in the PowerShell.
Changing Bandwidth After Throttling
In the PowerShell window, type “Set-NetQosPolicy -Name OneDriveLimits -ThrottleRateActionBitsPerSecond 9000000” where 9000000 will allocate 9Mbps from your overall bandwidth for the OneDrive app.
Deleting Bandwidth Throttling Policy
If you are not satisfied with the results, you can also reverse the changes by deleting the throttling policy that you implemented via PowerShell. For doing this, type “Remove-NetQosPolicy -Name OneDriveLimits” in PowerShell.
By this, you can throttle bandwidth for any app which is taking your precious data and increasing the ping. If you face any problem using this method, use the comments section to tell us more about the specifics of the app and we’ll let you know the process.
7 thoughts on “How to Throttle Bandwidth for Apps in Windows 10”
Unable to remove created policy
I created a policy using the powershell .
New-NetQosPolicy –Name \”chrome\” -AppPathNameMatchCondition chrome.exe -MinBandwidthWeightAction 30 -PolicyStore ActiveStore
When i use the command Get-NetQosPolicy -PolicyStore ActiveStore , the policy is available
Now i am unable to remove the policy. (tried as admin also)
Remove-NetQosPolicy –Name “chrome”
The error i get is “Remove-NetQosPolicy : No MSFT_NetQosPolicySettingData objects found with property ‘Name’ equal to ‘chrome’. Verify the value of the property and retry. ”
Any help please.
Based on my usage, I’ve seen that this method doesn’t really work well with 3rd party apps. Just for the sake of experimentation, I applied the throttling to the Windows App store, and it worked flawlessly. I was also able to remove the bandwidth restrictions without the
No MSFT_NetQosPolicySettingData objects found with property ‘Name’ equal to ‘However, I think that this will work by adding chrome to the environment variables in Windows. You can know more about it here. Do let me know if this works for you.
you need to run powershell as ADMIN
Sadly this doesn’t seem to work in successfully throttling the Microsoft Windows Store app in windows 10.
New-NetQosPolicy -Name MicrosoftStoreDLimits -AppPathNameMatchCondition WinStore.App.exe -IPProtocolMatchCondition Both -NetworkProfile All -ThrottleRateActionBitsPerSecond 500000
New-NetQosPolicy -Name svchostdotexeDLimits -AppPathNameMatchCondition svchost.exe -IPProtocolMatchCondition Both -NetworkProfile All -ThrottleRateActionBitsPerSecond 500000
Neither command throttled the Store app. Tried rebooting, not change. The policy is in place. I checked.
I remember checking Windows Store for checking the download speed after throttling it. Microsoft may have changed something in this time. I’m not aware of any fix right now. Do let me know if you find something. Thanks for pointing out.
Edit: You can set the bandwidth via the Group Policy Editor for the Windows Store
Thanks! Very helpful in preventing StorageExplorer from choking the internet link in my data center.
I used this for the OpenDrive Sync Service which was using all of my bandwidth! Free and very effective solution, thank you!
set-NetQosPolicy -Name OpenDrive -AppPathNameMatchCondition OpenDrive_SyncService.exe -IPProtocolMatchCondition Both -NetworkProfile All -ThrottleRateActionBitsPerSecond 3000000
I’ve tested this with Steam as its in-app limiter often fails. So this works, but the throttle limit doesn’t work as expected. Steam uses 4MB/s and I’m trying to limit it to 2MB/s (MegaBYTES per second, default display value on Steam). Setting -ThrottleRateActionBitsPerSecond to 2000000 limits it to 2MegaBits/s as shown by Get-NetQoSPolicy , which should actually limit steam to 0.250MB/s if we go with default Mbps to MB/s conversion, yet it had no effect. After experimenting with other values, I found that “400000” limits Steam to 2.5MB/s (i.e. 20Mbps), close to what I want, even though Get-NetQoSPolicy still displays 400KBits/sec. Something wonky is going with conversion, nonetheless, it works, so thanks for the post!
If anyone wants the code only:
New-NetQosPolicy -Name steamlimit -AppPathNameMatchCondition steam.exe -IPProtocolMatchCondition Both -NetworkProfile All -ThrottleRateActionBitsPerSecond 400000
sets to 2.5MB/s, experiment with the final number