Windows 7 come out of sleep when I open remote desktop
You'll need to send a magic packet (For Wake ON LAN) through your router. Difficult because router's don't forward these by default, but there are workarounds as found here:
In order to wake up a computer from the Internet you need a Broadband connection with a Router connected to the Modem that keeps your connection alive (you need a Router even if you have Static IP).
Waking Up the computer from remote is done by sending the magic packet through the Internet using your Internet IP address, and the MAC number of the computer that you intend to Wake Up.
If you do not know your IP address:
Link to: How I find my Computer/Server Internet address from remote location.
You have to prepare the system for Wake Up Over the Internet.
Open a Port thought the Router, and the Software Firewall (use high port number so it will not conflict with any other port, 5850 is a good example).
Assign the port to the internal IP of the computer that you want to WOL (you can use the port only for one computer).
Get this Utility it let you define a port for WOL.
Link to: Wake on LAN for Windows Graphical User Interface (WOL GUI)
Take with you a copy of the WOL GUI, and write down the MAC number. In the remote location start WOL GUI and type in your MAC number, Type in the Internet address (Internet IP) type in the port number that you left Open. Click on Wake me Up and it should work.
The utility:
The magic packet GUI utility is freeware.
You can also use a hotkey to wake it along with the command line version of Wake On LAN:
The Syntax:
C:\path\to\wolcmd.exe [Mac address] [IP address] [Subnet mask] [port number]
Making things easier:
- Download AutoHotkey
- Use this script:
!w::Run, C:\wolcmd.exe 009027a324fe 195.188.159.20 255.255.255.0 8900
- Alt + w will wake the remote computer
modify the script accordingly so the path points to the wolcmd.exe
executable and the MAC, IP, and subnet are correct.
Improving on John Sibly's answer... if in windows you can avoid C# code by using the "timeout" cmd as below.
ECHO OFF
CLS
WolCmd.exe MAC_OF_NIC IP_ADDR MASK 7
timeout 10
ECHO Starting remote desktop connection
start mstsc.exe mycomputer.rdp
See this answer on StackOverflow for more option regarding the sleep section of the .cmd file: https://stackoverflow.com/questions/4317020/windows-batch-sleep
Remote Desktop does not have any built-in remote wake-up capability.
You may be able to configure your network card to wake up on any packet. However, this will probably not work like you intended - as it won't discriminate between your remote desktop connection attempt and someone just scanning your network or a latent packet from a service you were using.
For now, you will probably have to settle with a two-step process: 1) wake the computer with one application, 2) Connect via remote desktop.