我在 Vista 和 Win7 机器上创建了计划任务,如果机器当前处于睡眠状态,这些任务会唤醒机器。但是,如果任务执行时间超过机器上配置的电源设置,机器将返回睡眠状态。看起来这实用程序可能是一个解决方案,但我想知道是否还有其他选择。
是否有人知道 powershell 命令或其他实用程序可以防止我的机器在任务运行时进入睡眠状态?
答案1
我发现,轻松切换电源模式来管理机器管理电源能力的最简单方法是定义电源方案。您只需进入控制面板并创建任何新的电源方案或编辑现有的预定义方案。设置一个方案,让机器在允许的情况下正常运行,使其进入睡眠状态。例如,在我的 Windows 7 机器上,我只需为此编辑预定义的“平衡”电源方案。然后编辑或创建一个方案,让机器 100% 的时间全速/全功率运行,不允许睡眠。同样,我只需编辑现有的“高性能”电源方案并按此方式配置它。然后,一旦定义了这些电源方案,您就可以使用电源管理程序命令行实用程序。
弹出一个命令行窗口并运行:
powercfg -list
... 运行时,您应该获得所有机器定义的电源方案的列表以及您需要注意的相应 GUID 值。然后,要将机器从一个电源方案切换到另一个电源方案,我有一个简单的批处理文件/脚本,我可以运行它,它传递了我希望机器在其中运行的方案的 GUID。这样,在我的计划任务和其他工具中,我只需调用我的一个脚本即可让机器保持运行,而无需休眠或全速运行。批处理文件仅使用 powercfg.exe 和 setactive 开关来选择我想要的电源方案。所以这看起来像:
powercfg -setactive 381b4222-f694-41f0-9685-ff5bb260df2e
请注意,最后一部分是您使用上面的列表命令获得的机器的 GUID。
答案2
计划任务的选项中应该有一个复选框。我目前没有 Win 7,所以我不能确切地说在哪里,只是我以前用过它。
答案3
计划任务中有一个设置,您可以选中或取消选中,如果任务或脚本的运行时间超过选中的设置指定的时间,则会导致任务或脚本退出。例如,如果您有一项任务,它会在凌晨 4 点唤醒您的计算机进行 Windows 更新、病毒扫描等,如果任务花费的时间比在计划任务->任务名称->属性->设置中设置的时间长,则任务将无法完成。如果您将此时间设置为比任务所需的时间短,则任务可能看起来无法完成,因为计算机在任务仍在运行时进入待机状态,但真正的原因是必须设置更长的时间。或者可以取消选中该框,这样就完全没有时间限制。