Назад | Перейти на главную страницу

Планировщик заданий - условия простоя задания

Снова я с Планировщиком заданий.

Microsoft - условия простоя задачи

Под Windows 7 задачи работают в соответствии с правилами, указанными в ссылке ... протестировано, и все работает.

Под Windows 10 (Pro v1809 со всеми обновлениями) ... ну не совсем так.

Во-первых, обе задачи (под Windows 7 и Windows 10) одинаковы. Задача создается так:

Если я копирую несколько файлов в 14:15, перемещаю мышь в 14:15 и набираю на клавиатуре в 14:15, а затем выхожу из компьютера в 14:15, я ожидаю, что задача будет выполнена в 15: 15 а не в 14:30, или я не прав?

Задача всегда выполняется в 14:30 (если я оставляю свой компьютер на максимальном значении в 14:25) или не выполняется вообще (в течение этого дня), если я работаю на своем компьютере в 14:30. Какого черта? Если я воссоздаю задачу на компьютере с Windows 7, все будет работать нормально.

Это было протестировано на 2 разных компьютерах с Windows 7 и 3 разных компьютерах с Windows 10. Числа здесь не имеют значения, потому что то же самое происходит в 02:00 с временем простоя 15 минут и временем ожидания 2 часа. Они здесь, чтобы нарисовать картину происходящего.

Я даже подумал, что это как-то связано с «рабочим временем» в Windows 10, которое установлено между 06:00 и 00:00, поэтому я перенес задачу на 14:30 ... да, это не помогло.

И да, я понимаю, что Windows 10 видит время простоя иначе, чем Windows 7, но это будет означать, что задача будет выполнена позже, а не раньше, и особенно не в то время, когда был установлен триггер.

Было бы интересно, если бы кто-нибудь мог подтвердить такое поведение и, возможно, дать какое-то объяснение, почему это происходит.


13.05.2019. - Теперь я точно могу это подтвердить. Сегодня двое моих друзей подтвердили эту проблему. Это должно быть ошибкой в ​​Windows 10 v1809 (возможно, и для более ранних версий, но у меня нет к ним доступа). Также я могу подтвердить, что это работает без проблем на машинах с Windows 7. Отлично, просто отлично. Отправлю этот вопрос на форумы Microsoft.


15.05.2019. - Удалось проверить это на Windows 10 v1607 ... происходит то же самое. Как это возможно, что никто еще (более двух лет) не сообщил об этой проблеме в Microsoft? Это не может быть так, как оно должно было вести себя, это явная ошибка в Windows 10.

Вы пробовали использовать На холостом ходу Вместо триггера? Насколько мне известно, условия простоя задачи использовались только для этого триггера.

Я создал тестовое задание - оно ниже. Он будет выполняться через 1 минуту каждый раз, когда компьютер бездействует. Чтобы проверить это, я просто блокировал экран Windows, используя Win + L ярлык. Задача была выполнена ровно через 1 минуту после блокировки компьютера.


Test Task.xml:

Вы можете импортировать эту задачу в планировщик задач и протестировать.

<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
    <Date>2019-05-12T18:21:43.6698729</Date>
    <Author>nsm</Author>
    <URI>\Test Task</URI>
  </RegistrationInfo>
  <Triggers>
    <IdleTrigger>
      <ExecutionTimeLimit>PT4H</ExecutionTimeLimit>
      <Enabled>true</Enabled>
    </IdleTrigger>
  </Triggers>
  <Principals>
    <Principal id="Author">
      <UserId>S-1-5-18</UserId>
      <RunLevel>HighestAvailable</RunLevel>
    </Principal>
  </Principals>
  <Settings>
    <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
    <DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
    <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
    <AllowHardTerminate>true</AllowHardTerminate>
    <StartWhenAvailable>false</StartWhenAvailable>
    <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
    <IdleSettings>
      <Duration>PT1M</Duration>
      <WaitTimeout>PT1H</WaitTimeout>
      <StopOnIdleEnd>true</StopOnIdleEnd>
      <RestartOnIdle>false</RestartOnIdle>
    </IdleSettings>
    <AllowStartOnDemand>true</AllowStartOnDemand>
    <Enabled>true</Enabled>
    <Hidden>false</Hidden>
    <RunOnlyIfIdle>true</RunOnlyIfIdle>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>PT4H</ExecutionTimeLimit>
    <Priority>7</Priority>
  </Settings>
  <Actions Context="Author">
    <Exec>
      <Command>C:\Projects\StackOverflow\cmd\testidletask.cmd</Command>
    </Exec>
  </Actions>
</Task>

testidletask.cmd:

@echo off
for /f "tokens=*" %%i in ('date /T') do set DATE=%%i
for /f "tokens=*" %%a in ('time /T') do set TIME=%%a
echo %DATE% %TIME% >>C:\Projects\StackOverflow\cmd\testidletask.log