Пропущенная задача Windows запускается при запуске компьютера

2994
Alex Angelico

У меня есть проблема, противоположная обычной.

У меня есть задача перевести компьютер в режим гибернации в 8 часов вечера. Если я перевести компьютер в спящий режим раньше и включить его на следующее утро, задание запускается и переводит компьютер в спящий режим (чего я не хочу)

Я НЕ ВЫБИРАЛ «Запускать задачу как можно скорее после того, как пропущен запуск расписания»

Я ошибся? не значит ли это, что если задача испорчена, она не запустится?

Alex

3

2 ответа на вопрос

0
Paul Beesley

Если вы переводите компьютер в спящий режим до того времени, когда запланировано запустить задачу, то текущее состояние часов также сохраняется (для целей синхронизации).

После выхода из режима гибернации часы ОС снова синхронизируются с аппаратными часами (которые теперь показывают время и дату после запланированной задачи). Я могу только думать, что, возможно, это запускает запланированные задачи, потому что время не пропускает прямиком от А к В, а скорее «проигрывает» промежуточный интервал.

Если это проблема, это может быть так же просто, как настроить задачу на запуск только после X минут простоя машины? Просто догадка, планировщик задач для меня во всех версиях Windows никогда не играет красиво. Richard Lucas 13 лет назад 0
Да, это может быть решением, но я действительно хочу, чтобы ПК запускался в 8:45 (это работает через BIOS) и выключался в 8:00 вечера, потому что иногда я даже не иду в офис, но я получить доступ к ПК удаленно. Об аппаратной синхронизации часов, даже если это так, она должна работать ... вероятно, это неправильное поведение планировщика задач. Я удалил задачу и создал новую, но происходит точно так же. Alex Angelico 13 лет назад 0
0
notorious.dds

I was having the similar problem. (My task was set to run at 5:30 PM and then wait for 15 minutes of inactivity before suspending.)  In my case, it would work fine so long as the computer was running at 5:30 PM every day. If it ever missed the task due to being suspended, it would run the task on resume (and yes, I had also unchecked "Run task as soon as possible after a scheduled start is missed"). It would then suspend the computer after being resumed and having 15 minutes of inactivity.

So, here's my solution:

  1. Edit your task's trigger. Check "Delay task for up to:" and select "1 minute"
  2. Create a batch file named "kill.bat"

    @echo off timeout 10 schtasks /end /tn TaskName           # (Replace TaskName with the name of your task.) 

    You may have to tinker with the timeout number. What you're looking for is for some amount of time (in seconds) that falls between a) the time required for the OS's clock to synchronise after resume, and b) the amount of time you delayed your task to run. Setting this number can get squirrelly given that the delay time is a maximum amount and not a specific amount. Try to set this timeout as close as possible to the time needed for the OS's clock to synchronize.

  3. Create a second task – this task will run the batch file you just created upon system resume.

    Trigger: Begin the task: "On an event" Log: System Source: Power-Troubleshooter Event ID: 1 Action: Select the batch file you created in step 2. 

    When configured properly, this new task should run on resume and kill the original task during the 1 minute delay you added to its configuration.