簡體   English   中英

在wmi中的遠程計算機上啟動程序,但還要打開應用程序窗口(在c#中)

[英]starting a program on a remote machine in wmi, but also opening the apps window (in c#)

我瀏覽了一頁又一頁的網絡數據,似乎每個人都說您不能讓可執行文件通過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使用C#中的WMI通過命令行在服務器上遠程執行應用程序。 我得到的返回碼為0。服務器上沒有任何反應。

有什么想法我可能做錯了嗎?

我還考慮過在服務器上的任務計划程序中創建計划任務,但是將任務禁用。

任何人都有一個WMI應用程序啟動該任務的C#代碼是什么? 有沒有辦法識別任務/應用程序是否開始完成?

我相信您必須使用Win32_ScheduledJob.Create遠程創建一個交互式過程。

看到

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

您可以將其安排為現在+1秒。

如果您的命令行字符串是OK,則進程名稱(Mexe.exe)應該顯示在Windows Task Manager的進程列表中,即使它是不可見的。 我還看到了一些信息,您可以使用計划的任務使該過程可見,但從未嘗試過。 一旦確認該進程已創建,就可以嘗試為其創建計划任務並使用Win32_Process.Start()運行它。

您可能已將“ Mexe.exe”制作為控制台應用程序。 在您的代碼中,startInfo描述了Windows應用程序。 嘗試將“ Mexe.exe”制作為Windows應用程序。 我已經嘗試了您的控制台和Windows應用程序的代碼,它適用於Windows應用程序。

而且,您也可以僅使用客戶端上的一個可執行文件直接執行此操作。不需要中間服務器可執行文件來調用“ Mexe.exe”。 只是提高性能的建議。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM