Criei um arquivo em lotes ( EnableDisable.bat
) que desabilitará um trabalho do Agendador de Tarefas do Windows ( ) em um sistema local, se um trabalho com o mesmo nome ( ) já estiver ativado e em execução em outro sistema remoto.SampleJob
SampleJob
Parece que quando o trabalho é configurado com a Run whether user is logged on or not
opção marcada, Run with Highest privileges
ele simplesmente não funciona e o motivo é difícil de determinar e não tenho certeza de como solucionar o problema.
Arquivo em lote
for /f "tokens=1" %%j in ('schtasks /Query /S [servername] /TN "SampleJob" /NH ^| findstr "Ready ^| Running"') do schtasks /Change /Disable /TN "%%j"
Nota: O sistema remoto é referido como [
servername
] e será substituído pelo nome real do servidor remoto, quando necessário.
Configurações de trabalho do Agendador de tarefas do Windows
- Este arquivo em lotes está configurado como um trabalho do Agendador de Tarefas do Windows
- Nome :
EnableDisableJob
- Opção de segurança :
Run whether user is logged on or not
Run with Highest privileges
- Nome :
Observações
Se eu executar o trabalho com o, Run only when user is logged on
ele parece funcionar muito bem sem nenhum problema. No entanto, parece que quando tento executá-lo com a outra opção, e como essa conta não está conectada, ela não pode ser executada quando for o caso.
Questão
Como solucionar esse tipo de problema e por onde devo começar o processo?