2009-01-23 36 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使用C#中的WMI通過命令行遠程執行服務器上的應用程序。我得到的返回碼爲0.服務器上沒有任何事情發生。

任何想法,我可能做錯了什麼?

我也想過在服務器上的任務計劃程序中創建計劃任務,但將任務禁用。

任何人都知道什麼C#代碼將有一個WMI應用程序啓動此任務?有沒有辦法來辨別任務/應用程序是否開始完成?

回答

0

如果您的命令行字符串正常,進程名稱(Mexe.exe)應該出現在Windows任務管理器的進程列表中,即使它是不可見的。我也看到了可以使用計劃任務來使該過程可見的信息,但從未嘗試過。一旦確認進程已創建,您可以嘗試爲其創建計劃任務並使用Win32_Process.Start()運行它。

0

您可能已將「Mexe.exe」作爲控制檯應用程序。在你的代碼中,startInfo描述了一個windows應用程序。嘗試將'Mexe.exe'作爲Windows應用程序。我已經嘗試了控制檯和Windows應用程序的代碼,它適用於Windows應用程序。

而且你也可以直接用客戶端上的一個可執行文件來做到這一點。不需要中間服務器可執行文件來調用'Mexe.exe'。只是一個建議,以提高性能..

相關問題