首先的问题是:我如何找出是什么原因阻止我的 Windows 7 计算机进入睡眠模式?
第二,一些背景...
我为此苦苦挣扎了几天,完全不知所措。几周前,我在 Windows 7 PC 上设置了睡眠模式,一切正常。PC 会按预期进入睡眠状态,我感到很舒服,因为我知道我的电脑节省了电量,减少了组件的磨损(我们将把“睡眠是否更好”的争论留到另一篇帖子/一天,请不要开始)。
嗯,前几天晚上我注意到我的系统停止永远不会进入睡眠状态。我将睡眠时间设置为 1 分钟,然后完全远离 PC(确保不会发生错误的鼠标或键盘移动),PC 从未进入睡眠状态。我也在较长的时间间隔内观察到了这种情况,例如整夜。
- 我当然启用了睡眠模式
- “多媒体设置——共享媒体时”设置允许电脑睡眠。
- “powercfg -lastwake” 没有显示任何有趣的内容,因为它从不进入睡眠状态并且无法唤醒。
- “powercfg /requests” 显示 3 个条目 - 全部为“[DRIVER] ?”。我猜想其中 2 个是我的鼠标和键盘 - 因为我最近用它们来运行 powercfg 命令。不过,第三个条目让我很困惑。
- 我已解开了除键盘和鼠标之外的所有 USB 外围设备。
- 我的 BIOS 中已禁用局域网唤醒功能。
- 我知道你可以禁用全部应用程序唤醒/防止睡眠 - 但我希望能够保留那些确实需要保持系统唤醒的应用程序的能力。
那么,有人知道如何找出 powercfg /requests 中的第三个幻影“[DRIVER] ?”是什么吗?
答案1
嗯,我找到了。我运行的 ISO 安装实用程序已安装并通过网络打开了一个文件。显然,如果通过网络打开文件进行读取,Windows 就不会进入睡眠状态。
另外,我发现这个powercfg
实用程序有点怪异。它似乎与你从哪种终端运行它有关。在 cygwin 和 Console2 下运行时,程序会给出错误且不稳定的报告(包括could not load energy.dll
运行 时的错误powercfg -ENERGY
)。起初我以为 的问题[DRIVER] ?
只是程序没有足够的信息来确定驱动程序;但这实际上是在标准终端下执行的症状cmd.exe
。
正如 Emory 在下面的评论中指出的那样,这种奇怪行为的原因是powercfg
需要提升权限 - 需要以管理员身份运行。程序中没有内置警告来提醒用户,它只会返回不正确的输出(could not locate energy.dll
在 的情况下也可能如此powercfg -ENERGY
)。它必须从具有提升权限的命令提示符运行。
那么...长话短说...要确定哪个程序导致你的系统无法睡眠:
- 以管理员权限运行
cmd.exe
(这是关键,powercfg
可以在任何环境下运行,但会产生不正确的结果) - 运行
powercfg -requests
以获取当前阻止睡眠的项目列表。
我可以确定,在我的例子中,通过网络打开的文件阻止了睡眠。