executa o script manualmente, mas não no agendador de tarefas

0

Eu tenho problemas com o agendador de tarefas no Windows 7 Pro. Eu quero executar um script. Execução manual funciona perfeitamente, o gerenciador de tarefas não faz nada.

Parte do script está definindo o foco em uma janela específica usando este VBScript:

Dim ObjShell :Set ObjShell = CreateObject("Wscript.Shell")
ObjShell.AppActivate("Notepad")

As duas linhas acima são apenas parte do script maior, mas para a verificação de erros, excluí todo o resto. Primeiro eu tenho que fazer funcionar o original.

O bloco de notas está aberto e executa manualmente o vbs define o foco. A execução do script usando o agendador de tarefas não define o foco. Eu mesmo executei o script manualmente no agendador de tarefas (rightclick-run) - não define o foco.

A tarefa é executada com privilégios elevados e com o mesmo usuário que o início manual. O computador não está desligado, não está bloqueado.

Por que o script é executado manualmente, mas não no agendador de tarefas? Como posso executá-lo no agendador de tarefas?

€ dit: Eu quero executar o arquivo vbs, não um arquivo .bat, se possível, como eu não quero abrir uma janela cmd.

    
por eckhart 06.06.2016 / 13:38

2 respostas

1

Para que uma tarefa tenha acesso à sessão interativa (por exemplo, programas em execução e janelas abertas), é necessário configurá-la para ser executada em um usuário conectado. Simplesmente vá para as propriedades da tarefa e na guia Geral, selecione Run only when user is logged on .

Usar a outra opção é mais seguro, mas isso torna-a mais restritiva.

    
por 06.06.2016 / 17:49
0

O AppActivate não funciona em uma tarefa ; provavelmente como precaução de segurança.

O conselho geral em torno do 'Net (supondo que você quer usar SendKeys e similares) é desistir e usar AutoIt em vez de VBScript.

PS: Eu também tentei o PowerShell com o SetForegroundWindow (importado do user32.dll), e ele se comportou da mesma maneira que VBS.

    
por 06.06.2016 / 17:02