C# 远程进程执行

C# 远程进程执行,c#,.net,process,remote-access,C#,.net,Process,Remote Access,我的场景是用C#.Net连接到远程计算机,并列出该远程计算机的所有进程。我可以终止一个进程,或者在远程启动一个新进程。问题是,当我在remote上执行新进程时,我可以在task manager上看到该进程,但在windows屏幕上看不到。知道为什么它没有出现在windows上,而是出现在任务管理器/进程上吗。这是我的执行代码 private void btnStartNew_Click(object sender, EventArgs e) { object[] arrP

我的场景是用C#.Net连接到远程计算机,并列出该远程计算机的所有进程。我可以终止一个进程,或者在远程启动一个新进程。问题是,当我在remote上执行新进程时,我可以在task manager上看到该进程,但在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);

ManagementPath是否应该类似于\ComputerName\Root\CIMV2而不是\Root\CIMV2?

问题在于管理员权限

如果身份验证有问题,则需要检查目标计算机上的DCOM配置

  • 在目标计算机上,从命令提示符下运行
    dcomcnfg
  • 展开组件服务\Computers\My Computer\DCOM配置
  • 查找用GUID标识的Windows管理说明
    8BC3F05E-D86B-11D0-A075-00C04FB68820
    (您可以在详细信息视图中看到)
  • 编辑属性,然后在“权限”选项卡下添加您尝试登录的用户名
  • 您可能需要重新启动服务才能使更改生效
    你可以管理这个。想想看,我在电脑里。所以我不需要输入计算机名。它工作,只是问题是看不到我在UI中启动的.exe