É possível usar o Agendador de Tarefas para abrir um arquivo VBS sem uma janela de comando?

2
set objShell = createobject("wscript.shell")  
objShell.Run("""C:\Program Files\Windows Defender\MpCmdRun.exe"" ""-SignatureUpdate""") , 0 <br>

Set WshShell = CreateObject("WScript.Shell") 
WshShell.Run chr(34) & "D:\Balloontip.vbs" & Chr(34), 0
Set WshShell = Nothing

O acima é usado em um arquivo VBS. Quando eu uso o Agendador de Tarefas para executá-lo, uma janela de comando aparece e desaparece imediatamente. É possível executá-lo sem qualquer janela de comando?

Se eu usar a conta de usuário 'Matthew_Wai', o arquivo .vbs poderá ser executado com uma janela momentânea.
Mas se eu usar 'SYSTEM' como mostrado abaixo, o arquivo .vbs não pode ser executado sem janela e mensagem de erro (nada acontece).
(Eu posso mudar meu idioma de exibição para Inglês, se necessário). enter image description here

Matthew Wai
fonte
1
Por que você não pode executar o script vbs? (Você tentou executar cscript.exe com seu script vbs como argumento?) Além disso, se você está apenas querendo abrir o arquivo txt no bloco de notas, você pode executar o bloco de notas diretamente e passar o arquivo txt como argumento.
sgmoore
O Agendador de Tarefas não pode executar diretamente um arquivo VBS. Você pode me ensinar como usar o Agendador de Tarefas para executar cscript.exe com o meu script vbs como um argumento? Na verdade, o script vbs é usado para executar um arquivo bat em vez de um arquivo txt.
Matthew Wai
1
Quando você cria uma tarefa para iniciar um programa, ele deve perguntar pelo programa que está na sua pasta system32, (isto é, normalmente c: \ windows \ system32 \ cscript.exe) e você pede argumentos e você precisa digitar o arquivo completo. nome do caminho do seu arquivo de script.
sgmoore
Obrigado, funciona. Mas quando ele é executado, uma janela de comando ainda aparecerá e desaparecerá imediatamente. É inevitável quando o Agendador de Tarefas executa um arquivo?
Matthew Wai

Respostas:

2

Usar wscript.exe para executar o script, em vez de cscript.exe

Win32Guy
fonte
Bingo! Isso é o que eu quero. Funciona perfeitamente. Nenhuma janela de comando é exibida. Muito obrigado, w32sh!
Matthew Wai
0

Eu normalmente configuro as tarefas que eu crio dentro Task Scheduler utilizar o built-in System conta e também marque a caixa para marcá-los como Hidden. Como resultado, nunca vejo qualquer interface aparecer na tela:

Task Scheduler

Run5k
fonte
Observe que a caixa de seleção Oculto se aplica à exibição da tarefa na janela Agendador de tarefas quando Visualizar | Mostrar tarefas ocultas está fora.
Ben N
@BenN, obrigado pelo esclarecimento!
Run5k
@ Run5k, eu tinha feito como você disse, mas o arquivo não pôde ser executado. Eu editei minha pergunta. Por favor, veja de novo.
Matthew Wai
Antes que você disse que estava correndo, mas uma janela apareceria brevemente ... mas agora ela não está funcionando? Se o arquivo não pôde ser executado, que tipo de erro (se houver) você está vendo?
Run5k
Desculpe pelo mal entendido. Eu editei minha pergunta. Por favor, leia de novo.
Matthew Wai
0

O Agendador de Tarefas abrirá felizmente um arquivo com o manipulador padrão se a tarefa for executada apenas quando o usuário estiver conectado, ou seja, com acesso à área de trabalho. (Caso contrário, o manipulador será executado, mas a janela criada será na sessão 0 com todo o material do sistema invisível.)

Portanto, uma configuração como essa faz exatamente o que você deseja:

execute the file itself

Uma desvantagem: o Agendador de Tarefas não gosta de espaços no caminho, mesmo se você citá-lo, portanto, se o local completo do seu arquivo tiver um espaço, talvez seja necessário usar o abreviado Nome 8.3 para um ou mais componentes de caminho.

Ben N
fonte
Na verdade, tenho que executar um arquivo .vbs em vez de um arquivo .txt. Eu editei minha pergunta. Veja de novo.
Matthew Wai
@MatthewWai Por que vale a pena, executar um script VBS também funciona para mim, desde que o manipulador padrão para esse tipo de arquivo seja wscript. Fico feliz que a outra resposta funcione para você.
Ben N
Apenas por interesse, qual é a diferença entre wscript.exe e cscript.exe?
Matthew Wai
@MatthewWai cscript é projetado para executar scripts em um c console, enquanto wscript está marcado como sendo um aplicativo que pode criar W janelas. ( Relevante questão SO. )
Ben N
0

Você pode usar o Início oculto utilitário para executar um script sem a janela do console que aparece usando o /NOCONSOLE interruptor.

kicken
fonte