2

Я пытаюсь настроить ежедневное задание (запуск CTest из пакетного скрипта). Я использовал графический интерфейс по умолчанию для моей Vista Pro 32bit и настроил следующую задачу:

> schtasks /query /tn "trunk nightly" /xml
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
    <Date>2014-04-17T11:44:43.2643714</Date>
    <Author>PC-de-optiplex3\voxxl</Author>
  </RegistrationInfo>
  <Triggers>
    <CalendarTrigger>
      <StartBoundary>2014-04-17T05:00:00</StartBoundary>
      <Enabled>true</Enabled>
      <ScheduleByDay>
        <DaysInterval>1</DaysInterval>
      </ScheduleByDay>
    </CalendarTrigger>
  </Triggers>
  <Principals>
    <Principal id="Author">
      <RunLevel>HighestAvailable</RunLevel>
      <UserId>PC-de-optiplex3\voxxl</UserId>
      <LogonType>Password</LogonType>
    </Principal>
  </Principals>
  <Settings>
    <IdleSettings>
      <StopOnIdleEnd>true</StopOnIdleEnd>
      <RestartOnIdle>false</RestartOnIdle>
    </IdleSettings>
    <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
    <DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
    <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
    <AllowHardTerminate>true</AllowHardTerminate>
    <StartWhenAvailable>false</StartWhenAvailable>
    <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
    <AllowStartOnDemand>true</AllowStartOnDemand>
    <Enabled>true</Enabled>
    <Hidden>false</Hidden>
    <RunOnlyIfIdle>false</RunOnlyIfIdle>
    <WakeToRun>true</WakeToRun>
    <ExecutionTimeLimit>P3D</ExecutionTimeLimit>
    <Priority>7</Priority>
  </Settings>
  <Actions Context="Author">
    <Exec>
      <Command>C:\Dashboards\ctest_scripts\hpdesk_openjpeg.bat</Command>
      <WorkingDirectory>C:\Dashboards\ctest_scripts\</WorkingDirectory>
    </Exec>
  </Actions>
</Task>

Из графического интерфейса он говорит мне, что последний запуск произошел 24- го числа, а сегодня 28-й, поэтому ясно, что он работает правильно в течение нескольких дней, а затем останавливается. Есть ли способ настроить ежедневные задачи Windows, который на самом деле выполняется ежедневно ? У моего пользователя есть права администратора, пароль и рабочая станция правильно подключены (в выходные дни отключение питания отсутствует).

Как видно из вывода XML , флаг WakeToRun правильно установлен в true . Однако из системы управления питанием я не могу установить известные Allow wake timers (интерфейс, если на французском, но явно отсутствуют 4-е параметры, просто сравните с этим)

вот тот же снимок экрана после того, как я нажму на Change settings that are currently unavailable:

Очевидно, что приведенный выше код вообще не использует какой-либо пользовательский интерфейс, по крайней мере он ничего не открывает, когда я щелкаю правой кнопкой мыши «выполнить» на панели планировщиков Windows. Он работает плавно, когда выполняется вручную.

Это выглядит так, как будто задача не может быть запущена, когда компьютер спит ...

2 ответа2

1

Вы должны включить таймеры пробуждения в опциях плана энергосбережения:
Control Panel -> Power Options -> Change plan settings -> Change advanced power settings .
В списке пункт « Sleep установите для параметра « Allow wake timers Enable включения» значение « Включить» .

Параметры GUI для запланированной задачи должны включать:

На вкладке Общие :

  • Проверьте Run whether user is logged in or not

На вкладке Условия :

  • Установите Wake the computer to run this task .

Если флажок Wake the computer to run this task , то, скорее всего, ваш BIOS или аппаратное обеспечение не поддерживают таймеры пробуждения, поэтому Windows не отображает этот параметр.

Если это так, то единственная другая идея, которая у меня есть, - это, если поддерживается пробуждение по локальной сети, возможно, выполнить пробуждение от другого компьютера в сети.

0

Если вы не можете заставить планировщик задач работать на вас, и ваша задача запускается из спящего режима или режима гибернации, взгляните на WakeOnStandby. Это бесплатно и просто может предоставить то, что вы ищете.

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