[英]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.