2009-01-23 5 views
0

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

Кто-нибудь знает об этом?

Я пробовал создать 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, чтобы запустить эту задачу? Будет ли способ узнать, закончилась ли задача/приложение?

ответ

0

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

0

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

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