Как я могу запускать / останавливать приложения на другом компьютере?

Возможно ли для одного приложения C# (рабочего стола) запускать и останавливать приложения на другом компьютере?

Я не имею в виду в злонамеренном смысле, или даже через Интернет. У меня есть два компьютера в комнате, и мне нужно приложение на одном для запуска (а затем остановки) и приложение на другом.

Один наполовину сформировавшийся маршрут в моем сознании состоял в том, чтобы использовать вспомогательную программу на целевом компьютере, поэтому я полагаю, что мне следует указать, что я полностью могу внести любые необходимые изменения в любую машину.

3 ответа

Решение

Если вы можете внести изменения, есть так много возможностей!

  • WMI: Никогда не пробовал, но при наличии достаточных прав вы сможете запускать процессы или, по крайней мере, службы на удаленной машине.
  • .NET remoting: довольно старый, но простой в реализации
  • WCF
  • HttpListener
  • Личные очереди сообщений (это то, что я делал однажды)
  • ?

Большинство альтернатив включают в себя написание небольшого сервиса, который прослушивает выбранную вами коммуникационную технику, а затем запускает процесс или делает что-то еще.

Пример использования WMI находится на Code Project:

Создайте удаленный процесс с помощью WMI в C#

Но, вероятно, в вашем случае простой PsExec.exe звонка может быть достаточно, например

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

psexec.exe от sysinternals или используйте Powershell 2.0 и WMI

Другие вопросы по тегам