2

我的场景是使用 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);
4

3 回答 3

2

问题是关于管理员权限

于 2010-07-09T07:47:27.800 回答
0

ManagementPath 不应该是 \ComputerName\Root\CIMV2 而不仅仅是 \ROOT\CIMV2 吗?

于 2010-07-02T15:40:47.760 回答
0

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

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