Sleepwalker v3.1 [17 Nov 2016] - by Dominic


This Windows program (batch file) can wake up a remote machine by sending a magic packet and then start a Remote Desktop connection to that machine. If your destination has dual-wan then it can try both connections & connect to the faster one.

All parameters are set by editing one line, normally the fourth line of the program. It uses wolcmd.exe, portqry.exe and ssed.exe, all of which are provided in the standard zip package and should be in the same location as this batch file. (If SET wakeport=0 is used - see optional variables below - then wolcmd.exe is not required, if SET remote2= is not used then ssed.exe is not required.)

[ ssed.exe is 'supersed', a version of sed for Windows which can be obtained directly from wolcmd.exe is by Depicus and can be obtained directly from portqry.exe is by Microsoft and you can read about it and download it at ]

To connect to machines behind a router on a different local network than the machine on which you are running SleepWalker (e.g. over the internet), or (perhaps) if the remote machine is on the same local network but is via one or more intermediate switches, you probably need to have opened or redirected ports on the router to point to the machines, and you probably also need, on the router, to have bound the machines' macs to an IP; this is so the router will allow a magic packet to pass from the internet to a sleeping machine. Some routers simply do not have this capability, in which case this program cannot help you, sorry. Your router must also respond to a ping from the internet.

The wakeport setting is not significant to the destination computer but it is usually needed by the router at the destination location to redirect the packet to the correct machine. In effect it identifies which machine the packet should be sent to; this is because most routers block broadcast packets sourced from the internet.

It is possible to change the default 3389 Remote Desktop port by a registry fix, but it is better, if your router supports it, to use the router to redirect from another high-numbered port to the local 3389 port; this is more flexible and means the open Remote Desktop connection is less obvious to port scanners.

Required Variables

remote - ip/dns name of remote machine to wake/run Remote Desktop

Required Variables for remote wake-up

mac - mac id of remote machine, if missing this program is just a way to start Remote Desktop

Optional Variables

name - appears on the header line of output (unless run with -q)
wakeport - default 9 (set to 0 to skip attempting to wake remote machine)
rdpport - default 3389 (set to 0 to skip launching Remote Desktop)
wakeip - default same as remote
remote2 - 2nd ip/dns name of machine (if remote destination has dual wan)
mask - default

Command line options

-q: no text unless cannot find wolcmd.exe or portqry.exe or there is some unexpected problem

Exit codes

0 on success, 1 on failure


3.1 [17 Nov 2016] - switch default wakeonlan port to 9 from 7 (so it works with Wireshark wol.mac/sync/passwd detection), also bugfix - previously in non-verbose mode it used port 7 regardless of setting

Download sleepwalker.bat

My Other Sites

My Programs

Here is a selection of some (other) programs I have written, most of which run from the command line (CLI), are freely available and can be obtained by clicking on the links. Dependencies are shown and while in most cases written for a conventional Linux server, they should run even on a Raspberry Pi, and many can run under Windows using Cygwin. Email me if you have problems or questions, or if you think I could help with a programming requirement.

Backup Utilities

Debian/Ubuntu kernel and LVM Utilities

Dellmont / Three / Giffgaff / Vodafone - VoIP and Mobile Phone Account Utilities

Miscellaneous Programs


No comments yet
Hide my email
Powered by Scriptsmill Comments Script