Pergunta

É possível que um aplicativo C# (Desktop) inicie e interrompa aplicativos em outra máquina?

Não quero dizer em um sentido malicioso, ou mesmo pela Internet. Eu tenho dois computadores em uma sala e preciso de um aplicativo em um para iniciar (e depois parar) e aplicativo no outro.

Uma rota semi-formada em minha mente era usar um programa auxiliar no computador de destino, então suponho que devo salientar que sou capaz de fazer as alterações necessárias em qualquer máquina.

Foi útil?

Solução

Se você pode fazer mudanças, existem tantas possibilidades!

  • WMI: Nunca tentei isso, mas com direitos suficientes, você deve poder iniciar processos, ou pelo menos serviços em uma máquina remota
  • .NET Remoting: um pouco antigo, mas fácil de implementar
  • WCF
  • Httplistener
  • Filas de mensagens privadas (foi o que eu fiz uma vez)
  • ?

A maioria das alternativas envolve escrever um pequeno serviço que escuta a técnica de comunicação de sua escolha e depois inicia um processo ou faça outra coisa.

Outras dicas

Um exemplo usando o WMI está no projeto de código:

Crie um processo remoto usando WMI em C#

Mas provavelmente no seu caso um simples PsExec.exe Chamada pode ser suficiente, por exemplo

Process.Start("psexec.exe", "\\remotehost -u user -p password calc.exe");

psexec.exe da SysInternals ou use PowerShell 2.0 e WMI

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top