Agendador de Tarefas do Windows - Agende uma tarefa para executar 15 minutos após a conclusão de outra tarefa

2

Eu tenho duas tarefas configuradas no Agendador de Tarefas do Windows. Um deve rodar às 3:00 da manhã e o outro deve rodar 15 minutos depois. Se o computador estiver desligado quando as tarefas estiverem agendadas para execução, as tarefas serão definidas para serem executadas quando o computador for inicializado. O problema é que as duas tarefas não podem ser executadas ao mesmo tempo. O que eu quero fazer é aguardar que a primeira das duas tarefas seja concluída e, depois de concluída, aguarde 15 minutos antes do início da segunda tarefa. Como posso configurá-lo no Agendador de Tarefas? Não consigo configurar o sistema para que a segunda tarefa comece a ser executada assim que a primeira é executada, pois as duas tarefas não são nada mais do que arquivos em lote que invocam outro programa e as duas coisas que esses arquivos em lote fazem com o programa não pode ser feito ao mesmo tempo. Como a primeira tarefa deve durar apenas 5 minutos, eu preciso dar alguma margem para a segunda tarefa começar.

    
por DavidB 16.01.2014 / 23:28

2 respostas

2

Você pode usar Schtasks ou At a partir do arquivo de lote e agende a tarefa 15 minutos no futuro. / p>     

por 17.01.2014 / 00:26
0

Agradeço que isso já tenha sido marcado como respondido, mas tenho uma exigência em meu cenário em que não posso modificar a tarefa de "acionamento".

A solução é criar uma tarefa com um acionador de filtro de evento personalizado que é acionado quando a tarefa de acionamento é concluída. A origem dessa solução é proveniente de aqui mas eu expliquei a parte principal abaixo.

No Agendador de Tarefas, selecione a tarefa do acionador e, no painel abaixo, selecione a guia Histórico. Supondo que essa tarefa tenha sido concluída pelo menos uma vez antes, você poderá ver um evento com uma Categoria de Tarefa Tarefa Concluída. Clique com o botão direito do mouse no evento Tarefa Concluída e selecione Propriedades do Evento. Na guia Detalhes da janela Propriedades do evento que é aberta, selecione a Exibição XML, que deve ser algo como isto (informações potencialmente confidenciais removidas):

<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
    <System>
        <Provider Name="Microsoft-Windows-TaskScheduler" Guid="{DE7B24EA-73C8-4A09-985D-5BDADCFA9017}" /> 
        <EventID>102</EventID> 
        <Version>0</Version> 
        <Level>4</Level> 
        <Task>102</Task> 
        <Opcode>2</Opcode> 
        <Keywords>0x8000000000000001</Keywords> 
        <TimeCreated SystemTime="2014-01-21T15:28:27.746689500Z" /> 
        <EventRecordID>978</EventRecordID> 
        <Correlation ActivityID="{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}" /> 
        <Execution ProcessID="10656" ThreadID="11656" /> 
        <Channel>Microsoft-Windows-TaskScheduler/Operational</Channel> 
        <Computer>XXXXXXXXXXXXXXXXXXXXXXXXXX</Computer> 
        <Security UserID="S-X-X-XX-XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX-XXX" /> 
    </System>
    <EventData Name="TaskSuccessEvent">
        <Data Name="TaskName">\ping</Data> 
        <Data Name="UserContext">XXXXXXXXXX\XXXXXXXXXXXXX</Data> 
        <Data Name="InstanceId">{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}</Data> 
    </EventData>
</Event>

O disparador personalizado que você precisa escrever é basicamente uma expressão XPath que avalia um filtro que corresponde ao evento Tarefa Concluída da tarefa de disparo. Com uma tarefa chamada "ping", o acionador seria:

<QueryList>
  <Query Id="0" Path="Microsoft-Windows-TaskScheduler/Operational">
    <Select Path="Microsoft-Windows-TaskScheduler/Operational">*[EventData[@Name='TaskSuccessEvent'][Data[@Name='TaskName']='\ping']]</Select>
   </Query>
</QueryList>

Na janela Editar Acionador, você pode definir a 'Tarefa de Atraso para: 15 minutos', que deve alcançar o resultado desejado sem a necessidade de modificar a tarefa original.

Existem muitos outros XPaths que podem ser escritos para criar gatilhos mais sofisticados. Esta postagem no blog fornece um pouco mais de informação e esta documentação da Microsoft parece um bom começo para uma leitura mais profunda.

    
por 21.01.2014 / 17:31