O script não pode iniciar o exe quando executado no Agendador de Tarefas

0

Eu tenho um problema muito estranho.
Um script do PowerShell é para iniciar um exe. Ele funciona bem quando executado manualmente (clique com o botão direito em > executar) ou via chamada de script no console do powershell. No entanto, quando eu crio uma tarefa no agendador de tarefas, ele basicamente cria um processo com o nome próprio, mas o processo está vazio e não faz nada. Não requer CPU, o programa não está listado na barra de tarefas e a janela do programa não abre. O script basicamente contém apenas:

Start-Process -FilePath <Path to exe>

Eu também tentei:

& <path to file>

mas isso também não funcionou. A tarefa inicia o programa powershell.exe com o parâmetro

-ExecutionPolicy Unrestricted -Command "& C:\Scripts\MyScript.ps1"

Eu o rodei como um usuário administrador e também tentei "executar com privilégios mais altos" marcado. Isso também não ajudou.

Quando executo a tarefa e inicio o programa manualmente, isso resulta em dois processos separados com o mesmo nome, mas com identificadores diferentes. Normalmente, apenas uma instância do programa pode ser executada.

Aparentemente, isso é um problema com o agendador de tarefas, já que o script funciona bem se for executado manualmente. Alguém pode me ajudar aqui?

    
por Rattical Red 07.06.2018 / 10:43

1 resposta

0

Eu encontrei um problema parecido. Normalmente, o aplicativo com o qual tive esse problema abriria e começaria a processar uma fila de arquivos. Nesse caso, como você descreveu, ele ficava ocioso quando executado a partir de uma tarefa agendada. Em última análise, o que funcionou foi um arquivo de lote chamado da tarefa agendada que, em seguida, chamou o .ps1 que lançou o .exe.

As linhas no arquivo de lote são semelhantes a abaixo e são chamadas a partir da tarefa agendada com configurações correspondentes à sua descrição. LaunchProcess.ps1 na minha configuração contém um processo inicial padrão para o exe. Eu não usei este servidor 2008r2 passado, mas imagino funciona todo o caminho até atual.

arquivo de lote filename = restartProcess.bat

SET ThisScriptsDirectory =% ~ dp0 SET PowerShellScriptPath =% ThisScriptsDirectory% LaunchProcess.ps1 PowerShell -NoProfile -ExecutionPolicy Bypass -command "& {start-process PowerShell -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File" "% PowerShellScriptPath%" "' -Verb RunAs}";

    
por 08.06.2018 / 06:07

Tags