Eu tenho um aplicativo Web que é executado no Windows Server 2008 R2, que possui um grande número de tarefas agendadas que cuidam de todo o material de back-end. Quando faço uma implantação de software que toca o banco de dados, preciso desativar todas as tarefas agendadas. Atualmente, tenho uma longa lista de verificação que preciso percorrer manualmente, desativando cada tarefa agendada à medida que for avançando - certamente esse é um trabalho pronto para a automação no Powershell.
Infelizmente, a documentação do Powershell parece bastante tímida sobre como desabilitar uma tarefa agendada existente (e, é claro, reativá-la assim que a liberação for concluída com êxito). Posso obter uma lista de tarefas prontas, em execução ou desabilitadas, mas o que vem a seguir?
fonte
at.exe
. (Exemplo:)AT 09:00 /every:SUNDAY shutdown.exe /r /f /d p:4:1 /c "Reboot via SchTask (AT Job)"
. O erro que você receberá é 0x80041327; A tarefa possui propriedades que não são compatíveis com as versões anteriores do WindowsSe você está apenas tentando interromper TODAS as tarefas, pode ser mais fácil interromper o serviço Agendador de Tarefas. O módulo ScheduledTasks não está disponível até o Windows Server 2012, portanto, gerenciar tarefas não é tão simples quanto parar e iniciar um serviço:
Se isso não funcionar, o schtasks.exe ainda pode ser usado no PowerShell para gerenciar tarefas individuais:
fonte
É isso que você está procurando (Disable-ScheduledTask) ?
fonte
Mesmo uma maneira melhor de você não precisar especificar os nomes das tarefas:
fonte
Isto é perfeito! Funciona melhor do que Get-ScheduledTask desde que eu estou em um ambiente misto de 2008/2012. Adicionei algumas linhas para consultar o AD e chamar esse comando em um grupo de computadores. Meu objetivo era desativar a tarefa do "Gerenciador do Servidor" sempre que um usuário faz login. Presto! tudo se foi!
fonte
Olhe para esta função
Por exemplo, você pode desativar todas as tarefas na pasta "\ mysql" chamando
Control-Tasks -FolderPath "\mysql" -Disable -Recursive
Esses trechos de código vêm de Como desabilitar / habilitar a tarefa agendada em lote pelo PowerShell , você pode baixar o arquivo de amostra completo lá.
fonte
isso funcionou para mim
fonte