Manage Learn to apply best practices and optimize your operations.

Prioritize Win10 NICs Using PowerShell

In most cases, Windows prioritizes wired Internet connections over wireless ones. This makes sense for all kinds of reasons. Wired connections are less susceptible to interference, and are often faster than wireless ones. Nevertheless, you can easily prioritize Win10 NICs using PowerShell. To view your current priority settings, first run the Get-NetIPInterface cmdlet. Here’s what that output looks like on my production PC, after I plug in a USB TrendNET 802.11ac device to complement its built-in Intel I211 GbE NIC.

In this output, my wired connection named Ethernet (ifIndex=25). Wireless is named Wi-Fi2 (ifIndex=38).
[Click image to see full-sized view.]

How to Prioritize Win10 NICs Using PowerShell

In the PowerShell world, where there’s a Get cmdlet, there’s usually a complementary Set cmdlet as well. Thus, we’ll use the Set-NetIPInterface to reset priorities here. In this case, I’ll favor wired Ethernet over wireless. To that end, I’ll set the InterfaceMetric to 50 for wired, and 25 for wireless. Here’s how:

Using the interface index value, I set Ethernet to 50 and Wi-Fi 2 to 25.
[Click image to see full-sized view.]

Note: The OS actually calculates NIC priority using the sum of the routing metric plus the value of the interface metric. But because routing metrics for local wired and wireless NICs in the same PC are usually close, if not identical, I won’t go further into those details here. By varying the interface metric more or less, you can adjust those priorities to your liking.

I find this capability quite helpful on laptops I use at home. When I want to upgrade the OS, or download something big, I’ll plug in a USB GbE dongle. With wired distinctly favored over wireless, I can do this on the fly, and expect the download to switch over to the faster wired link pretty quickly. Good stuff!