Windows 8 doesn't automatically join Wi-Fi network if Ethernet connection is active; router prevents Ethernet devices from seeing some Wi-Fi devices

In Windows 7, my laptop would automatically join both an Ethernet network and the Wi-Fi network in my house (both going through the same router).

In Windows 8, if the Ethernet connection is present, it doesn't join the Wi-Fi network at all. The reason I noticed this is that if Wi-Fi isn't active, I don't see my AirPlay speakers. My wireless printer is also unavailable until I manually connect to Wi-Fi.

To recap: When I turn on my computer and it's connected to Ethernet, this is what my Win8 network sidebar looks like (Ethernet connected, but not Wi-Fi).

Screenshot - ethernet but no wi-fi

When I click the Caudil_FIOS Wi-Fi network, this is what I see (note that "Connect automatically" is always checked.)

Screenshot - connecting to wi-fi

After I click connect, it looks like this:

Screenshot - ethernet and wi-fi

Once I'm there, everything works great. In Windows 7, this all happened automatically on startup. In Windows 8, I have to do this dance manually every time I restart the computer. In fact, all it takes is for me to disconnect then reconnect Ethernet for it to disconnect again from Wi-Fi.

I would prefer for it to join both networks automatically on startup, the way it did in Windows 7. Is there a way to make this happen?

Alternatively - and it might make more sense to post this as a different question - is there a way to ensure that devices connected to Ethernet see the exact same thing as devices connected to Wi-Fi? In principle it doesn't make sense that my router is treating Ethernet and Wi-Fi as two separate networks, with no visibility between them.


Solution 1:

The Windows 8 problem seems unsolvable at the moment for of lack of information.

All I have been able to find was that in Windows 8, Microsoft decided to rewrite the part relating to choosing a network, making it much more "intelligent" and automatic. In your case it is probably much too intelligent to work as you would like. It is probably forcing you to use only one network at a time.

As regarding the router, many threads mention the following solution for sharing between wired and wireless:

  1. Log into your router.
  2. Click the Advanced icon
  3. Click Yes
  4. Click on the IGMP Proxy
  5. Select Disable
  6. Click Apply

If this doesn't work, then the question is whether the wired and wireless networks are really separate or not. It seems like your router uses the IP segment addresses of 192.168.1.x, so the question is whether devices connected via both wired and wireless all get IP addresses with this prefix. If not, maybe using fixed IP addresses for wireless devices, all within this segment, and disabling the router function of DHCP Server, might fix this.

Solution 2:

We needed to fix this for an application here at work. Here's what I did:

On Windows 8 Home 64:

  1. Run Regedit.
  2. Navigate to: HKLM\Software\Policies\Microsoft\Windows\WcmSvc\
  3. Does the GroupPolicy subkey exist? If not right-click New->Key and create it.
  4. Now inside of HKLM\Software\Policies\Microsoft\Windows\WcmSvc\GroupPolicy right-click inside the right pane and select New->DWORD. Name it fMinimizeConnections
  5. Leave the default value zero so that the policy is disabled. You shouldn't HAVE to reboot, but you may.
  6. After that your wireless connections that are set to automatically connect will do so even with a LAN plugged in. Obviously if you are on a domain your domain admin can override this local policy.

Or you may config this settings via Group Policy Editor:

Computer Configuration -> Administrative Templates -> Network -> Windows Connection Manager -> "Minimize the number of simultaneous connections to the Internet or a Windows Domain" to "Disable".

Explanation? From Microsoft's Group Policy Settings spreadsheet:

This policy setting prevents computers from establishing multiple simultaneous connections to either the Internet or to a Windows domain. By default, when this policy setting value is Not Configured, it is enabled. If this policy setting is enabled, when the computer has at least one active connection to the Internet, a new automatic connection attempt to the Internet is blocked. When the computer has at least one active connection to a Windows domain, a new automatic connection to the same Windows domain is also blocked. Additional manual connection attempts by users to the Internet or to a Windows domain are not blocked by this policy setting. In circumstances where there are multiple simultaneous connections to either the Internet or to a Windows domain, Windows disconnects the less preferred connection when the amount of network traffic over the less preferred connection drops below a certain threshold. For example, when a computer is connected to Internet using a Wi-Fi connection and the user plugs in to an Ethernet network, network traffic is routed through the faster Ethernet connection, and the Wi-Fi traffic diminishes. Windows detects this circumstance and responds by disconnecting the Wi-Fi connection. If this policy setting is disabled, multiple simultaneous connections to the Internet, to a Windows domain, or to both are allowed. If this policy setting value is Not Configured, the default policy setting is enabled. This is different than enabling the policy setting with Group Policy, however - when the policy setting is Not Configured, the policy setting is configurable on the local computer. When the policy setting is applied with Group Policy, it is not configurable locally. With the policy setting value of Not Configured, new automatic connection attempts are not made, and less preferred connections are disconnected.

Solution 3:

Here is a workaround for the windows-8 part of the problem, i.e., that windows 8 does not automatically reconnect via Wifi if it is already connected via LAN (possibly to the same network):

  1. Open task scheduler (windows+X -> Computer management -> System Tools -> Task Scheduler)
  2. Click Create Task...
  3. On the general tab, give the task a name, such as autoreconnect wlan and select Run whether user is logged on or not
  4. On the Triggers tab, select New..., then next to Begin the task, select At startup. Click ok.
  5. Still on the Triggers tab, select New... again, and select On an event in the dropdown. Select Basic, then next to Log: select Microsoft-Windows-WLAN-AutoConfig/Operational, next to Source: select WLAN-AutoConfig and next to Event ID: type 8003 (for the disconnection event). Click OK.
  6. On the Actions tab, click New..., then next to Action: select Start a program. In the program/script box, type netsh and in the Add arguments (optional): box type wlan connect name="XYZnameofyourwlan". Click OK.
  7. On the Conditions tab, I have deselected the Start the task only if the computer is on AC power. Click OK.
  8. On the Settings tab, I have set it to Run task as soon as possible after a scheduled start is missed, If the task fails, restart every 1 minute, Attempt to restart up to: 999 times. Click OK.