Situação
Eu tenho um script em lote que prepara alguns arquivos, executa um programa ( .exe
) e exclui os arquivos.
Essa tarefa deve ser executada a cada hora, por isso estou tentando configurar isso usando Tarefas agendadas. O problema é que o programa mencionado anteriormente não é executado corretamente quando chamado da tarefa (nem pelo .bat
script nem ao chamar .exe
diretamente), mas não recebo nenhuma mensagem de aviso ou erro nos logs.
Configuração
A tarefa está configurada para ser executada como uma Conta de Serviço do Windows com todos os privilégios definidos corretamente. Ao usar esta conta para efetuar logon via RDP, posso executar o .bat
e .exe
diretamente sem problemas, mas ainda assim a tarefa parece não fazer nada. Isso é facilmente observado porque o programa sempre modifica um arquivo e o carimbo de data / hora modificado não muda na tarefa.
Nos logs de tarefas agendadas, recebo as mensagens informativas da tarefa iniciando um processo, saindo, etc. O "código de resultado", no entanto, é 111
(tentei pesquisar no Google sem sorte, a única associação que recebo é "nome do arquivo é muito longo ", que é um AFAIK completamente irrelevante). Nos logs do aplicativo, não recebo absolutamente nada.
O que eu suspeito é o problema
O programa é uma monstruosidade antiga que gera algum tipo de tela inicial (na verdade é uma janela normal), mesmo que a GUI não seja necessária porque não requer interação e se fecha após as operações. A janela aparece por cerca de 2 segundos.
Suspeito que esse requisito para uma GUI tenha algo a ver com a falha da tarefa, mas não tenho certeza. Quando efetuo login com o usuário sob o qual a tarefa é executada (via RDP), nenhuma janela aparece quando inicio a tarefa agendada.
Edite sobre a GUI
Eu criei um executável C # muito pequeno que inicia o programa sem a janela principal (usando ProcessStartInfo.WindowStyle = ProcessWindowStyle.Hidden
). Mesmo assim, a tarefa agendada ainda não consegue iniciar o programa corretamente, mas o código de retorno é agora 0
.
Atualizar
Quando configuro a tarefa para dizer "execute se o usuário está conectado ou não" e a run with highest privileges
opção está desmarcada , o valor do erro é 2147943859
.
O que posso fazer para solucionar problemas?
SO = Windows Server 2008 R2 SP1
Se mais informações forem necessárias, entre em contato nos comentários.
.exe
"programa" com parâmetros de dentro de um script, a entrada deve ser fornecida adequadamente como argumento.