Windows 7 sort du sommeil lorsque j'ouvre le bureau à distance

24

Existe-t-il un moyen de faire sortir automatiquement une machine Windows 7 lorsque j'essaie de me connecter avec Remote Desktop?

L'option d'économie d'énergie de la machine à laquelle je veux me connecter (imposée par la stratégie de groupe, je crois) consiste à dormir après 30 minutes, ce qui signifie que je dois soit marcher physiquement pour appuyer sur une touche, soit déclencher un réveil séparé. Outil LAN pour le sortir du mode veille.

Je serais bien si le client Connexion Bureau à distance envoyait automatiquement le paquet Wake-on-LAN - est-ce possible?

John Sibly
la source
2
Les nouvelles cartes mères n'ont-elles pas cette fonctionnalité?
Dalin Seivewright
@DalinSeivewright Oui, ils le font - ma nouvelle machine de développement le fait automatiquement maintenant :)
John Sibly

Réponses:

13

Vous devrez envoyer un paquet magique (pour Wake ON LAN) via votre routeur. Difficile car le routeur ne les transmet pas par défaut, mais il existe des solutions de contournement comme ici :

Pour réveiller un ordinateur d'Internet, vous avez besoin d'une connexion haut débit avec un routeur connecté au modem qui maintient votre connexion active (vous avez besoin d'un routeur même si vous avez une adresse IP statique).

Le réveil de l'ordinateur à distance se fait en envoyant le paquet magique via Internet en utilisant votre adresse IP Internet et le numéro MAC de l'ordinateur que vous avez l'intention de réveiller.

Si vous ne connaissez pas votre adresse IP:

Lien vers: Comment trouver l'adresse Internet de mon ordinateur / serveur à distance.

Vous devez préparer le système pour le réveil sur Internet.

Ouvrez un port via le routeur et le pare-feu logiciel (utilisez un numéro de port élevé afin qu'il n'entre pas en conflit avec un autre port, 5850 en est un bon exemple).

Attribuez le port à l'IP interne de l'ordinateur que vous souhaitez WOL (vous ne pouvez utiliser le port que pour un seul ordinateur).

Obtenez cet utilitaire qui vous permet de définir un port pour WOL.

Lien vers: Wake on LAN pour l'interface utilisateur graphique Windows (WOL GUI)

Emportez avec vous une copie de l'interface graphique WOL et notez le numéro MAC. Dans l'emplacement distant, démarrez WOL GUI et saisissez votre numéro MAC. Tapez l'adresse Internet (IP Internet), saisissez le numéro de port que vous avez laissé ouvert. Cliquez sur Wake me Up et ça devrait marcher.

L'utilité:

texte alternatif

L'utilitaire GUI du paquet magique est un freeware.


Vous pouvez également utiliser un raccourci clavier pour le réactiver avec la version en ligne de commande de Wake On LAN :

La syntaxe:

C:\path\to\wolcmd.exe [Mac address] [IP address] [Subnet mask] [port number]

Simplifier les choses:

! w :: Exécuter, C: \ wolcmd.exe 009027a324fe 195.188.159.20 255.255.255.0 8900
  • Alt+ wréveillera l'ordinateur distant

modifiez le script en conséquence pour que le chemin pointe vers l' wolcmd.exeexécutable et que le MAC, l'IP et le sous-réseau soient corrects.

John T
la source
Salut John - oui, c'est l'outil que je dois actuellement utiliser si je veux sortir cet ordinateur du sommeil. Je me demandais s'il était possible pour Remote Desktop de le faire automatiquement?
John Sibly,
1
En mode natif, je ne connais pas de moyen de le faire automatiquement, et si j'utilise AutoHotkey pour le réveiller automatiquement lorsque vous ouvrez le bureau à distance, l'ouverture de RDC pour une raison différente réveillera toujours votre ordinateur personnel dont vous ne voulez pas, alors j'ai modifié ma réponse pour expliquer comment définir un raccourci clavier pour réveiller votre ordinateur distant.
John T
1
La réponse de John T est brillante. Tout ce que je peux ajouter, c'est que j'ai créé un raccourci sur mon bureau avec: wol -i 192.168.1.61 -p 00: 24: 8C: 1F: 90: 23 wol 00: 24: 8C: 1F: 90: 23 (Can ' Je ne me souviens pas pourquoi j'ai ajouté deux commandes similaires) Ensuite, j'attribue le raccourci à un combo clavier, par exemple Ctrl + Maj + J Fonctionne bien pour une machine de bureau. Mais aux prises avec le nic de mon ordinateur portable.
Guy Thomas
Merci pour tous les commentaires. La version en ligne de commande semble très prometteuse - je pense que la solution (pour moi au moins) est de créer un fichier batch pour: appeler l'outil de ligne de commande, attendre environ 5 secondes et lancer "mstsc.exe mycomputer.rdp"
John Sibly
3

Amélioration de la réponse de John Sibly ... si dans Windows, vous pouvez éviter le code C # en utilisant la cmd "timeout" comme ci-dessous.

ECHO OFF
CLS
WolCmd.exe MAC_OF_NIC IP_ADDR MASK 7
timeout 10
ECHO Starting remote desktop connection
start mstsc.exe mycomputer.rdp

Voir cette réponse sur StackOverflow pour plus d'options concernant la section sommeil du fichier .cmd: /programming/4317020/windows-batch-sleep

Dennis
la source
Commande utile - je dois m'en souvenir pour les futurs fichiers batch :)
John Sibly
2

Remote Desktop n'a pas de fonction de réveil à distance intégrée.

Vous pourrez peut-être configurer votre carte réseau pour qu'elle se réveille sur n'importe quel paquet. Cependant, cela ne fonctionnera probablement pas comme vous le souhaitiez - car cela ne fera pas de distinction entre votre tentative de connexion au bureau à distance et quelqu'un qui scanne simplement votre réseau ou un paquet latent d'un service que vous utilisiez.

Pour l'instant, vous devrez probablement vous contenter d'un processus en deux étapes: 1) réveiller l'ordinateur avec une seule application, 2) se connecter via un bureau à distance.

