Tornar executável a janela CMD de execução quando é executada por um agendador de tarefas

1

Eu tenho uma tarefa que é executada no Windows Server 2016. A conta de usuário sob a qual a tarefa é executada está sempre conectada. Quando a tarefa é executada, ele executa o FBCMD.exe, que é o programa FinalBuilder, que executa alguns parâmetros. Quando eu inicio este programa via arquivo de lote, vejo a janela. Mas quando o agendador de tarefas inicia este programa usando exatamente os mesmos parâmetros, ele é executado em segundo plano. Eu quero essa janela para mostrar. De fato, quando nós rodamos isso no win7 ele apareceu. Aqui estão as imagens da configuração da tarefa. Isso pode ser feito?

    
por T.S. 13.01.2018 / 01:12

2 respostas

1

Executar uma tarefa agendada de forma interativa

Basta verificar o Run only when user is logged on na guia Geral e Opções de segurança para garantir que o processo seja executado de forma visível / interativa com o registro na sessão.

Desde que você diga " A conta de usuário sob a qual a tarefa é executada está sempre conectada " e o resultado esperado é que a tela fique visível quando o Agendador de Tarefas executa o processo, então você só precisa fazer esse ajuste simples para obter o resultado esperado. / p>

Maisrecursos

  • Contexto de segurança da tarefa

    • To make a task run interactively, select the Run only when user is logged on radio button.

por 13.01.2018 / 09:16
0

Condicionalmente executar uma tarefa agendada de forma interativa ou não

Se você precisar executar condicionalmente uma tarefa agendada de forma interativa com Tarefa Agendador se uma conta de usuário específica estiver conectada a um sistema ou então executá-la de forma não interativa, então descreverei algumas etapas para obter o resultado esperado com base em alguma lógica condicional e com um script em lote.

Essentially this solution will require a few simple things. . .

  1. Define a scheduled task to run interactively with the Run only when user is logged on option selected to run if the user account is logged on with no triggers defined
  2. Define another scheduled to run non-interactively with the Run whether user is logged on or not option selected to run if the user account is not logged on with no triggers defined
  3. Create a batch script (example below) that will check if the user account is logged on or not and based on the result execute either the interactive or non-the interactive scheduled task
  4. Define another scheduled to run non-interactively with the Run whether user is logged on or not option selected to run if the user account is not logged on with triggers defined for the frequency you need the jobs to run regardless if interactive or not—so this will be the scheduled job that executes either of the two other jobs from #1 or #2 above.

Script em lote

Isso usa sessão de consulta e findstr para verificar se o nome de usuário aplicável está ou não conectado ao console da máquina. Em seguida, ele usa schtasks para executar as tarefas agendadas interativas ou não interativas que você define sem nenhum acionador.

Você desejará alterar o valor SET username= para ser o que você precisa para verificar o nome da conta. Você precisará executá-lo interativamente com essa sessão, se ela existir (por exemplo, <Domain>\<Username> )

@ECHO OFF
SET username=user

query session | findstr /I /M "%username%" | findstr /I /M "console"
IF ERRORLEVEL 0 GOTO :InteractiveTask
GOTO :NonInteractiveTask

:InteractiveTask
SCHTASKS /Run /TN "\_SuperUserTesting\FinalBuilder_i"
EXIT

:NonInteractiveTask
SCHTASKS /Run /TN "\_SuperUserTesting\FinalBuilder_n"
EXIT

Importante: você precisará garantir que o caminho completo local e a tarefa name seja especificado com a opção /TN da schtasks comandos para apontar para a tarefa e o local de caminho corretos a estrutura hierárquica em que você salvou cada um com Agendador de Tarefas Veja abaixo as capturas de tela para esclarecer melhor.

Alémdisso,vocêprecisarágarantirqueaPermitirqueatarefasejaexecutadapordemandaestejadefinidanaguiaConfiguraçõesdecadatarefaagendada,queseráexecutadacom schtasks .

Tarefasagendadas

AtarefaagendadainterativadeveteraopçãoRunonlywhenuserisloggedonmarcadanaguiaGeralparaquesejaexecutadadeformainterativa.

AtarefanãointerativadeveteraopçãoRunwhetheruserisloggedonornotmarcadanaguiaGeralparaquesejaexecutadaseessacontanãoestiverconectadaàmáquina.

AtarefaqueverificaparadeterminarqualtarefaagendadadeveserexecutadacomoscriptemlotedeveteraopçãoRunwhetheruserisloggedonornotmarcadanaguiaGeralparaquesejaexecutadaindependentemente.Alémdisso,vocêpodeconfigurarosTriggerscomqualquerprogramaçãodesejada.

Maisrecursos

por 13.01.2018 / 20:12