远程进程执行

时间:2010-07-02 13:32:17

标签: c# .net process remote-access

我的场景是使用C#.Net连接到远程计算机,并列出该远程计算机的所有进程。我可以杀死一个进程,或者在远程启动一个新进程。问题是,当我在远程执行一个新进程时,我可以在任务管理器上看到该进程,但它在Windows屏幕上并没有。不知道为什么它没有出现在Windows上,而是出现在任务管理器/进程上。这是我的执行代码

private void btnStartNew_Click(object sender, EventArgs e)
    {
        object[] arrParams = { txtNewProcess.Text.Trim()};
        try
        {
            manageClass = new ManagementClass(myScope, new ManagementPath("Win32_Process"), new ObjectGetOptions());
            manageClass.InvokeMethod("Create", arrParams);
            btnConnect_Click(sender, e);
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }
    }

我的范围是:

myScope = new ManagementScope(@"\ROOT\CIMV2", connOptions);

3 个答案:

答案 0 :(得分:2)

问题与管理员权限有关

答案 1 :(得分:0)

管理路径不应该是\ ComputerName \ Root \ CIMV2而不仅仅是\ ROOT \ CIMV2吗?

答案 2 :(得分:0)

如果您在身份验证方面遇到问题,则需要检查目标计算机上的DCOM配置。

  1. 在目标计算机上,从命令提示符运行dcomcnfg
  2. 展开Component Services\Computers\My Computer\DCOM Config
  3. 查找使用GUID 8BC3F05E-D86B-11D0-A075-00C04FB68820标识的Windows管理说明(您可以在详细信息视图中看到这一点)。
  4. 编辑属性,然后在权限选项卡下添加您尝试登录的用户名。
  5. 您可能需要重新启动服务才能使更改生效。