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

Вопрос или проблема

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

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

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

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

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

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

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

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

Загружаемое программное обеспечение не является вариантом. То же самое поведение на ПК и ноутбуке.
Борьба продолжается уже 2 дня…

$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

Смотрите https://www.elevenforum.com/t/modern-standby-scheduled-tasks.16749/

Try3 сказал: “… МС не сказали людям, что им нужно установить параметры питания Сон после на НИКОГДА, если они хотят использовать TS …”

Решение Try3 сработало для меня.

Ответ или решение

Проблема автоматического пробуждения Windows 10 с помощью задач Планировщика заданий

Если ваша система Windows 10 не пробуждается по расписанию после того, как уходит в спящий режим, несмотря на правильно настроенные задачи засыпания и пробуждения, вероятными причинами могут быть неправильные параметры настройки или специфика работы операционной системы. Давайте подробно рассмотрим эту ситуацию.

Анализ проблемы

Вы создали задачи для управления состоянием спящего режима и пробуждения, и они работают корректно, когда выполняются самостоятельно. Однако при попытке реализовать цепочку событий от засыпания до пробуждения возникает проблема. Причины могут включать:

  1. Параметры питания: Возможные настройки питания могут блокировать возможность пробуждения компьютера. Если у вас включён режим "Гибернация", система может не распознавать задачи.

  2. Настройки BIOS/UEFI: Важно убедиться, что все нужные параметры для ведения учета событий и управления состоянием включены в BIOS.

  3. Разрешение на пробуждение: Некоторые варианты задач могут не иметь разрешения на пробуждение компьютера.

  4. Предоставление времени между задачами: Следует обратить внимание на временные интервалы между выполнением задач.

  5. Настройка "Пробуждение для запуска задачи": Эта опция должна быть отдельной настройкой задачи пробуждения.

Рекомендации и решения

  1. Проверьте параметры питания:

    • Убедитесь, что в параметрах питания установлено "Сон" после, а не "Никогда". Это можно сделать следующим образом:
      • Перейдите в "Настройки" > "Система" > "Электропитание и спящий режим".
      • Убедитесь, что опция "Сон" настроена на значения, которые позволяют системы отходить в сон и подниматься по расписанию.
  2. Проверьте настройки BIOS:

    • Войдите в BIOS/UEFI и проверьте включение всех опций, связанных с управлением энергопотреблением, включая такие параметры как "Wake on LAN" или "Wake timers".
  3. Задайте высокое время между задачами:

    • Убедитесь, что между задачами (задача засыпания и задача пробуждения) установлен достаточный временной интервал. Если это возможно, опробуйте автоматическое задание после нескольких минут простоя системы.
  4. Примените PowerShell для указания режима сна:

    • Используйте PowerShell для создания задач таким образом, чтобы они корректно устанавливали режим сна. Пример кода, приведённого вами, корректен и позволит избежать проблем.
  5. Избегайте использования Rundll32:

    • Как вы уже отметили, использование Rundll32.exe не рекомендуется, поскольку он ограничен в своих действиях и может вызвать дополнительные сложности.

Пример скрипта PowerShell

$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 

Заключение

Проблемы с управлением энергопотреблением и настройками задач в Windows 10 могут быть сложными, и важно проявлять внимание к деталям. Следуя изложенным рекомендациям, вы сможете устранить неполадки и достичь нужного результата. Попробуйте вышеизложенные шаги и обеспечьте правильное выполнение задач в Планировщике заданий. В случае дальнейших трудностей рассмотрите возможность обращения к более специализированным источникам или форумам для нахождения аналогичных решений.

Оцените материал
Добавить комментарий

Капча загружается...