Как я могу использовать Task Scheduler, чтобы перевести Windows 10 в спящий режим в определенное время без использования командного файла?
2 ответа
Настройте свое время в окне «Триггеры планировщика заданий» как обычно. На вкладке Общие, вероятно, проще всего выполнить задачу как SYSTEM
и запускать ее независимо от того, вошел ли пользователь в систему или нет. Высшие привилегии не нужны.
Поскольку rundll32
устарел и опасен в целом, мы будем использовать PowerShell для правильного вызова функции сна. Установите в поле « Программа / скрипт» значение powershell.exe
. Поместите это в поле Add arguments :
-command add-type -assemblyname System.Windows.Forms; [System.Windows.Forms.Application]::SetSuspendState([System.Windows.Forms.PowerState]::Suspend, $false, $false)
Команда add-type
импортирует сборку Forms, которая содержит управляемый метод SetSuspendState
. Вторая команда вызывает этот метод, переводя компьютер в спящий режим, но позволяя событиям пробуждения выйти из режима сна. (Если вы не хотите, чтобы события пробуждения продолжали работать, измените последний $false
на $true
.)
- Создать новое задание.
- Решите, как вы хотите установить вкладку "Общие" (я рекомендую выбрать «Запускать, вошел ли пользователь в систему или нет»).
- Я выбрал "Запускать с наивысшими привилегиями", но это зависит от ваших требований.
- Создайте триггер, который описывает, когда вы хотите запустить задачу.
- Создать новое Действие - это ключевой шаг: Действие должно быть "Запустить программу".
Значение «Программа / сценарий» должно быть следующим: rundll32.exe. Значение «Добавить аргументы (необязательно):» должно быть следующим: powrprof.dll, SetSuspendState sleep. Значение «Запуск в (необязательно):» должно быть пустым.
ВАЖНО СОБЛЮДАТЬ СЛУЧАЙ аргумента "SetSuspendState"! "setsuspendstate" не будет работать!
- Сохраните свою задачу и протестируйте ее.