24

Можно ли как-нибудь автоматически отключить компьютер с Windows 7 при попытке подключиться к нему с помощью удаленного рабочего стола?

Опция энергосбережения машины, к которой я хочу подключиться (обеспечивается групповой политикой, я полагаю), состоит в том, чтобы спать через 30 минут, что означает, что я должен либо физически пройтись, чтобы нажать клавишу, либо запустить отдельный Wake-on- LAN инструмент, чтобы вывести его из спящего режима.

Было бы неплохо, если бы клиент подключения к удаленному рабочему столу автоматически отправлял пакет Wake-on-LAN - возможно ли это?

6 ответов6

13

Вам нужно будет отправить волшебный пакет (для пробуждения по локальной сети) через маршрутизатор. Трудно , потому что маршрутизатора не пересылать их по умолчанию, но есть обходные пути , как найти здесь:

Чтобы разбудить компьютер из Интернета, вам необходимо широкополосное соединение с маршрутизатором, подключенным к модему, которое поддерживает ваше соединение (вам нужен маршрутизатор, даже если у вас статический IP-адрес).

Пробуждение компьютера от удаленного компьютера осуществляется путем отправки волшебного пакета через Интернет с использованием вашего IP-адреса в Интернете и MAC-номера компьютера, который вы собираетесь активировать.

Если вы не знаете свой IP-адрес:

Ссылка на: Как найти интернет-адрес моего компьютера / сервера из удаленного местоположения.

Вы должны подготовить систему для Wake Up через Интернет.

Откройте порт с точки зрения маршрутизатора и программного брандмауэра (используйте большой номер порта, чтобы он не конфликтовал ни с каким другим портом, хороший пример - 5850).

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

Получите эту утилиту, которая позволит вам определить порт для WOL.

Ссылка на: Wake on LAN для графического интерфейса пользователя Windows (WOL GUI)

Возьмите с собой копию графического интерфейса WOL и запишите номер MAC. В удаленном местоположении запустите WOL GUI и введите свой MAC-номер, введите Интернет-адрес (Интернет-IP), введите номер порта, который вы оставили открытым. Нажмите «Разбуди меня», и это должно сработать.

Утилита:

альтернативный текст

Утилита волшебный пакет GUI является бесплатной.


Вы также можете использовать горячую клавишу, чтобы активировать ее вместе с версией командной строки 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 и подсеть были правильными.

3

Улучшение ответа Джона Сибли ... если в окнах вы можете избежать кода на C #, используя команду "timeout", как показано ниже.

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 для получения дополнительной информации о разделе сна файла .cmd:https://stackoverflow.com/questions/4317020/windows-batch-sleep

2

Удаленный рабочий стол не имеет встроенной функции удаленного включения.

Возможно, вы сможете настроить свою сетевую карту для пробуждения по любому пакету. Однако это, вероятно, не будет работать так, как вы предполагали, поскольку не будет различать попытку подключения к удаленному рабочему столу и то, что кто-то просто сканирует вашу сеть или скрытый пакет от службы, которую вы использовали.

На данный момент вам, вероятно, придется согласиться с двухэтапным процессом: 1) разбудить компьютер одним приложением, 2) подключиться через удаленный рабочий стол.

2

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

Если эти функции поддерживаются и включаются, то при включении удаленного рабочего стола операционная система не будет предупреждать вас о политике сна / гибернации.

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:

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);
            }
        }
    }
}
1

Существуют различные причины типа, связанные с появлением сообщения об ошибке.

Недостаточно памяти

Закройте другие программы и попробуйте снова подключиться. Если проблема не устранена, перезагрузите компьютер и попробуйте снова подключиться. Если вы по-прежнему не можете подключиться, обратитесь к сетевому администратору или в службу технической поддержки. (Для получения дополнительной информации см. Предотвращение проблем с нехваткой памяти.)

Сбой в работе сети

Убедитесь, что ваше сетевое соединение работает, например, получая доступ к какому-либо локальному или глобальному домену, или если кабель Ethernet подключен к сетевому адаптеру или включен беспроводной коммутатор.

Удаленный компьютер не может быть найден

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

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

Или другое приложение может использовать тот же порт, что и RDP.

Более подробные примеры, чем мои самые распространенные случаи, или подробности о каждом из них смотрите в:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .