如何在远程计算机上打开安装的应用程序“firefox”?

时间:2014-06-17 04:32:30

标签: c# network-programming wmi remote-access

我想远程连接到网络中的另一台计算机并远程运行其应用程序。 当我尝试运行类似" firefox"的应用程序时,我使用WMI连接到网络PC。通过创建wmi_process,它在进程任务管理器中创建firefox.exe,但它没有运行它!(firefox.exe在后台运行,不会打开!)

我也想打开应用程序。我能这样做吗? 有没有其他方法可以远程连接和运行安装在计算机上的程序? 感谢...

 public void RunApps(string AppName)
 {
      ObjectGetOptions objectGetOptions = new ObjectGetOptions();
      ManagementPath managementPath = new ManagementPath("Win32_Product");

      string loc = string.Empty;
      foreach (ManagementObject mo in managementObjectCollection)
      {
          if (mo["name"].ToString() == AppName)
          {
              loc = mo["InstallLocation"].ToString();
          }
      }

      loc += AppName + ".exe";

      ManagementClass processClass = new ManagementClass("Win32_Process");
      ManagementBaseObject inParams = processClass.GetMethodParameters("Create");
      inParams["CommandLine"] = loc;// "calc.exe";
      ManagementBaseObject outParams =processClass.InvokeMethod("Create", inParams, null);
 }

1 个答案:

答案 0 :(得分:1)

我担心使用WMI是不可能的。出于安全原因,您无法以这种方式创建交互式远程进程。

请参阅Microsoft文档here

  

您可以使用Win32_Process.Create来执行脚本或应用程序   一台远程电脑。但是,出于安全原因,进程不能   互动。在本地调用Win32_Process.Create时   计算机,这个过程可以是互动的。

这正是您上面的代码尝试做的事情 - 因此您可以创建一个流程,但它无法与用户进行交互(例如,它无法创建可见窗口)。