Our end users may complain about “slow WiFi”, but as network engineers we know that an interconnected system of devices, links, and applications all work together to provide wireless data services. From applications running on end hosts to device drivers to wireless radios to APs to cabling to access, distro, and core switches, to authentication systems, certificate authorities, DHCP & DNS servers, WAN accelerators, routers, backhaul services, to content providers — and of course the wireless medium itself, it can be tricky to pinpoint the source of user pain.
In this post, I’d like to focus on a handy diagnostic tool available at the Windows CLI: the ‘netsh wlan’ commands. I’ll cover some of the options I’ve found most useful, but by all means explore more for yourself using the ? help option.
Before we delve into some details, I’d like to share a way to get a variety of data with one quick command: ‘netsh wlan show all’. Depending on your environment, the amount of output may exceed the command prompt window scroll buffer. For this reason, it’s useful to pipe output directly to a text file, as shown in the example below:
set SAVESTAMP=%SAVESTAMP: =%
netsh wlan show all > %USERPROFILE%\desktop\WiFiDiag_%SAVESTAMP%.txt
route print >> %USERPROFILE%\desktop\WiFiDiag_%SAVESTAMP%.txt
When troubleshooting client issues, one handy option is to drop these commands in a .bat file and send it directly to an end user. They can run the bat file and email back the results. Note that some corporate email systems flag .bat files as malicious attachments and remove them from emails. You can usually get around this by simply giving the file a .txt extension. Give the user a few simple bullets explaining how to save, rename, and run the file.
Credit for this idea goes to several of my colleagues at a previous gig (Adept). I made a couple changes to the file naming logic per my own preferences, but that’s about it.
If all goes as planned, the command should plop a tidy, labeled text file right on your desktop.
In Part 2, we’ll look at some of the output.