Estou usando o PSExec para abrir determinado programa de servidor que possui uma interface gráfica minúscula, em outro computador. Tanto o local quanto o destino são Win7 de 64 bits. eu abro usando
psexec \myothercomputer -u Me -p mypass -i -d -h myapp.exe
Isso funciona bem quando também estou logado no outro computador. Mas minha ideia de executar este programa dessa forma é não precisar fazer login naquele computador.
Hoje tentei rodar a aplicação sem estar logado só para ver o que aconteceu. Achei que iria retornar um erro. No entanto, o PSExec retornou um ID de processo.
Aí entrei naquele computador e para minha surpresa tive uma espécie de "sombra" gráfica, quer dizer, o formato do aplicativo que tentei rodar!...... como se ele tivesse aberto mesmo que eu não estivesse logado.
Achei que fosse um problema de atualização de tela e tentei várias maneiras de "acordar" ou interagir com aquele aplicativo, mas não foi exibido corretamente. Usando o gerenciador de tarefas, percebi que o consumo de memória deste aplicativo era muito pequeno para o que deveria ser... então acho que em algum momento deu errado. E é isso que eu realmente espero, ir correr.
Perguntas: Por que o PSExec abre com sucesso um aplicativo interativo sem estar logado? Por que então meu aplicativo interativo não funciona corretamente?
Responder1
de acordo comPSExecpágina, a opção -i [session] faz o seguinte:
Execute o programa para que ele interaja com a área de trabalho da sessão especificada no sistema remoto. Se nenhuma sessão for especificada, o processo será executado na sessão do console.
No seu comando, você não especifica uma sessão imediatamente após o -i, como indicam as páginas de manual.
Observo também que você especificou -d. Não acho que você possa misturar -i e -d, especialmente se o usuário não estiver logado, porque -i é executado na sessão do console, mas -d diz para não usar a sessão do console para determinar o tempo de vida do processo:
-d Não espere o processo terminar (não interativo).