1

Как я могу использовать Task Scheduler, чтобы перевести Windows 10 в спящий режим в определенное время без использования командного файла?

2 ответа2

4

Настройте свое время в окне «Триггеры планировщика заданий» как обычно. На вкладке Общие, вероятно, проще всего выполнить задачу как 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 .)

0
  1. Создать новое задание.
  2. Решите, как вы хотите установить вкладку "Общие" (я рекомендую выбрать «Запускать, вошел ли пользователь в систему или нет»).
  3. Я выбрал "Запускать с наивысшими привилегиями", но это зависит от ваших требований.
  4. Создайте триггер, который описывает, когда вы хотите запустить задачу.
  5. Создать новое Действие - это ключевой шаг: Действие должно быть "Запустить программу".

Значение «Программа / сценарий» должно быть следующим: rundll32.exe. Значение «Добавить аргументы (необязательно):» должно быть следующим: powrprof.dll, SetSuspendState sleep. Значение «Запуск в (необязательно):» должно быть пустым.

ВАЖНО СОБЛЮДАТЬ СЛУЧАЙ аргумента "SetSuspendState"! "setsuspendstate" не будет работать!

  1. Сохраните свою задачу и протестируйте ее.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .