Inicie o serviço do Agendador de tarefas minimizado

Inicie o serviço do Agendador de tarefas minimizado

Depois de criar uma tarefa agendada após seguiresta pergunta do superusuário, posso iniciar um serviço com êxito sem o prompt do UAC. As opções selecionadas foram:

  • Start a program
  • Program\script=C:\Windows\System32\net.exe
  • Add arguments (optional)=start "SERVICE-NAME"

Então, em um arquivo em lote eu chamo schtasks /run /tn TASK-NAME. Depois de testar isso, criei um atalho para o arquivo em lote e configurei a Runopção como Minimised.

Tudo isso funciona, exceto que quando o serviço real é iniciado, uma janela maximizada do prompt de comando aparece com a linha única The SERVICE-NAME service is starting. Isso desaparece após alguns segundos.

Como posso dizer ao Agendador de Tarefas para iniciar o programa de destino silenciosamente (ou minimizado) sem o pop-up? Se o prompt de comando pop-up fosse minimizado, tudo bem.

Responder1

O problema é que quando você configura o atalho para executar minimizado você inicia minimizado apenas o programa que inicia a tarefa agendada, e não o programa que a tarefa executa. Você precisa de outra peça na sequência de lançamento da sua máquina Rube Goldberg, faça as seguintes alterações:

  • Program\script=C:\Windows\System32\cmd.exe
  • Add arguments (optional)=/c start /min net start "SERVICE-NAME"

O primeiro “start” é o cmd.exe startcomando, que usamos para duas funções:

  1. Lançamento net.exeminimizado.
  2. Faça taskeng.exeterminar assim que net.exefor iniciado, em vez de esperar que termine.

Observe que esta solução não é perfeita, pois taskeng.exepiscará brevemente até net.exeser iniciada, mas geralmente menos de um segundo.

Responder2

Você pode iniciar um serviço (ou qualquer outro programa) sem que nenhuma janela pisque,nem sequer minimizado.

Crie uma tarefa:

  • Comando/script:mshta.exe
  • Adicione argumentos (opcional):
    "javascript: new ActiveXObject('shell.application').ShellExecute('net.exe', 'start <SERVICE-NAME>', '', 'open', 0); close();"

Como você deseja iniciar um serviço, você precisa de direitos administrativos, então verifiqueExecute com privilégios mais altosna primeira aba.

Para executar a tarefa sem mostrar nenhuma janela, você usa o mesmo truque. Crie um atalho com o seguinte comando:

mshta.exe "javascript: new ActiveXObject('shell.application').ShellExecute('schtasks.exe', '/run /tn <TASK-NAME>', '', 'open', 0); close();"

Notas

  • O usuário que executa o atalho deve ser um administrador porque usuários normais podem executar apenas suas tarefas e esta tarefa tem privilégios mais altos. Caso contrário, o schtaskscomando falhará com “acesso negado”.
  • Se a tarefa estiver em uma pasta de tarefas, ela /tn <TASK-NAME>será /tn <FOLDER>\<TASK>do shell e você deverádobrar a barra invertidapara escapar no mshtacomando do atalho.
  • Alguns programas antivírus (pelo menos o Kaspersky) podem considerar uma tarefa usada mshtadesta forma como suspeita ou um risco potencial e, portanto, excluí-la.
  • Você pode usar esse truque para executar qualquer programa oculto sem aparecer nenhum. Basta substituir net.exepelo nome do seu programa e a start <SERVICE-NAME>parte com os parâmetros necessários.

Responder3

Iniciar programa minimizado

Só isso funciona para mim, Windows 11

informação relacionada