我有 Windows 7 不休眠的问题。
PowerCfg -requests
Run Code Online (Sandbox Code Playgroud)
说“传统内核调用程序”驱动程序会阻止睡眠模式。这不是很有帮助或提供信息。我如何获得有关该对象的更多详细信息?
编辑:
我找到
Powercfg -requestsoverride
Run Code Online (Sandbox Code Playgroud)
是处理此类行为不端的驱动程序和软件的最佳方法。
选项-requestsoverride没有很好的文档记录。MSDN 没有提到 NAME 区分大小写,要从覆盖列表中删除请求,您可以提供带有空白 REQUEST 参数的选项。
自 Window 8.1 以来,我的计算机一直无法进入睡眠状态,也无法从睡眠中醒来。我曾希望 Windows 10 能够解决这些问题,但不幸的是事实并非如此。我注意到每当我的耳机 (Hyper X Cloud II) 插入时都会出现问题,但它并非仅在插入时出现。
我最近对我的电脑一直从睡眠中醒来感到非常厌烦,并决定再次尝试解决这个问题。
首先,在电源管理中:
为了找出导致计算机无法唤醒的原因,我在提升的命令提示符中使用了powercfg:
powercfg -requests
Run Code Online (Sandbox Code Playgroud)
返回以下内容:
SYSTEM:
[DRIVER] Realtek High Definition Audio (HDAUDIO\FUNC_01&VEN_10EC&DEV_0892&SUBSYS_1043860B&REV_1003\4&165326bb&0&0001)
An audio stream is currently in use.
[DRIVER] USB Audio Device (USB\VID_0951&PID_16A4&MI_00\6&3321d09b&1&0000)
An audio stream is currently in use.
[DRIVER] Legacy Kernel Caller
Run Code Online (Sandbox Code Playgroud)
USB Audio Device
系统下的条目证实了我用耳机注意到的内容。如果我拔掉耳机,再次运行时USB Audio Device
,Legacy Kernel Caller
条目和条目都会消失powercfg -requests
。
拔掉耳机后问题依旧。所以我然后运行以下命令来防止Realtek High Definition Audio
驱动程序阻止睡眠。 …
在以前安装了 Windows 8.1 的笔记本电脑上,我完全能够使用休眠功能。我已升级到 Windows 10,现在休眠功能已禁用。如果我运行 powercfg -a 命令,它会告诉我由于一个非常奇怪的原因休眠不可用。它或多或少说,因为我正在从另一种语言翻译文本,休眠文件类型不支持休眠。
有人知道这意味着什么吗?
我验证并在我的 C: 驱动器的根目录上有一个 hiberfil.sys,如果我通过 powercfg -h on 启用休眠,并且如果我发出 off 命令,该文件将被删除。奇怪的是,当我安装的 RAM 为 1.5GB 时,文件大小仅为 300MB。我还有 50GB 的可用空间,而且我正在使用 SSD 驱动器。
非常感谢!
和很多人一样的问题:我的电脑自动唤醒,但我无法确定来源。Windows 10。它发生在凌晨 3:40、12:21 等左右。似乎每隔几周就会发生一次。
这些是有关唤醒发生后我的系统配置的一些详细信息:
配置:
powercfg -devicequery 唤醒_武装?没有任何
powercfg -waketimers ?系统中没有活动的唤醒定时器。
电源选项高级设置?睡觉 ?允许唤醒定时器?禁用
(经典)控制面板/系统和安全/安全和维护/自动维护?“允许计划维护在预定时间唤醒我的计算机”未选中。
所有网络适配器的“魔术包”或“模式匹配”或“链接设置”的所有唤醒在设备管理器的设备的高级设置中设置为“禁用”。
华擎 Z170 Extreme 7+ 主板(在 UEFI 中没有“睡眠唤醒”选项)。
诊断信息:
事件查看器 ? 唤醒源:未知
powercfg -lastwake ? 唤醒历史计数 - 1,唤醒历史 [0]:唤醒源计数 - 0
可能重复:
笔记本电脑随机唤醒 = 休眠/低电量?
我的电脑随机从睡眠中唤醒。
我在睡眠后禁用了休眠。
我在 Windows 7 64 位上使用 Asus N53SV。
电源选项 > 睡眠 > 允许唤醒定时器被禁用。
它不会从休眠状态唤醒。
我的搜索结果是“查找 powercfg lastwake”、“禁用唤醒计时器”,但它们对我没有帮助。
powercfg lastwake显示:
唤醒历史计数 - 1
唤醒历史 [0]
唤醒源计数 - 0
PowerCfg -DEVICEQUERY wake_armed显示:
HID 键盘设备 (001)
这是正常的,因为键盘应该在按下时唤醒。即使盖子关闭,PC 也会唤醒,因此不会按下键盘。
powercfg -energy显示
系统可用性请求:系统要求的请求
设备或驱动程序已请求阻止系统自动进入睡眠状态。
请求驱动实例HDAUDIO\FUNC_01&VEN_10EC&DEV_0269&SUBSYS_10431063&REV_1001\4&cc8e931&0&0001
请求驱动设备 Realtek High Definition Audio
我正在使用最新的 Realtek 驱动程序
那么接下来我应该尝试什么?
在装有电池的设备上运行的 Windows 10(以及其他版本)上,我可以使用它powercfg /batteryreport
来获取电池的“设计容量”和“上次完全充电容量”,从而了解电池的剩余使用寿命以及它的容量因使用而降低了多少。
C:\Users\superuser\AppData\Local\Temp>powercfg /batteryreport
Battery life report saved to C:\Users\superuser\AppData\Local\Temp\battery-report.html
Run Code Online (Sandbox Code Playgroud)
HTML 报告是即时生成的,并显示我感兴趣的统计数据等:
此外,我可以启动到这台笔记本电脑的内置诊断环境,它显示类似的数字,以及电池的放电周期数。
这些值是从哪里获得的?我希望能够随着时间的推移跟踪一组笔记本电脑的电池寿命数据,最好是通过 Powershell 脚本。这些数据似乎应该在 WMI 中,果然,有一个Win32_Battery 类具有DesignCapacity
和FullChargeCapacity
字段,但在我测试过的所有系统上,它们都是未定义的:
PS C:\Users\superuser> Get-WmiObject -Class Win32_Battery | Select-Object -Property *Capacity | Format-List
DesignCapacity :
FullChargeCapacity :
Run Code Online (Sandbox Code Playgroud)
必须有一些程序化的方式来访问这些信息,因为powercfg
正在这样做。如果有一些 WMI、.NET 或 Powershell 方法可以做到这一点,我想知道。我可以生成powercfg
报告然后解析它,但我真的不想实施一个丑陋的解决方法,当最有可能有一种“正确”的方法来做它只是逃避我。
我正在尝试修理朋友的电脑,它经常睡在他们身上,有时甚至没有醒来。
尝试从控制面板启动电源配置没有任何作用,从命令行启动 powercfg.cpl 不会导致任何输出或操作。
我已尝试过 powercfg /RestoreDefaultPolicies,但收到一条拒绝访问错误消息,提示我以管理员身份重试。我作为 PC 上的唯一帐户登录,它是管理员,UAC 关闭,CMD.COM 是“以管理员身份运行”并且 PC 不是域的一部分。
在运行大部分 powercfg 时,我也遇到了拒绝访问错误,包括 powercfg -l。
我该怎么做才能让 powercfg 再次授予我权限?
我已经使用了命令
powercfg -lastwake
Run Code Online (Sandbox Code Playgroud)
以确定是什么唤醒了我的计算机。这是它在提示中产生的内容
Wake History Count - 1
Wake History [0]
Wake Source Count - 1
Wake Source [0]
Type: Fixed Feature
Timer Expired (RTC)
Run Code Online (Sandbox Code Playgroud)
在 Type 旁边:它说Fixed Feature。我认为这意味着一些内部的东西。另外当我运行命令时
powercfg devicequery wake_armed
Run Code Online (Sandbox Code Playgroud)
提示中没有打印任何内容,这进一步强化了笔记本电脑内部正在唤醒笔记本电脑的想法。我有一块电池可以充电不超过 30 秒到一分钟,但我在将笔记本电脑置于睡眠状态后将其插入电源。
我还查看了我的设备管理器,并确保在每个具有电源管理选项卡的设备上都未选中“允许此设备唤醒计算机”。
我做的另一件事是进入电源选项>高级设置>多媒体设置>共享媒体时>插入:并将该选项更改为“允许计算机睡眠”
windows-vista device-manager sleep power-management powercfg
自从我升级到 Windows 8.1 测试版(甚至现在升级到 Windows 8.1 RTM)后,我的电脑就不会闲着睡觉了。这不会是什么大问题,因为我几乎总是记得在走开之前让它入睡。但有时计算机会通过计划任务自行唤醒,然后计算机会一直开着,直到我回到它为止。(顺便说一句,我不想禁用计划任务以唤醒机器。)
计算机设置为在 30 分钟不活动后进入睡眠状态。我已将电源选项“共享媒体时”设置为“允许计算机睡眠”。我已停用所有“wake_armed”设备,以便
powercfg /devicequery wake_armed
Run Code Online (Sandbox Code Playgroud)
返回
NONE
Run Code Online (Sandbox Code Playgroud)
我已经安装了 Windows 无法自动检测到的所有驱动程序(其中只有我的“Creative Game Port”)。最后,我生成了一份报告
powercfg /energy duration 3600
Run Code Online (Sandbox Code Playgroud)
最初,它告诉我一些问题,例如“共享媒体时...”设置。正如我之前所说,我现在已将“共享媒体时”设置为“允许计算机休眠”。这是报告,似乎表明我没有进一步的严重问题:
https://skydrive.live.com/redir?resid=3D3292D8A7DEC2F4!17449&authkey=!AIllZ4c3A8_-XHU
单击上方时,SkyDrive 可能会显示 HTML。尝试单击下载,然后打开文件。感谢您的帮助。
目前我有两个驱动程序阻止我的 Windows 10 进入睡眠状态(以管理员身份运行命令提示符):
C:\Windows\system32>powercfg -requests
DISPLAY:
None.
SYSTEM:
[DRIVER] USB Audio Device (USB\VID_1395&PID_005E&MI_00\6&61162f7&0&0000)
An audio stream is currently in use.
[DRIVER] Legacy Kernel Caller
AWAYMODE:
None.
EXECUTION:
None.
PERFBOOST:
None.
ACTIVELOCKSCREEN:
None.
Run Code Online (Sandbox Code Playgroud)
所以我通过-requestsoverride
命令添加了它们
powercfg -requestsoverride Driver "Legacy Kernel Caller" System
Run Code Online (Sandbox Code Playgroud)
然后我可以看到两个驱动程序在覆盖列表中:
C:\Windows\system32>powercfg -requestsoverride
[SERVICE]
[PROCESS]
[DRIVER]
srvnet SYSTEM
Legacy Kernel Caller SYSTEM
USB Audio Device SYSTEM
Run Code Online (Sandbox Code Playgroud)
但是,当我powercfg -requests
再次运行时,输出与第一个结果相同,并且两个驱动程序仍然阻止我的计算机进入睡眠状态。我重新启动了我的电脑,它仍然是一样的。我将计算机设置为在闲置 1 分钟后进入睡眠状态,但除非我通过开始菜单手动将其睡眠,否则它永远不会睡眠。
如果需要,我愿意发布任何其他详细信息/日志。只要让我知道。谢谢!
powercfg ×10
sleep ×4
windows-10 ×4
windows ×3
windows-7 ×3
wake-up ×2
audio ×1
battery ×1
hibernate ×1
powershell ×1
standby ×1
usb ×1
windows-8 ×1
windows-8.1 ×1
wmi ×1