Mobile internet connections are automatically set to metered, and you can configure Wi-Fi connections as metered in Windows 10 network settings. The latter makes sense when you connect to the internet via mobile Wi-Fi router. But why would want to set an Ethernet connection to metered?

First of all, in my view, the assumption that you always have plenty of bandwidth if you connect via Ethernet is wrong. If you travel to developing countries or remote areas where good internet bandwidth is still a problem, you know what I mean. If you have to download a huge file, you want to make sure you get all the available network speed, and you don’t want to compete with Windows Update and other Windows services for bandwidth.

There also are cases where Windows thinks it uses an Ethernet connection, but actually, it connects via a mobile internet connection—for instance, when you run a virtual machine on a laptop connected via a mobile Wi-Fi router. Many times, Windows Update consumed my whole daily data plan within a couple of minutes on a VM, where I would restore a snapshot anyway, and all the downloaded updates were lost. This can be quite annoying, and it is the reason I constantly seek options to prevent Windows from automatically downloading stuff I don’t really need now.

The advantage of setting an Ethernet connection as metered instead of disabling Windows Update is that you also knock off other bandwidth-consuming services, such as automatic app updates, peer-to-peer uploading of updates, and tile updates. In addition, some third-party Windows and desktop apps recognize metered connections.

Unfortunately, the procedure to set an Ethernet connection as metered is quite longwinded, because, by default, Administrators don’t have the right to change the corresponding Registry key. For the sake of completeness, I show you how to do it with the Registry editor. But if you want to avoid all this click-click, you can simply run the PowerShell script below.

  1. Run Registry editor (Windows key + R, type regedit, click OK)
  2. Navigate to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\DefaultMediaCost
  3. Right click DefaultMediaCost, select Permissions, and click Advanced.
  4. Click Change to assign a different owner for the key.
  5. Type Administrators in the form field and click OK.

Check Replace owner on subcontainers and objects and click OK.

Select the Administrators group, give it Full Control, and click OK.

Double-click the Ethernet key and set its value to 2.

You can set a Favorite in the Registry editor, if you want to change the key quickly later. To reset the Ethernet connection as not metered, you have to change the value to 1.

All right, this is really a lot of click-click. If you have to do this often on different machines, you can just run the PowerShell script below.

I found it amazingly complicated to change the owner of a Registry key with PowerShell. I used Remko Weijnen’s method. If you know a simpler way, please post a comment below.

After I assign the Administrators group as the owner of the DefaultMediaCost key, I give the group full control permissions.

In the last part of the script, I check to see if the Ethernet connection is set as metered or not and then ask the user whether the current configuration should be changed.