Windows 10 не просыпается после задачи сна (через планировщик задач)

Windows 10 не просыпается после задачи сна (через планировщик задач)

Я создал 2 задачи для сна и бодрствования, следуя этому руководству:https://www.groovypost.com/howto/schedule-wake-sleep-windows-automatically/

Если я запускаю задачу сна независимо, ПК переходит в спящий режим и просыпается по событию движения мыши.

Если я запланирую задачу пробуждения и настрою кнопку клавиатуры на переход ПК в спящий режим, он проснется по расписанию.

Таким образом, задачи отлично работают по отдельности, но не в цепочке событий задачи.

Что я пробовал:

  • отключить спящий режимpowercfg -h off
  • разрешены таймеры пробуждения (установлены на Включено) в Настройках -> Параметры электропитания
  • включил в BIOS все, что касается таймеров событий и пробуждений
  • использовали паузы между задачами сна и бодрствования более 5 минут
  • шаманские танцы с бубном

Дополнительные скриншоты:

введите описание изображения здесь

Загружаемое ПО не вариант. То же самое поведение на ПК и ноутбуке. Борьба продолжается уже 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 может вызывать только те функции из DLL, которые явно написаны для вызова Rundll32.

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

Связанный контент