O Windows 7 sai do sono quando abro a área de trabalho remota

24

Existe alguma maneira de fazer com que uma máquina com Windows 7 desligue automaticamente quando tento conectar-me à Área de Trabalho Remota?

A opção de economia de energia da máquina à qual eu quero me conectar (imposta pela diretiva de grupo) é dormir após 30 minutos, o que significa que eu tenho que caminhar fisicamente para pressionar uma tecla ou acionar um Wake-on- Ferramenta LAN para tirá-lo do modo de suspensão.

Seria bom se o cliente de Conexão de área de trabalho remota enviasse o pacote Wake-on-LAN automaticamente - isso é possível?

John Sibly
fonte
2
As placas-mãe mais novas não têm esse recurso?
Dalin Seivewright
@DalinSeivewright Sim, eles fazem-minha máquina dev mais novo faz isso automaticamente agora :)
John Sibly

Respostas:

13

Você precisará enviar um pacote mágico (para Wake ON LAN) através do seu roteador. Difícil porque os roteadores não os encaminham por padrão, mas existem soluções alternativas encontradas aqui :

Para ativar um computador da Internet, você precisa de uma conexão de banda larga com um roteador conectado ao modem que mantenha sua conexão ativa (você precisa de um roteador, mesmo que tenha um IP estático).

A ativação do computador remota é feita enviando o pacote mágico pela Internet usando o seu endereço IP da Internet e o número MAC do computador que você pretende ativar.

Se você não souber seu endereço IP:

Link para: Como encontro o endereço da Internet do meu Computador / Servidor em um local remoto.

Você precisa preparar o sistema para ativar a Internet.

Abra uma porta através do roteador e do firewall de software (use um número de porta alto para não entrar em conflito com nenhuma outra porta, 5850 é um bom exemplo).

Atribua a porta ao IP interno do computador que você deseja WOL (você pode usar a porta apenas para um computador).

Obter este utilitário permite definir uma porta para WOL.

Link para: Wake on LAN para interface gráfica do usuário do Windows (WOL GUI)

Leve consigo uma cópia da WOL GUI e anote o número MAC. No local remoto, inicie a WOL GUI e digite seu número MAC, digite o endereço da Internet (IP da Internet), digite o número da porta que você deixou em aberto. Clique em Wake me Up e ele deve funcionar.

A utilidade:

texto alternativo

O utilitário da GUI do pacote mágico é um freeware.


Você também pode usar uma tecla de atalho para ativá-la, juntamente com a versão da linha de comando do Wake On LAN :

A sintaxe:

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

Facilitando as coisas:

! w :: Execute, C: \ wolcmd.exe 009027a324fe 195.188.159.20 255.255.255.0 8900
  • Alt+ wativará o computador remoto

modifique o script adequadamente para que o caminho aponte para o wolcmd.exeexecutável e o MAC, IP e sub-rede estejam corretos.

John T
fonte
Oi John - sim, essa é a ferramenta que tenho que usar atualmente se quiser tirar esse computador do modo de suspensão. Gostaria de saber se era possível para a Área de Trabalho Remota fazê-lo automaticamente?
John Sibly
1
Naturalmente, não sei como fazê-lo automaticamente, e se eu usar o AutoHotkey para ativá-lo automaticamente quando você abrir a área de trabalho remota, a abertura da RDC por um motivo diferente ainda ativará o computador doméstico que você não deseja, então editei minha resposta para elaborar como definir uma tecla de atalho para ativar seu computador remoto.
John T
1
A resposta de John T é brilhante. Tudo o que posso acrescentar é que criei um atalho na minha área de trabalho com: wol -i 192.168.1.61 -p 00: 24: 8C: 1F: 90: 23 wol 00: 24: 8C: 1F: 90: 23 (Can ' lembre-se de por que adicionei dois comandos semelhantes) Em seguida, atribuo ao atalho uma combinação de teclado, por exemplo, Ctrl + shift + j Funciona bem para uma máquina de mesa. Mas lutando com o nic do meu laptop.
Guy Thomas
Obrigado por todos os comentários. A versão da linha de comando parece muito promissora - acho que a solução (pelo menos para mim) é criar um arquivo em lotes para: chamar a ferramenta de linha de comando, aguarde 5 segundos ou mais e iniciar "mstsc.exe mycomputer.rdp"
John Sibly 12/11/2009
3

Melhorando a resposta de John Sibly ... se, no Windows, você pode evitar o código C # usando o cmd "timeout" como abaixo.

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

Consulte esta resposta no StackOverflow para obter mais opções sobre a seção de suspensão do arquivo .cmd: /programming/4317020/windows-batch-sleep

Dennis
fonte
Comando útil - eu vou ter que lembrar que, para arquivos futuro lote :)
John Sibly
2

A Área de Trabalho Remota não possui capacidade de ativação remota integrada.

Você pode configurar sua placa de rede para ativar qualquer pacote. No entanto, isso provavelmente não funcionará como você pretendia - pois não discriminará entre a tentativa de conexão da área de trabalho remota e alguém apenas verificando sua rede ou um pacote latente de um serviço que você estava usando.

Por enquanto, você provavelmente terá que resolver um processo de duas etapas: 1) ativar o computador com um aplicativo, 2) conectar-se via área de trabalho remota.

Jason R. Coombs
fonte
2

Usando as informações das outras respostas, acabei criando uma pasta contendo os seguintes arquivos:

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

Então, executando o connect.bat, ative meu computador, aguarde 10 segundos e abra uma conexão de área de trabalho remota.

connect.bat contém o seguinte:

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

Você pode gerar sleep.exe salvando a fonte abaixo como sleep.cs e compilando-a usando o compilador C # que acompanha a estrutura .NET:

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

Fonte para 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
fonte
2

Você precisa de um adaptador de rede que ofereça suporte ao descarregamento ARP e ao padrão de ativação TCP SYN, conforme declarado em http://technet.microsoft.com/en-us/library/ee617165%28v=ws.10%29.aspx

Se esses recursos forem suportados e ativados, os whindos não o alertarão sobre a política de suspensão / hibernação quando você ativar a área de trabalho remota.

czz
fonte
Percebi que isso funciona na minha mais nova máquina de desenvolvimento - acho que esse é o motivo.
John Sibly
1

Existem diferentes tipos de motivos relacionados à mensagem de erro exibida.

Memória insuficiente

Feche os outros programas e tente conectar-se novamente. Se o problema persistir, reinicie o computador e tente conectar-se novamente. Se você ainda não conseguir se conectar, entre em contato com o administrador da rede ou o suporte técnico. (Para obter mais informações, consulte Evitando problemas de pouca memória.)

Falha na rede

Verifique se a conexão de rede está funcionando, por exemplo, acessando algum domínio local ou global ou se o cabo Ethernet está conectado ao seu adaptador de rede ou o comutador sem fio está ligado.

O computador remoto não pode ser encontrado

Verifique se a área de trabalho remota está ativada. Verifique se o computador remoto está em execução (no modo de suspensão ou de hibernação). Verifique o nome do computador ou seu endereço IP e verifique se digitou corretamente.

A conexão de um computador doméstico a um computador em um domínio corporativo requer uma etapa intermediária para garantir que os computadores possam se comunicar, por exemplo, para estabelecer uma conexão de rede virtual privada (VPN) com a rede corporativa.

Ou outro aplicativo pode estar usando a mesma porta que o RDP.

Para obter mais exemplos dos casos mais comuns ou detalhes sobre cada um deles, consulte:

strpeter
fonte