打开远程桌面时Windows 7进入睡眠状态


24

当我尝试通过远程桌面连接Windows 7机器时,是否可以使它自动退出睡眠状态?

我要连接的计算机的省电选项(根据我认为是受组策略强制执行)是30分钟后进入睡眠状态,这意味着我必须亲自走过去按一个键,或者启动另一个唤醒功能,局域网工具使它退出睡眠模式。

如果远程桌面连接客户端自动发送局域网唤醒数据包,我会很好-这可能吗?


2
较新的主板不具有此功能吗?
大林Seivewright 2012年

@DalinSeivewright是的,他们愿意做-我最新的开发机现在可以自动执行此操作:)
John Sible

Answers:


13

您需要通过路由器发送一个魔术包(用于局域网唤醒)。困难的,因为路由器不转发这些默认,但也有变通方法为发现这里

为了将计算机从Internet唤醒,您需要与路由器连接到调制解调器的宽带连接,以保持连接畅通(即使您具有静态IP,也需要路由器)。

通过使用Internet IP地址和要唤醒的计算机的MAC地址通过Internet发送魔术包,可以从远程唤醒计算机。

如果您不知道自己的IP地址:

链接到:如何从远程位置找到我的计算机/服务器Internet地址。

您必须准备系统以通过Internet唤醒。

用路由器和软件防火墙打开一个端口(使用高端口号,这样它就不会与任何其他端口冲突,5850是一个很好的例子)。

将端口分配给要WOL的计算机的内部IP(您只能将端口用于一台计算机)。

获取此实用程序,它可以让您定义WOL的端口。

链接到: Windows图形用户界面(WOL GUI)的LAN唤醒

随身携带WOL GUI的副本,并写下MAC号。在远程位置,启动WOL GUI,然后键入您的MAC号,在Internet地址(Internet IP)中键入您保持打开状态的端口号。单击唤醒我,它应该可以工作。

实用程序:

替代文字

魔术包GUI实用程序是免费软件。


您还可以使用热键将其与命令行版本的Wake On LAN一起唤醒

语法:

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

使事情变得容易:

!w :: Run,C:\ wolcmd.exe 009027a324fe 195.188.159.20 255.255.255.0 8900
  • Alt+ w将唤醒远程计算机

相应地修改脚本,以便路径指向wolcmd.exe可执行文件,并且MAC,IP和子网正确。


约翰,您好-是的,如果我想让这台计算机进入睡眠状态,这是我当前必须使用的工具。我想知道远程桌面是否可以自动执行此操作?
约翰·西伯里

1
我本机不知道自动执行此操作的方法,并且如果在打开远程桌面时使用AutoHotkey自动唤醒它,由于其他原因打开RDC仍会唤醒您不需要的家用计算机,所以我编辑了答案详细说明如何设置热键以唤醒远程计算机。
约翰T

1
约翰·T的答案很出色。我可以添加的只是在桌面上使用以下命令创建了一个快捷方式:wol -i 192.168.1.61 -p 00:24:8C:1F:90:23 wol 00:24:8C:1F:90:23(可以记得为什么我添加了两个类似的命令)然后我为快捷方式分配了一个键盘组合,例如Ctrl + shift + j在台式机上工作正常。但是在笔记本电脑的网卡上苦苦挣扎。
Guy Thomas

感谢您的所有反馈。命令行版本看起来非常有前途-我认为解决方案(至少对我来说)是创建一个批处理文件以:调用命令行工具,等待5秒钟左右,然后启动“ mstsc.exe mycomputer.rdp”
约翰·西伯里2009年

3

改善John Sible的答案...如果在Windows中,则可以通过使用“ timeout” cmd来避免C#代码,如下所示。

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

有关.cmd文件的sleep部分的更多选项,请参见StackOverflow上的此答案:https : //stackoverflow.com/questions/4317020/windows-batch-sleep


有用的命令-对于以后的批处理文件,我必须记住:)
John Sible

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.cs并使用.NET框架随附的C#编译器对其进行编译来生成sleep.exe:

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

与出现的错误消息有不同的类型原因。

内存不足

关闭其他程序,然后尝试重新连接。如果问题仍然存在,请重新启动计算机,然后再次尝试连接。如果仍然无法连接,请与网络管理员或技术支持联系。(有关更多信息,请参见防止内存不足问题。)

网络故障

确保您的网络连接正常工作,例如通过访问某些本地或全局域,或者将以太网电缆插入网络适配器或无线交换机已打开。

找不到远程计算机

确认已启用远程桌面。检查远程计算机是否正在运行(既不处于睡眠模式也不处于休眠模式)。验证计算机名称或其IP地址,并确保输入正确。

将家用计算机连接到公司域上的计算机需要一个中间步骤,以确保计算机可以进行通信,例如建立与公司网络的虚拟专用网(VPN)连接。

或者另一个应用程序可能正在使用与RDP相同的端口。

有关比我最常见的情况更多的示例或有关每个示例的详细信息,请参见:

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.