Windows 7 виходить із сну, коли я відкриваю віддалений робочий стіл


24

Чи існує спосіб автоматичного вимикання машини Windows 7 під час спроби підключитися до неї за допомогою віддаленого робочого стола?

Опція енергозбереження машини, до якої я хочу підключитися (на мою думку групова політика), засинає через 30 хвилин, а це означає, що я повинен або фізично підійти, щоб натиснути клавішу, або запустити окреме пробудження Інструмент LAN, щоб вийти з режиму сну.

Мені було б приємно, якщо клієнт підключення до віддаленого робочого стола автоматично відправив пакет Wake-on-LAN - це можливо?


2
Чи не мають нові функції материнські плати?
Dalin Seivewright

@DalinSeivewright Так вони роблять-моя нова машина dev робить це автоматично зараз:)
John Sibly

Відповіді:


13

Вам потрібно надіслати магічний пакет (для Wake ON LAN) через маршрутизатор. Важко, тому що маршрутизатор не пересилає їх за замовчуванням, але існують обхідні шляхи тут :

Для того, щоб розбудити комп'ютер від   Інтернету потрібно широкосмугове   з маршрутизатором, з яким підключено   модем, який зберігає ваше з'єднання   живий (вам потрібен маршрутизатор, навіть якщо ви   мають статичний IP).

Пробудження комп'ютера з пульта дистанційного керування   здійснюється шляхом надсилання чарівного пакета   через Інтернет за допомогою   IP-адреса Інтернету та MAC   номер комп'ютера, який ви бажаєте встановити   прокинутись.

Якщо ви не знаєте свою IP-адресу:

Посилання на: Як я знаходжу комп'ютер / сервер   Інтернет-адреса з віддаленого місцезнаходження.

Ви повинні підготувати систему   Прокинься через Інтернет.

Відкрити порт подумав маршрутизатор, і   Програмний брандмауер (використовуйте високий порт   номер так не конфліктуватиме   будь-який інший порт, 5850 є хорошим   наприклад).

Призначте порт внутрішньому IP   комп'ютер, який ви хочете WOL (ви   можна використовувати порт лише для одного   комп'ютера).

Отримати цю утиліту це дозволить вам визначити   порт для WOL.

Посилання на: Wake on LAN для Windows   Графічний інтерфейс користувача (WOL GUI)

Візьміть з собою копію графічного інтерфейсу WOL,   і запишіть номер MAC. В   Віддалене місце запуску WOL GUI і типу   у вашому номері MAC, введіть   Введіть Інтернет-адресу (Інтернет-IP)   номер порту, який ви залишили Відкрити.   Натисніть на Wake me Up і він повинен   роботи.

Утиліта:

alt text

Утиліта чарівного пакетного графічного інтерфейсу безкоштовна.


Ви також можете використовувати гарячу клавішу, щоб розбудити її разом з Версія командного рядка Wake On LAN :

Синтаксис:

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

Простіше:

  • Завантажити AutoHotkey
  • Використовуйте цей сценарій:
!w::Run, C:\wolcmd.exe 009027a324fe 195.188.159.20 255.255.255.0 8900
  • Alt + w розбудить віддалений комп'ютер

змініть сценарій відповідно, щоб шлях вказував на wolcmd.exe виконуваний і MAC, IP, і підмережі є правильними.


Привіт Джон - так, цей інструмент я в даний час повинні використовувати, якщо я хочу, щоб отримати цей комп'ютер з сну. Мені було цікаво, чи можливо це для віддаленого робочого столу зробити це автоматично?
John Sibly

1
Рідно я не знаю способу зробити це автоматично, і якщо я використовую AutoHotkey, щоб розбудити його автоматично, коли ви відкриваєте віддалений робочий стіл, відкриття RDC з іншої причини все одно розбудить ваш домашній комп'ютер, який ви не хочете, тому я редагував свою відповідь щоб розробити, як встановити гарячу клавішу, щоб розбудити ваш віддалений комп'ютер.
John T

