Usando o Agendador de Tarefas para executar uma tarefa antes do desligamento

6

Como de escrever, as únicas opções disponíveis são "Begin the task":

  • Em um cronograma
  • No logon
  • Na inicialização
  • Em marcha lenta
  • Em um evento
  • Na modificação / criação de tarefas
  • Ao conectar-se à sessão do usuário
  • Ao desconectar da sessão do usuário
  • No bloqueio da estação de trabalho
  • No desbloqueio da estação de trabalho

Existe uma maneira de fazer o Agendador de Tarefas executar uma tarefa antes do desligamento?

GP Burdell
fonte

Respostas:

12

Mesmo que este seja um segmento mais antigo, eu gostaria de adicionar uma solução que eu criei que funciona bem.

Eu queria executar um script ou arquivo em lotes sempre que um desligamento ou reinicialização fosse iniciado, mas não queria usar a função Scripts de desligamento de diretivas de grupo. A razão para isso foi bastante profunda, mas eu basicamente precisava executar um script antes que certos serviços fossem fechados.

Acabei criando uma tarefa agendada da seguinte forma:

  • Tipo : no evento (básico)
  • Log : sistema
  • Fonte : User32
  • ID do evento : 1074

Quando um usuário ou comando inicia um desligamento ou reinicia como um usuário conectado ou em nome de um usuário, a ID de evento 1074 será acionada. Ao criar uma tarefa para usar isso para acionar um script, ele iniciará o script e permitirá que ele seja concluído, no entanto, ele só relatará a tarefa como "em execução" ou "acionada" nos logs. Eu não usei isso com um script longo, então pode valer a pena testar mais, mas funciona muito bem para scripts curtos.

Nathan
fonte
2

O Agendador de Tarefas é limitado em sua capacidade de agendar uma tarefa no desligamento. Uma pergunta semelhante foi feita no Stack Overflow ( como programar uma tarefa para executar quando fechar janelas ) e as respostas descrevem vários métodos além de usar o Gerenciador de Tarefas, incluindo a Diretiva de Grupo. Método do editor, que é descrito em detalhes e pode ser uma maneira melhor de lidar com isso.

O Agendador de Tarefas pode ser usado em vez do Editor de Diretiva de Grupo. No entanto, é bom apenas para tarefas muito curtas, que serão executadas enquanto o sistema estiver reiniciando ou sendo desligado, o que geralmente é de apenas alguns segundos.

Além disso, observe que o status da tarefa pode ser:

A operação solicitada não foi executada porque o usuário não efetuou logon na rede. O serviço especificado não existe. (0x800704DD)

No entanto, isso não significa que não foi executado.

Oz Edri
fonte
Isso deve ser postado como um comentário em vez de uma resposta, já que o OP especificamente deseja saber como fazer isso usando o Agendador de Tarefas . Você pode postar comentários assim que tiver reputação suficiente.
Rsya Studios
4
Você está certo, e eu gostaria de poder fazer isso agora, já que não sei quando e se vou receber crédito suficiente. Se for muito problemático, exclua minha resposta e adicione-a como um comentário em seu nome. Embora eu não consiga nenhum reconhecimento, a comunidade receberá esta informação - e essa é a primeira prioridade :-)
Oz Edri
1
+1 para ajudá-lo a obter o suficiente rep, você pode postá-lo como um comentário quando chegar ao limite :)
Rsya Studios