Windows 7 wychodzi ze snu, gdy otwieram pulpit zdalny

24

Czy jest jakiś sposób, aby komputer z systemem Windows 7 automatycznie wychodził z trybu uśpienia, gdy próbuję połączyć się z nim za pomocą Pulpitu zdalnego?

Opcją oszczędzania energii na komputerze, z którym chcę się połączyć (egzekwowanym przez zasady grupy, jak sądzę), jest spanie po 30 minutach, co oznacza, że ​​muszę albo fizycznie podejść, aby nacisnąć klawisz, albo uruchomić osobne wybudzanie Narzędzie LAN, aby wyjść z trybu uśpienia.

Byłoby miło, gdyby klient usługi Podłączanie pulpitu zdalnego automatycznie wysłał pakiet Wake-on-LAN - czy to możliwe?

John Siable
źródło
2
Czy nowsze płyty główne nie mają tej funkcji?
Dalin Seivewright,
@DalinSeivewright Tak, robią-moja najnowsza maszyna programistów robi to teraz automatycznie :)
John Sably

Odpowiedzi:

13

Musisz wysłać magiczny pakiet (For Wake ON LAN) przez router. Trudne, ponieważ routery domyślnie nie przekazują ich dalej, ale istnieją obejścia, które można znaleźć tutaj :

Aby obudzić komputer z Internetu, potrzebujesz połączenia szerokopasmowego z routerem podłączonym do modemu, który utrzymuje połączenie przy życiu (potrzebujesz routera, nawet jeśli masz statyczny adres IP).

Wbudowanie komputera ze zdalnego odbywa się poprzez wysłanie magicznego pakietu przez Internet za pomocą twojego internetowego adresu IP i numeru MAC komputera, który chcesz obudzić.

Jeśli nie znasz swojego adresu IP:

Link do: Jak znaleźć adres internetowy mojego komputera / serwera ze zdalnej lokalizacji.

Musisz przygotować system do Wake Up Over Internet.

Otwórz port, pomyślał router i zaporę programową (użyj wysokiego numeru portu, aby nie kolidował z żadnym innym portem, dobrym przykładem jest 5850).

Przypisz port do wewnętrznego adresu IP komputera, który chcesz WOL (możesz użyć portu tylko dla jednego komputera).

Pobierz to narzędzie, które pozwala zdefiniować port dla WOL.

Link do: Graficzny interfejs użytkownika Windows Wake on LAN (WOL GUI)

Zabierz ze sobą kopię WOL GUI i zapisz numer MAC. W zdalnej lokalizacji uruchom GUI WOL i wpisz swój numer MAC, wpisz adres internetowy (Internet IP), wpisz numer portu, który pozostawiłeś Otwarty. Kliknij opcję Obudź mnie i powinno działać.

Narzędzie:

alternatywny tekst

Narzędzie GUI pakietu magicznego jest darmowe.


Możesz także użyć skrótu, aby go obudzić wraz z wersją Wake On LAN z linii poleceń :

Składnia:

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

Ułatwienie:

! w :: Run, C: \ wolcmd.exe 009027a324fe 195.188.159.20 255.255.255.0 8900
  • Alt+ wobudzi komputer zdalny

odpowiednio zmodyfikuj skrypt, aby ścieżka wskazywała wolcmd.exeplik wykonywalny, a MAC, IP i podsieć są poprawne.

John T.
źródło
Cześć John - tak, to jest to narzędzie, którego obecnie muszę używać, jeśli chcę wyciągnąć ten komputer ze snu. Zastanawiałem się, czy Pulpit zdalny mógł to zrobić automatycznie?
John Sably
1
Natywnie nie wiem, jak to zrobić automatycznie, a jeśli użyję AutoHotkey, aby obudzić go automatycznie po otwarciu pulpitu zdalnego, otwarcie RDC z innego powodu nadal obudzi twój komputer domowy, którego nie chcesz, więc zredagowałem swoją odpowiedź aby opracować sposób ustawienia skrótu do wybudzania komputera zdalnego.
John T
1
Odpowiedź Johna T. jest genialna. Mogę tylko dodać, że utworzyłem skrót na pulpicie za pomocą: wol -i 192.168.1.61 -p 00: 24: 8C: 1F: 90: 23 wol 00: 24: 8C: 1F: 90: 23 (Can ' pamiętaj, dlaczego dodałem dwa podobne polecenia). Następnie przypisuję skrótowi kombinację klawiszy, np. Ctrl + shift + j Działa dobrze na komputerze stacjonarnym. Ale walczę z nickiem mojego laptopa.
Guy Thomas
Dziękuję za wszystkie opinie. Wersja wiersza poleceń wygląda bardzo obiecująco - myślę, że rozwiązaniem (przynajmniej dla mnie) jest utworzenie pliku wsadowego do: wywołania narzędzia wiersza polecenia, odczekania około 5 sekund i uruchomienia „mstsc.exe mycomputer.rdp”
John Sably
3

Poprawianie odpowiedzi Johna Sably'ego ... jeśli w systemie Windows można uniknąć kodu C #, używając cmd „timeout” jak poniżej.

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

Zobacz tę odpowiedź na StackOverflow, aby uzyskać więcej opcji dotyczących sekcji uśpienia pliku .cmd: /programming/4317020/windows-batch-sleep

Dennis
źródło
Przydatne polecenie - będę musiał pamiętać o tym w przyszłych plikach wsadowych :)
John Sably
2