1
Відповідь Джона Т. блискуча. Все, що я можу додати, це те, що я створив скорочення на своєму робочому столі за допомогою: wol -i 192.168.1.61 -p 00: 24: 8C: 1F: 90: 23 wol 00: 24: 8C: 1F: 90: 23 (Can ' Пам'ятайте, чому я додав дві подібні команди) Потім я призначив ярлик комбінації клавіатури, наприклад Ctrl + shift + j Відмінно працює для настільної машини. Але борються з мій ноутбук nic.
Guy Thomas

Дякуємо за всі відгуки. Версія командного рядка виглядає дуже перспективно - я думаю, що рішення (як мінімум для мене) полягає у створенні пакетного файлу для: виклику інструменту командного рядка, зачекайте 5 секунд або близько того, і запустіть "mstsc.exe mycomputer.rdp"
John Sibly

3

Покращуючи відповідь Джона Сівлі ... якщо у вікнах ви можете уникнути коду C #, використовуючи "timeout" cmd, як показано нижче.

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

Див. Цю відповідь на StackOverflow для отримання додаткового варіанту щодо розділу "sleep" у файлі. https://stackoverflow.com/questions/4317020/windows-batch-sleep


Корисна команда - я буду пам'ятати, що для майбутніх пакетних файлів :)
John Sibly

2

Віддалений робочий стіл не має вбудованої можливості віддаленого пробудження.

Можливо, ви зможете налаштувати мережеву карту для пробудження на будь-якому пакеті. Однак, це, ймовірно, не буде працювати так, як ви хотіли б - оскільки це не буде дискримінацією між вашою спробою підключення до віддаленого робочого столу та тим, хто просто сканує вашу мережу або прихований пакет від служби, яку ви використовували.

На даний момент вам, мабуть, доведеться домовитися з двоступеневим процесом: 1) розбудити комп'ютер за допомогою однієї програми, 2) підключитися через віддалений робочий стіл.


2

Використовуючи інформацію з інших відповідей, я створив папку з такими файлами:

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

Таким чином, запустивши connect.bat, прокидається комп'ютер, чекає 10 секунд, а потім відкриває до нього віддалене підключення до робочого столу.

connect.bat містить наступне:

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

Ви можете створити sleep.exe, збереживши джерело нижче як sleep.cs, і скомпілювавши його за допомогою компілятора C #, який постачається разом з .NET framework:

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

Джерело для 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);
            }
        }
    }
}

2

Вам потрібен мережевий адаптер, який підтримує розвантаження ARP і шаблон синхронізації TCP SYN, як зазначено в http://technet.microsoft.com/en-us/library/ee617165%28v=ws.10%29.aspx

Якщо ці функції підтримуються та увімкнено, тоді, коли ви вмикаєте віддалений робочий стіл, віні не будуть попереджати про політику сплячого / сплячого режиму.


Я помітив, що це працює на моїй новій машині dev-я думаю, це причина, чому.
John Sibly

1

Існують різні причини типу, пов'язані з повідомленням про помилку.

Не вистачає пам'яті

Закрийте інші програми та повторіть спробу підключення. Якщо проблема продовжується, перезавантажте комп'ютер і спробуйте знову підключитися. Якщо ви все ще не можете підключитися, зверніться до адміністратора мережі або технічної підтримки. (Для отримання додаткових відомостей див. Розділ Запобігання проблемам з низькою пам'яттю.)

Збій мережі

Переконайтеся, що підключення до мережі працює, наприклад, доступ до місцевого або глобального домену або якщо кабель Ethernet підключений до мережного адаптера або ввімкнено перемикач бездротового зв'язку.

Віддалений комп'ютер не знайдено

Переконайтеся, що віддалений робочий стіл увімкнено. Перевірте, чи працює віддалений комп'ютер (ні в режимі сну, ні в режимі глибокого сну). Перевірте ім'я комп'ютера або його IP-адресу та переконайтеся, що ви ввели його правильно.

Підключення домашнього комп'ютера до комп'ютера в корпоративному домені вимагає проміжного кроку для забезпечення спілкування комп'ютерів, наприклад, встановити підключення віртуальної приватної мережі (VPN) до корпоративної мережі.

Або інша програма може використовувати той самий порт, що й RDP.

Подальші приклади, окрім моїх найбільш поширених випадків або для подробиць про кожну з них, див.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.