在wmi中的远程机器上启动程序,但也打开应用程序窗口(在c#中)

问题描述:

我浏览过网页上的数据后页面,每个人似乎都说你不能有一个可执行文件远程执行通过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应用程序启动此任务?有没有办法来辨别任务/应用程序是否开始完成?

如果您的命令行字符串正常,进程名称(Mexe.exe)应该出现在Windows任务管理器的进程列表中,即使它是不可见的。我也看到了可以使用计划任务来使该过程可见的信息,但从未尝试过。一旦确认进程已创建,您可以尝试为其创建计划任务并使用Win32_Process.Start()运行它。

您必须使用Win32_ScheduledJob.Create来远程创建一个交互过程,我相信。

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

您可以只安排它现在1秒。

您可能已将“Mexe.exe”作为控制台应用程序。在你的代码中,startInfo描述了一个windows应用程序。尝试将'Mexe.exe'作为Windows应用程序。我已经尝试了控制台和Windows应用程序的代码,它适用于Windows应用程序。

而且你也可以直接用客户端上的一个可执行文件来做到这一点。不需要中间服务器可执行文件来调用'Mexe.exe'。只是一个建议,以提高性能..