Automatic Wi-Fi connectivity checker & reconnect script

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.

What you need to complete this:

1) SSID of Wireless Network (CaSe Sensitive)

C:\>;netsh wlan show networks

2) Wireless Profile Name (CaSe Sensitive)

C:\>;netsh wlan show profile

3) Name of Wireless Interface (CaSe Sensitive)
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”
TIMEOUT 5
netsh wlan connect ssid=”My Wireless Network” Name=”My Wireless Network” Interface=”Wireless Network Connection”
:end

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

restartwireless.bat

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.

4 thoughts on “Automatic Wi-Fi connectivity checker & reconnect script

    • Yes, I originally used this on Windows XP but it involves using the Devcon command-line utility, still easy to setup. I’ll find the script/file and create a new post with a link from this article on how to set this up on XP.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>