Windows Wireless Zero Configuration: Five Steps to Sanity
December 23, 2005
Windows wants to help you get on a Wi-Fi network, but many times, it just gets in the way. Here's how to work around, if not bypass, XP's WLAN connection software.
With the release of Windows XP, Microsoft tried to make configuring and connecting to wireless networks easy for everyone. They partially succeeded. The Wireless Zero Configuration service is the brains behind managing wireless connections with Windows. Unfortunately, WZC does not always make sane decisions, which can cause sensations of frustration and annoyance, not to mention itching and burning.
Access Point Whack-a-Mole
In some spaces where wireless access is available, multiple access points are used to blanket a large area. Frequently these access points all broadcast the same network name, or SSID. Wireless Zero Configuration is programmed to assume this is the case so, when it sees more than one AP with the same SSID, it automatically connects to the one with the strongest signal.
Of course, if you manage your own wireless network, you can simply change its SSID to a unique name. But maybe youre in a public space, or a zone managed by your workplace or a provider broadcasting an SSID of their choosing.
WZC will not distinguish access points with the same SSID. They appear only as one in Windows Available Wireless Networks menu. So you cant force Windows to connect to a particular AP.
In this troubling scenario, the only solution that might work is to ditch WZC in favor of a third-party wireless client manager. Most wireless network adapters, whether external or internal, include a connection manager provided by the vendor Linksys/Cisco, Orinoco/Proxim, Netgear, etc. Typically you cant use both your vendors connection manger and WZC at the same time. Skip ahead to Ditching WZC for instructions on disabling the Windows connection manager.
Unfortunately, not all vendor-provided client managers solve this particular scenario, either. Unlike WZC, they may display multiple APs which are broadcasting the same SSID. But like WZC, they may not allow for forcing an association with one. In that case, if there is a workable solution out there, wed like to know!
Hidden SSID Syndrome
By default, most access points broadcast their SSID. This allows your connection manager to see their presence and tell you, "Hey, buddy: this access point is in range." Some people prefer to hide their SSID by configuring their access point not to broadcast. In this case, you manually set the SSID in your connection manager to link the connection.
The problem with Wireless Zero Configuration occurs if a second AP is also within range. If that AP is broadcasting its SSID, WZC will attempt to connect to it even if youve told it that your AP with the hidden SSID is your preferred network. Whether or not WZC can establish a connection with the more promiscuous AP, its attempts can cause instability in your link.
Disabling SSID broadcasting is sometimes suggested as a security precaution. The theory is that your AP wont advertise its presence to nearby snoops. In fact, this doesnt provide much security at all. Whether or not it broadcasts its SSID, the AP includes the SSID in transmission packets which are easily sniffed out. In reality, disabling your SSID is no more secure than taping a broom handle across your steering wheel, hoping that thieves will mistake it for The Club. Secure your access point with WPA, or a MAC address filter. Enable SSID broadcasting, and WZC will treat you better.
Of course, the AP with the hidden SSID may not be yours to configure. If you cant manage the access point yourself, a kludgier solution is to knock WZC senseless. Skip ahead to The WZC Two-Step below for details on how to disable WZC after it has established the connection.
Whoosawhatsit? 802.1x Authentication
Many home and small organizations secure their wireless networks using WEP or, preferably, WPA. But some institutions use the enterprise-oriented IEEE 802.1X authentication framework, which Windows XP supports natively.
Unfortunately, if you dont use 802.1X on your wireless network, Wireless Zero Configuration may interrupt your connection when it periodically attempts to perform 802.1X authentication against your associated access point.
To prevent interruptions in connectivity, disable 802.1X authentication for your wireless network adapter. In Windows, open the Network Connections control panel. Locate your wireless adapter, double-click it, and choose Properties and then Wireless Networks. You should see a tab labeled Authentication, in which you can disable Enable IEEE 802.1X Authentication for this network.
Fortunately, some vendors provide their own wireless connection management utilities which can replace Microsofts Wireless Zero Configuration. Unfortunately, an increasing number of wireless adapters rely on WZC.
Netgear includes their own connection manager, and the ORiNOCO/Proxim connection manager will work with a variety of wireless adapters. Linksys includes their WLAN Monitor with their install CD, but it will actually refuse to install on a system with WZC active.
Some users have had success using the third-party Boingo connection manager, available from free download sites. The Boingo manager is designed to promote connecting to the Boingo wireless network, but it can also manage local wireless connections for some adapters. JiWire provides connection software with its SpotLock security (in fact, you can use the connection part without using the SpotLock hosted VPN at all).
Before using any third-party connection manager, you should first disable WZC. Open the Administrative Tools control panel and choose Services. Scroll down the list of services, and double-click Wireless Zero Configuration. Click Stop to end the service now. Select Manual (or Disabled) for the Startup Type.
Your wireless adapter is now freed from Windows, but you will need to install another connection manager, preferably from your adapter vendor, to connect to a network.
For Linksys owners, several procedures are described on Web message boards (such as this one and this one) for forcing Linksys superior WLAN Monitor to install on XP systems. Some involve only partial installs of the Linksys software.
The WZC Two-Step
You may find yourself forced to stick with WZC. Perhaps no vendor connection managers are available for your wireless adapter. Like the 802.1X authentication problem, WZC is known to do stuff which can interrupt a perfectly functioning connection. Every few minutes, WZC likes to see if anything better is out there, and it is not always clear what rationale, if any, it uses to make its decisions.
The most common sign that WZC went looking for a better deal is when Windows pops up its friendly taskbar balloon announcing One or more wireless networks is available even though youre already connected to a network and surfing happily, thank you very much. Or, you may see an equally helpful balloon touting that Windows has successfully connected to such-and-such a network even though youre already connected to that network and
Unfortunately, you may experience instability in your connection when WZC goes roaming. A common (but certainly kludgy) solution is to disable WZC after it has successfully established a connection to your network.
You can do this using the Administrative Tools/Services control panel as described in Ditching WZC above, but that procedure can quickly grow tiresome.
As an alternative, follow the Ditching WZC procedure, but set its Startup Type to automatic. Now WZC will connect when your system boots.
Create a batch file (a plain text file) containing just the command:
C:\windows\system32\net.exe stop wzcsvc
Save the batch file, or a shortcut to it, on your desktop. Give it a descriptive name like Kill WZC Now. Once your wireless connection is established on boot, double-click the shortcut. WZC will go away and bother you no more during this session. Of course, if you move to a new wireless network, youll need to relaunch WZC. You can reboot, or create a companion shortcut:
C:\windows\system32\net.exe start wzcsvc
I said it was kludgy. But it works. Got a better solution? Let us know in the forums.