Sleepwalker v3.1 [17 Nov 2016] - by Dominic
Description
This Windows program (batch file) can wake up a remote Windows 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 http://sed.sourceforge.net/grabbag/ssed/. wolcmd.exe is by Depicus and can be obtained directly from https://www.depicus.com/wake-on-lan/wake-on-lan-cmd.aspx. portqry.exe is by Microsoft and you can read about it and download it at https://support.microsoft.com/kb/310099. ]
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
Optional Variables
mac - mac id of remote machine, if missing this program is just a way to start Remote Desktop
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 255.255.255.255
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
License
Copyright © 2020 Dominic Raferd. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://www.apache.org/licenses/LICENSE-2.0. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Changelog
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
Donation
I have provided this software free gratis and for nothing. If you would like to thank me with a contribution, please let me know and I will send you a link. Thank you!
My Other Sites
- TimeDicer - Onsite/offsite data backup for Windows (uses rdiff-backup)
- Finding a 4D Backup Solution
- Web Scraping How To - extracting data from web 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 on a Raspberry Pi, and many can run under Windows using Windows Subsystem for Linux (WSL) or Cygwin. Email me if you have problems or questions, or if you think I could help with a programming requirement.
Backup Utilities
- TimeDicer - Onsite/offsite data backup for Windows (uses rdiff-backup) [ GNU/Linux & MS Windows©: 2008-20 ]
- rdiff-backup-regress - GNU/Linux script to regress an rdiff-backup archive. [ GNU/Linux: 2012-16 ]
Debian/Ubuntu kernel and LVM Utilities
- kernel-remove - GNU/Linux script to list the installed GNU/Linux kernels in a Debian-based distro (e.g. Ubuntu), and can be used to remove an unwanted kernel and related packages, updating grub appropriately. [ GNU/Linux-Debian/Ubuntu: 2010-22 ]
- lvm-usage - GNU/Linux script to show available disk space and how it is used; run as cron job to warn if usage is above a set percentage. Provides additional information if LVM is in use. [ GNU/Linux: 2012-21 ]
- lvm-delete-snapshot - GNU/Linux script to remove LVM snapshot that has been left over by another process. [ GNU/Linux: 2012-21 ]
- netnames - GNU/Linux script shows current name, biosdevname and 'predictable name' of network device - helps with network device name scheme migration. [ GNU/Linux-Debian/Ubuntu: 2020-20 ]
- lv-convert2cache - GNU/Linux script to convert an existing LV into a cache LV using a smaller faster device as a cache. [ GNU/Linux: 2022-22 ]
Dellmont - VoIP and Mobile Phone Account Utilities
- dellmont-credit-checker - GNU/Linux script to check credit balance on many Dellmont / Finarea / Betamax portals such as voicetrading.com and voipdiscount.com. [ GNU/Linux: 2008-19 ]
- sms-sender - GNU/Linux script to send text messages using Dellmont’s voicetrading.com. [ GNU/Linux: 2012-18 ]
- get-vt-cdrs - GNU/Linux script to download CDRs (call detail records) from Dellmont’s voicetrading.com or voippro.com. [ GNU/Linux: 2010-19 ]
- saynoto0870 - For UK, a GNU/Linux script which performs automated lookup of the www.saynoto0870.com database, finding cheap or free geographic number replacements for expensive non-geographic (087* or 084*) numbers. [ GNU/Linux: 2012-12 ]
Miscellaneous Programs
- sleepwalker - Windows© program which can be run from a remote machine to 'wake up' a Windows© machine behind a router, wait for it to start and then initiate Remote Desktop session. [MS Windows©: 2008-16]
- relay-enforcer - GNU/Linux program enabling a postfix-based mail server relaying to Gmail to act on reports from Gmail about blocked emails. [ GNU/Linux: 2016-22 ]
- bind9-resolved-switch - GNU/Linux program for switching permanently between using bind9 or systemd-resolved as the system DNS resolver. [ GNU/Linux: 2016-22 ]
- unlock - GNU/Linux remote program for easy entering of decrypt passphrase on a remote machine which has root dm-crypt+LUKS. [ GNU/Linux: 2017-18 ]
- wifi-updown - GNU/Linux program to take down wifi interface if there is a working wired interface (or restore wifi if not). [ GNU/Linux: 2018-22 ]
- routefix - GNU/Linux program to restore a default ip traffic route if there is none such (e.g. after running wifi-updown). [ GNU/Linux: 2018-19 ]
- pdf-compress - GNU/Linux program to create smaller b/w pdf file from an original large pdf file, especially when original resulted from scanning. [ GNU/Linux: 2016-22 ]
- form-extractor - GNU/Linux program to extract form tags from a web page or downloaded file. [ GNU/Linux: 2012-20 ]
- mythic-dns-sync - GNU/Linux program to update DNS record at mythic-beasts.com to match local external ip. [ GNU/Linux: 2016-22 ]
- tiny-device-monitor - GNU/Linux program to test webpages (including password-protected) or machines to check they are live; use as a cron job for your own websites, for hardware presenting a webpage, or for any machines with a presence on your local LAN or on the internet. [ GNU/Linux: 2009-22 ]
- dutree - GNU/Linux program to show a tree-style list of files and directories at the specified location and greater than the specified size (default 1GB). [ GNU/Linux: 2012-20 ]
- Accounts - Multi-business multi-currency accounting software, uses Access [MS Windows©: 1996-2022]
- Rents Program - Residential lettings/landlord front office program, with many special features for UK market [MS Windows©: 1991-2022]
If you have a comment or question, please email me, thank you.