запуск программы на удаленной машине в wmi, а также открытие окна приложений (в c #) - PullRequest
0 голосов
/ 23 января 2009

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

Кто-нибудь знает способ обойти это?

Я попытался создать 2 исполняемых файла. 1 исполняемый файл использует класс Process и просто запускает исполняемый файл. Вот код:

 class Program
 {
      static void Main( string[ ] args )
      {
           ProcessStartInfo startInfo = new ProcessStartInfo();
           startInfo.CreateNoWindow = false;
           startInfo.UseShellExecute = false;
           startInfo.FileName = "C:\\folder\\Mexe.exe";
           startInfo.WindowStyle = ProcessWindowStyle.Normal;
           //p.MachineName="server";
           //p.Start(startInfo);
           Process p = Process.Start( startInfo );
      }
 }

Этот исполняемый файл находится на удаленном компьютере.

У меня есть другой исполняемый файл, который будет на компьютере клиента. Этот exe использует WMI в C # для удаленного запуска приложения на сервере через командную строку. Я получаю код возврата 0. На сервере ничего не происходит.

Есть идеи, что я могу делать не так?

Я также думал о создании запланированной задачи в планировщике задач на сервере, но оставил задачу отключенной.

Кто-нибудь имеет представление о том, каким будет код C #, чтобы приложение WMI запускало эту задачу? Будет ли способ определить, завершено ли задание / приложение?

Ответы [ 3 ]

1 голос
/ 25 ноября 2009

Вы должны использовать Win32_ScheduledJob.Create для удаленного создания интерактивного процесса.

См

http://msdn.microsoft.com/en-us/library/aa389769%28VS.85%29.aspx

Вы можете просто запланировать это на сейчас +1 секунду.

0 голосов
/ 28 октября 2011

Вы, возможно, сделали Mexe.exe как консольное приложение. В вашем коде startInfo описывает приложение для Windows. попробуйте сделать Mexe.exe как приложение для Windows. Я попробовал ваш код для консоли и приложения для Windows, и он работал для приложения Windows.

А также вы можете сделать это напрямую, используя только один исполняемый файл на клиенте. Для запуска Mexe.exe не требуется промежуточный исполняемый файл сервера. Это просто предложение по улучшению производительности ..

0 голосов
/ 24 января 2009

Если строка командной строки в порядке, имя процесса (Mexe.exe) должно появиться в списке процессов в диспетчере задач Windows, даже если он невидим. Я также видел информацию о том, что вы можете использовать запланированные задачи, чтобы сделать процесс видимым, но никогда не пробовал. Как только вы подтвердите, что процесс создан, вы можете попробовать создать для него запланированное задание и запустить его с помощью Win32_Process.Start ().

...