Windows 10 无法通过睡眠任务唤醒(通过任务计划程序)

Windows 10 无法通过睡眠任务唤醒(通过任务计划程序)

我按照本指南创建了 2 个睡眠和唤醒任务:https://www.groovypost.com/howto/schedule-wake-sleep-windows-automatically/

如果我独立运行睡眠任务,PC 将进入睡眠状态并通过鼠标移动事件唤醒。

如果我安排唤醒任务并将 PC 设置为睡眠键盘按钮,它将通过计划任务唤醒。

因此,任务可以独立运行,但不在任务事件链中运行。

我已尝试过:

  • 禁用休眠powercfg -h off
  • 在“设置”->“电源选项”中允许唤醒定时器(设置为“启用”)
  • 在 BIOS 中启用与事件计时器和唤醒相关的所有内容
  • 睡眠和清醒任务之间暂停超过 5 分钟
  • 萨满用手鼓跳舞

更多截图:

在此处输入图片描述

无法下载软件。PC 和笔记本电脑上的行为相同。到目前为止,挣扎已经持续了 2 天……

答案1

$script = '$signature = @"
[DllImport("powrprof.dll")]
public static extern bool SetSuspendState(bool Hibernate,bool ForceCritical,bool DisableWakeEvent);
"@
$func = Add-Type -memberDefinition $signature -namespace "Win32Functions" -name "SetSuspendStateFunction" -passThru
$func::SetSuspendState($false,$true,$false)'

$bytes = [System.Text.Encoding]::Unicode.GetBytes($script)
$encodedCommand = [Convert]::ToBase64String($bytes)

$action = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-encodedCommand $encodedCommand"

$trigger = New-ScheduledTaskTrigger -Daily -DaysInterval 1 -At 16:43
Register-ScheduledTask -TaskName "Sleep" -Action $action -Trigger $trigger -Force

$action = New-ScheduledTaskAction -Execute "cmd.exe" -Argument "/c echo hello"
$settings = New-ScheduledTaskSettingsSet -WakeToRun
$trigger = New-ScheduledTaskTrigger -Daily -DaysInterval 1 -At 16:44
Register-ScheduledTask -TaskName "Wake" -Action $action -Settings $settings -Trigger $trigger -Force

奇迹般有效 :)

另外不要使用 RUNDLL32,因为

Rundll32 只能调用明确编写为由 Rundll32 调用的 DLL 中的函数。

https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/rundll32#remarks

相关内容