Pulpit zdalny nie ma wbudowanej funkcji zdalnego budzenia.

Możesz skonfigurować swoją kartę sieciową tak, aby budzić się na dowolnym pakiecie. Jednak prawdopodobnie nie zadziała to tak, jak zamierzałeś - ponieważ nie rozróżnia między próbą połączenia się z pulpitem zdalnym a kimś, kto tylko skanuje twoją sieć lub ukryty pakiet z usługi, z której korzystałeś.

Na razie prawdopodobnie będziesz musiał się zadowolić dwuetapowym procesem: 1) obudź komputer za pomocą jednej aplikacji, 2) Połącz za pomocą zdalnego pulpitu.

Jason R. Coombs
źródło
2

Korzystając z informacji z innych odpowiedzi, ostatecznie stworzyłem folder zawierający następujące pliki:

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

Uruchomienie connect.bat, budzi mój komputer, czeka 10 sekund, a następnie otwiera do niego połączenie z pulpitem zdalnym.

connect.bat zawiera następujące elementy:

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

Możesz wygenerować sleep.exe, zapisując poniższe źródło jako sleep.cs i kompilując je za pomocą kompilatora C # dostarczanego ze środowiskiem .NET:

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

Źródło dla 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 Siable
źródło
2

Potrzebujesz karty sieciowej, która obsługuje odciążanie ARP i wznowienie wznowienia TCP SYN, jak podano w http://technet.microsoft.com/en-us/library/ee617165%28v=ws.10%29.aspx

Jeśli te funkcje są obsługiwane i włączone, whindos nie ostrzeże cię o zasadach uśpienia / hibernacji po włączeniu pulpitu zdalnego.

czz
źródło
Zauważyłem, że działa to na mojej najnowszej maszynie deweloperskiej - chyba dlatego.
John Sably
1

Istnieją różne przyczyny typu związane z wyświetlanym komunikatem o błędzie.

Za mało pamięci

Zamknij inne programy, a następnie spróbuj połączyć się ponownie. Jeśli problem będzie się powtarzał, uruchom ponownie komputer, a następnie spróbuj ponownie się połączyć. Jeśli nadal nie możesz się połączyć, skontaktuj się z administratorem sieci lub pomocą techniczną. (Aby uzyskać więcej informacji, zobacz Zapobieganie problemom z małą ilością pamięci.)

Awaria sieci

Upewnij się, że połączenie sieciowe działa, np. Uzyskując dostęp do domeny lokalnej lub globalnej lub jeśli kabel Ethernet jest podłączony do karty sieciowej lub przełącznik sieci bezprzewodowej jest włączony.

Nie można znaleźć komputera zdalnego

Sprawdź, czy Pulpit zdalny jest włączony. Sprawdź, czy komputer zdalny działa (ani w trybie uśpienia, ani hibernacji). Sprawdź nazwę komputera lub jego adres IP i upewnij się, że wpisałeś go poprawnie.

Podłączenie komputera domowego do komputera w domenie korporacyjnej wymaga pośredniego kroku, aby zapewnić komunikację między komputerami, np. W celu ustanowienia połączenia wirtualnej sieci prywatnej (VPN) z siecią korporacyjną.

Lub inna aplikacja może korzystać z tego samego portu co RDP.

Więcej przykładów niż moje najczęstsze przypadki lub szczegółowe informacje na temat każdego z nich:

strter
źródło