Acredito que haja um erro nas tarefas agendadas do Windows 7/2012, para que elas não vejam as variáveis de ambiente corretas para o usuário que estão executando como:
link
Para confirmar que isso está ocorrendo, você pode executar SET>test.txt
em um arquivo em lotes em uma tarefa agendada, no mesmo contexto de usuário. Quando tento isso, ele não mostra o conjunto completo e correto de variáveis de ambiente para o usuário especificado; Ou seja, não é o mesmo conjunto que você vê se executar o mesmo comando (ou arquivo de lote) quando estiver realmente conectado como aquele usuário. (Ainda mais confusamente, isso depende se o usuário está logado ou não quando a tarefa agendada é executada; se eles estiverem logados, a tarefa faz ver as variáveis corretas.)
Acho que esse comportamento não está documentado ou previsto, e é um bug na maneira como as tarefas agendadas do Windows Server 2012 (talvez apenas R2?) são tratadas.
NB Isso também se aplica à variável PATH
, portanto, as tarefas agendadas só podem ver executáveis que estão no caminho padrão , no diretório atual ou com um caminho totalmente especificado. Chamar qualquer coisa que esteja no caminho do usuário especificado, mas não no caminho padrão, causará um erro difícil de depurar (já que funciona no teste!).