Tarefa agendada do Windows se recusa a executar

2

Estou tentando configurar uma tarefa diária ( executando o CTest a partir de um script em lote ). Eu usei a GUI padrão do meu Vista Pro 32bits e configurei a seguinte tarefa:

> 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>

A partir da GUI, ele me diz que a última corrida aconteceu no 24th , enquanto hoje é o 28th , então é claramente executado corretamente por alguns dias e depois pare. Existe uma maneira de configurar as tarefas diárias do Windows, que na verdade são executadas na base diária ? Meu usuário tem direitos de administrador, tem uma senha e a estação de trabalho está conectada corretamente (sem falta de energia durante o fim de semana).

Como pode ser visto na saída XML , o sinalizador WakeToRun está definido corretamente como true . No entanto, no sistema de gerenciamento de energia, não posso definir o famoso Allow wake timers (interface se em francês, mas claramente os 4º parâmetros estiverem faltando, simplesmente compare com isso )

aquiestáamesmacapturadeteladepoisqueeuclicoemChangesettingsthatarecurrentlyunavailable:

Claramente, o código acima não faz uso de nenhuma UI , pelo menos não abre nada quando clico com o botão direito do mouse em "executar" no painel de agendadores do Windows. Corre suavemente quando executado à mão.

Parece que uma tarefa não pode ser executada quando o computador está adormecido ...

    
por malat 28.04.2014 / 12:11

2 respostas

1

Você precisa ativar os cronômetros de ativação nas opções do plano de economia de energia:
Control Panel - > Power Options - > Change plan settings - > Change advanced power settings .
Na lista, item Sleep , altere Allow wake timers para Enable .

Os parâmetros da GUI para a tarefa agendada devem incluir:

Na guia Geral :

  • Verifique Run whether user is logged in or not

Na guia Condições :

  • Verifique Wake the computer to run this task .

Se não houver uma caixa de seleção Wake the computer to run this task , provavelmente seu BIOS ou hardware não suportam temporizadores de ativação, e é por isso que o Windows não exibirá a opção.

Se for esse o caso, a única outra idéia que eu tenho é, se o wake-on-LAN for suportado, talvez fazer o despertar de outro computador na rede.

    
por 06.05.2014 / 18:10
0

Se você não conseguir que o agendador de tarefas funcione para você e sua tarefa for iniciada a partir de dormir ou hibernação , consulte WakeOnStandby . É grátis e só pode fornecer o que você está procurando.

    
por 07.05.2014 / 14:36