How to set an Ethernet Connection as Metered to control Updates, Drivers, Store and others

For some reason Microsoft has not provided a straightforward way to set Ethernet (LAN) connections as Metered. Microsoft does not seem to realise that for many people their broadband is capped/quota'ed/data-limited so needs to be treated as metered just like mobile/cellular data or WiFi hotspots. So you will want your Ethernet connection set to Metered, especially now that Windows 10 will download anything and everything without asking permission.

This applies to Windows Update, Store updates, Driver updates, Optional Features, and Windows Defender.

Even if you're not metered, you might want to use this setting to control updates.

It is in fact possible to set an Ethernet connection to Metered. But it requires a direct update to the Registry, to a key that Microsoft has not clearly documented. If you are not happy doing this, then don't. It requires you to change the permissions on the relevant key. Again, if you're not happy doing this, then don't. Make a System Restore point first so that you can recover from any problems.

*** See Edit below for a script to do this ***

The key is

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\DefaultMediaCost]

There are entries under it for 3G, 4G, Default, Ethernet and Wifi. The normal settings for 3G and 4G are 2. For Ethernet and Wifi (and Default) it is 1. 2 means metered, 1 means not metered. So to make Ethernet Metered, the value needs to be changed from 1 to 2.

The key is protected: to change the values you will need to use RMB/Permissions/Advanced to change its owner to Administrators or your own username and then give said user Full Control.

To make sure that all connections are metered you can set them all to Metered as in this Registry extract:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\DefaultMediaCost]

Just to repeat, if you're not used to updating the Registry then don't. But keep pushing this issue with Microsoft so that they provide a user interface for it as there is for WiFi. Join the Insider program and post feedback about it.

With this set up, Windows Update will notify you that it can't download updates. It will offer you an option to override this if you want. If (as if often the case) you get unlimited downloads overnight, then you can wait until then to push the download button. This applies to the Store as well. For Drivers, you can turn off the switch preventing downloads over metered connections (under Settings/Devices). But (AFAICS) for Optional Features there is no override, if you want to install one of them the connection must be set back to Unmetered ( = 1 ), and then reboot.

You can update Defender separately by going to Settings/Update/Defender/Use Defender and push the Update button. So you can just update Defender without needing to collect a major set of updates.

****** EDIT 28 Mar 2016 - BATCH FILE UPDATE ******

I have just recently found the command-line tool that updates permissions in the Registry, and so allows this all to be done in a script/batch file without directly opening up the registry. This is a powerful tool so needs to be used with care. I have checked out my script as carefully as possible, but anyone choosing to use it must take registry backups and other due care.

The tool is "SubInACL" which can be downloaded from here (official Microsoft site):

Download and run the package to install it into C:\Program Files (x86)\Windows Resource Kits\Tools

Copy/paste this script into a text file and save it as  MediaCost.cmd  somewhere convenient (e.g. Desktop)


rem run from install directory: for 32-bit windows remove the " (x86)" suffix
cd /d C:\Program Files (x86)\Windows Resource Kits\Tools\

rem change owner to Administrators
rem should report: Done:        1, Modified        1, Failed        0, Syntax errors        0
subinacl /subkeyreg "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\DefaultMediaCost" /setowner=administrators

rem give Administrators full permission
rem should report: Done:        1, Modified        1, Failed        0, Syntax errors        0
subinacl /subkeyreg "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\DefaultMediaCost" /grant=administrators=f

rem change settings to 2 = metered
rem each should report: The operation completed successfully.
reg ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\DefaultMediaCost" /v Ethernet /t REG_DWORD /d 2 /f
reg ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\DefaultMediaCost" /v Default /t REG_DWORD /d 2 /f
reg ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\DefaultMediaCost" /v WiFi /t REG_DWORD /d 2 /f

rem check completed OK

rem change the "/d 2" parameters to "/d 1" to restore the standard unmetered state if needed.


Right-click and Run as Administrator.

I've commented the expected results, and left a "pause" at the end so that they can be seen before the command window closes.

With this I can just run the script every time I get a fresh build from the Insider program, which is happening about weekly now.


Discussion Info

Last updated June 3, 2020 Views 64,894 Applies to:

* Please try a lower page number.

* Please enter only numbers.

* Please try a lower page number.

* Please enter only numbers.

Dumb, Microsoft. Really, really dumb.

If this works, then I might persevere with Windows 10. Otherwise, it's back to 7 for me.

Quick question,   I understand that this will only work for updates not patches, correct? 
Not sure I get the difference, which patches do not come through Windows Update? Do you mean preview builds - it works for them, they come through Windows Update.
I had read that priority  security updates would still be download.
I'd missed that. We probably just have to live with it, and hope it's not too big a hit on the data allowances.

Possible workarounds here:

I'm wondering about a startup script to disable updates before Windows has the chance to do anything stupid, plus a link to another script to enable updates at my convenience.

I have a different situation that needs updates  control.

The only limit to downloads is the speed of my internet connection - but some of the software I run must be allowed to run for long periods with no interruptions for installing updates.  I have seen over 3 months required.

Also, this software requires my graphics  card drivers to come from Nvidia, not from Microsoft.

Ah yes, that will do. I'd turned the update service back on as it only controls updates, not the Store etc., but taking both steps are needed to stop everything.

I am in fact toggling the registry by script, but reluctant to publish in case it's not robust enough for all. You still have to prompt for updates by pushing the button in Settings as they aren't kicked off just by updating the registry. If it restarts the service that might do it, if you try please report back. I'm leaving updates firmly off for now as there's another 2 or 3 GB of preview build out there that I don't want until next month's allowance comes on.

Won't disabling the Windows Update service do the same thing?     Normally in manual mode, It's fired by a trigger but not sure where that trigger is  coming from, starting the service.   If you know of a script that can move a service from disabled to start,  could solve the problem by attaching it to task scheduler.   That would solve my problem, since I have no data cap from 12 midnight to 5 am.


These could be put into batch files or perhaps scheduled.

To stop Automatic updates:
net stop wuauserv

To start automatic updates:
net start wuauserv

* Please try a lower page number.

* Please enter only numbers.

* Please try a lower page number.

* Please enter only numbers.