I often find myself using various remote access tools to control kiosk and digital signage displays around the country, many of these devices are connected via wireless cards. Assuming the router is up, it can, from time to time be necessary to restart the wireless NIC, not an easy task to do if you’ve already lost connectivity. I first used this on Windows XP using the DevCon command-line utility, the script just pings Google and if the ping is successful nothing happens, if not it disconnects the WiFi connection, waits 5 seconds and attempts to reconnect.
This set of instructions is for Windows 7, I believe this would work in Windows 8 but I haven’t tested that, Windows XP instructions can be found in the comments, along with a URL to for the required files.
What you need to complete this:
For starters, you need a WiFi card, if you don’t have one integrated into your CPU here is a cheap wireless N card that’s compatible with more Windows flavors and works well, Medialink- 150Mbps Wireless N USB Adapter – XP / Vista / Windows 7 & 8 Compatible
1) SSID of Wireless Network (CaSe Sensitive)
C:\>;netsh wlan show networks
2) Wireless Profile Name (CaSe Sensitive)
C:\>;netsh wlan show profile
C:\>;netsh wlan show interfaces
Now with those three pieces of information you should be able to run the following command (remember these are CaSe Sensitive) my assumptions are:
1) your SSID name is: My Wireless Network
2) Your profile name is: My Wireless Network
3) Your interface is: Wireless Network Connection
C:\>;netsh wlan connect ssid=”My Wireless Network” Name=”My Wireless Network” Interface=”Wireless Network Connection”
If that works, move on to test the disconnect, if it doesn’t work you probably missed my four previous comments about these Interface/profile and SSID names being case sensitive.
C:\>;netsh wlan disconnect interface=”Wireless Network Connection”
Next you need to create the script, open notepad and add this text to the document
REM Restart Wireless Connection
REM Don’t restart if ping works.
ping -n 1 google.com
if %errorlevel% EQU 0 goto end
netsh wlan disconnect interface=”Wireless Network Connection”
netsh wlan connect ssid=”My Wireless Network” Name=”My Wireless Network” Interface=”Wireless Network Connection”
Save the document as restartwireless.bat (make sure you put the .bat otherwise you are just saving it as a text file and we need a batch)
It’s probably not a bad idea to open the command prompt, navigate to where you saved the new batch file and run it by typing
Make sure you test this both with you WLAN connected and disconnected to make sure it works both ways. Provided that works, all you need to do is schedule the script to run periodically using Windows Task Scheduler. You could have the script run every hour, or once a day, lots of settings you could tweak there, might want to make sure you run the task with elevated privileges in the task scheduler.