Jason R. Coombs
la source
2

En utilisant les informations des autres réponses, j'ai fini par créer un dossier contenant les fichiers suivants:

connect.bat
mycomputer.rdp (remote desktop connection file)
sleep.exe (a little program to wait a specified number of milliseconds)
wolcmd.exe

Donc, exécuter connect.bat, réveille mon ordinateur, attend 10 secondes, puis ouvre une connexion de bureau à distance à celui-ci.

connect.bat contient les éléments suivants:

ECHO OFF
CLS
WolCmd.exe 0011AA22BB33 10.1.255.255 255.255.0.0 7
ECHO Sleeping...
Sleep.exe 10000
ECHO Starting remote desktop connection
start mstsc.exe mycomputer.rdp

Vous pouvez générer sleep.exe en enregistrant la source ci-dessous en tant que sleep.cs et en la complétant à l'aide du compilateur C # fourni avec le framework .NET:

csc /out:sleep.exe c:\sleep.cs

Source pour sleep.cs

using System;
using System.Threading;

namespace Sleep
{
    class Program
    {
        static void Main(string[] args)
        {
            if (args.Length == 1)
            {
                int period = 0;
                Int32.TryParse(args[0], out period);
                Console.WriteLine("Sleeping for {0} ms", period);
                Thread.Sleep(period);
            }
        }
    }
}
John Sibly
la source
2

Vous avez besoin d'une carte réseau qui prend en charge le déchargement ARP et le modèle de réveil TCP SYN comme indiqué dans http://technet.microsoft.com/en-us/library/ee617165%28v=ws.10%29.aspx

Si ces fonctionnalités sont prises en charge et activées, alors whindos ne vous avertira pas de la politique de mise en veille / veille prolongée lorsque vous activez le bureau à distance.

czz
la source
J'ai remarqué que cela fonctionne sur ma nouvelle machine de développement - je suppose que c'est la raison.
John Sibly
1

Il existe différentes raisons de type liées au message d'erreur qui s'affiche.

Pas assez de mémoire

Fermez vos autres programmes, puis réessayez de vous connecter. Si le problème persiste, redémarrez votre ordinateur, puis réessayez de vous connecter. Si vous ne parvenez toujours pas à vous connecter, contactez votre administrateur réseau ou le support technique. (Pour plus d'informations, voir Prévention des problèmes de mémoire insuffisante.)

Panne de réseau

Assurez-vous que votre connexion réseau fonctionne, par exemple en accédant à un domaine local ou global ou si le câble Ethernet est branché sur votre adaptateur réseau ou que le commutateur sans fil est sous tension.

L'ordinateur distant est introuvable

Vérifiez que le Bureau à distance est activé. Vérifiez si l'ordinateur distant fonctionne (ni en mode veille ni en mode hibernation). Vérifiez le nom de l'ordinateur ou son adresse IP et assurez-vous de l'avoir tapé correctement.

La connexion d'un ordinateur domestique à un ordinateur d'un domaine d'entreprise nécessite une étape intermédiaire pour garantir que les ordinateurs peuvent communiquer, par exemple pour établir une connexion de réseau privé virtuel (VPN) au réseau d'entreprise.

Ou une autre application peut utiliser le même port que RDP.

Pour plus d'exemples que mes cas les plus courants ou pour plus de détails sur chacun d'eux, voir:

strpeter
la source