Situação
Eu tenho um script em lote que prepara alguns arquivos, executa um programa ( .exe
) e, em seguida, exclui esses arquivos.
Esta tarefa deve ser executada de hora em 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 por meio do script .bat
, nem ao chamar o .exe
diretamente), mas eu não recebo mensagens de aviso ou de erro nos logs .
Configuração
A tarefa é configurada para ser executada como uma conta de serviço do Windows que possui todos os privilégios definidos corretamente. Ao usar essa conta para fazer logon via RDP, posso executar o .bat
e o .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 registro de data e hora modificado no não muda através da tarefa.
Nos logs de tarefas agendadas eu recebo as mensagens de informação para a tarefa iniciando um processo, saindo, etc. O "código de resultado", no entanto, é 111
(tentei o Google sem sorte, a única associação que obtive é "nome do arquivo é muito longo", que é apenas completamente irrelevante AFAIK). 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.
Eu 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 no qual a tarefa é executada (via RDP), nenhuma janela é exibida quando inicio a tarefa agendada.
Edite sobre a GUI
Eu construí 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 "executar se o usuário está conectado ou não", e a opção run with highest privileges
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, por favor me avise nos comentários.