Como iniciar um aplicativo GUI do Windows a partir do telnet

4

Eu tenho um aplicativo GUI em execução em uma máquina cliente do Windows XP. Eu gostaria de fazer o telnet, desligá-lo, puxar alguns arquivos via ftp e depois iniciá-lo novamente.

É a última parte com a qual estou tendo problemas, pois parece que iniciar qualquer aplicativo GUI a partir do telnet "inicia" apenas no sentido em que é adicionado à lista de processos. Ele não aparece formulários ou realmente começa a fazer qualquer coisa (como escrever arquivos de log).

Tente você mesmo. Telnet localhost = > notepad.exe

Existe uma maneira simples de contornar essa limitação? Eu também tenho RAdmin instalado em todas essas máquinas, talvez haja uma maneira de usá-lo de alguma forma? Eu duvido, pois isso é para um script de automação e minha experiência é que o RAdmin tem 0 suporte para isso.

A propósito, eu comecei esta discussão em stackoverflow e foi recomendado para mim que vocês possam saber uma coisa ou duas sobre isso.

    
por George Mauer 10.06.2009 / 23:45

8 respostas

5

Veja o link para obter uma descrição longa e detalhada, embora não muito útil, sobre o que está acontecendo quando você inicia aplicativos de uma sessão de telnet. Muitos anos atrás eu escrevi um servidor de telnet para o Windows NT3.50 e aprendi tudo isso da maneira mais difícil: -)

Eu acho que você precisa olhar novamente para o que você está tentando fazer. De sua descrição eu acho que você tem algum aplicativo GUI sendo executado por um usuário logado e você quer matá-lo para que você possa fazer alguma manutenção, em seguida, reiniciá-lo. Matar é fácil, pois você pode simplesmente matar o processo. Reiniciá-lo de qualquer maneira útil é mais difícil. Você poderia definir o PC para autologin e executar o aplicativo no menu Iniciar? Então você pode simplesmente reiniciar o PC quando você pegar seus arquivos. Tenho um pouco de vergonha de admitir que foi isso que fiz em circunstâncias semelhantes.

JR

    
por 11.06.2009 / 10:19
9

Parece que isso não é possível com o serviço de telnet do Windows. Eu até testei a execução do serviço na conta sistema local com "interaja com área de trabalho" ativada, mas isso não funcionou (o que é bom, pois teria sérias implicações de segurança).

Como alternativa ao uso do telnet, recomendo PsExec . O PsExec é parte das ferramentas SysInternal agora gerenciadas pela Microsoft. Use a opção -i para ativar a interação na área de trabalho.

psexec \machine -u user -p password -i -w "C:\application" myapp.exe

Você pode baixar o PsExec aqui .

    
por 11.06.2009 / 04:55
2

Isso não deve ser possível interagir com nenhum aplicativo GUI porque o servidor telnet não fornece acesso a uma estação de janela na qual o aplicativo GUI é executado. Para executar um aplicativo GUI do Windows remoto, você precisa iniciá-lo em uma sessão de serviços de terminal (ou similar).

    
por 12.06.2009 / 05:05
2

Você precisa usar o Telnet? A Área de Trabalho Remota permite que você pare e inicie o programa interativamente, e ainda pode usar o FTP para mover os arquivos. A desvantagem: o computador remoto será bloqueado quando você desconectar e, se você fizer logoff, o programa deixará de ser executado.

    
por 12.06.2009 / 05:37
2

como mencionado acima, o PsExec (sysinternals) fornece a solução é a bandeira -i que permite a criação de gui no alvo

com o sinalizador -d sua chamada não é interrompida (execução em segundo plano) como seria esperar pela finalização do aplicativo

agora para execução remota segura você pode querer executá-lo embora ssh para windows neste caso freeSSHD é uma solução mente para executá-lo como o usuário-alvo para que toda desova acontece com o mesmo usuário (não execute o freeSSHD como SYSTEM, mas com o seu nome de usuário)

um exemplo do Acrobat executado a partir do putty

C: \ PsExec.exe \\ 127.0.0.1 -d -i "C: \ Arquivos de programas \ ... \ AcroRd32.exe"

Uma outra coisa para possivelmente considerar o uso de psexec é que v1.55 não suportava ID de sessão onde como o atual v1.9x faz

então, em vez de "-i", pode ser para o sistemas xp / nt "-i 0"
vista / 7 sistemas "-i 1"

    
por 22.03.2012 / 18:57
0

Experimente o comando "start". Ele suporta iniciar aplicativos do Windows, mas devo confessar que nunca testei em uma sessão de telnet.

    
por 11.06.2009 / 00:06
0

Os processos do Windows estão vinculados a um ID de sessão do Windows. Processos diferentes só podem interagir se compartilharem o mesmo ID de sessão ou Desktop .

Este blog por Brian Bondy explica tudo isso e muito mais, incluindo maneiras de burlar toda a segurança do Windows (executando um serviço na conta do sistema local).

    
por 02.08.2012 / 01:42
0

Nos servidores windows existe uma ferramenta schtasks.exe
Qual é o gerenciador de tarefas, mas na linha de comando.
Isso pode ser uma alternativa para executar um aplicativo GUI em uma máquina remota.
Para iniciar um aplicativo GUI imediatamente, a tarefa deve ser "criada" (schtasks.exe / create) com o tempo passado e a subsequente emissão do comando schtasks.exe /run com o mesmo parâmetro de nome da tarefa.
Ele foi testado e provou ser totalmente funcional em uma conexão telnet.
a página de ajuda relevante link

    
por 18.07.2016 / 14:37