ManagementBaseObject中的System.Diagnostics.Process

时间:2011-09-09 17:55:29

标签: c# .net vb.net wmi

我正在使用WMI执行远程进程,并希望将该进程的StandardOutput重定向回我的程序。我找到了这些代码示例:

http://haripotter.wordpress.com/2008/07/25/executing-a-command-on-a-remote-windows-system-using-wmi/

那个人正在使用我在这里看到的Process类:

http://msdn.microsoft.com/en-us/library/ssk42c11.aspx

可以重定向标准输出。是否可以将这两者结合使用?

我这样调用它:

 public string StartProcess(string command)
    {
        ManagementClass processTask = new ManagementClass(@"\\" + this.wmiConnection.machineName + @"\root\CIMV2", "Win32_Process", null);
        ManagementBaseObject methodParams = processTask.GetMethodParameters("Create");
        methodParams["CommandLine"] = command;
        methodParams["CurrentDirectory"] = @"C:\";


        try
        {
            ManagementBaseObject exitCode = processTask.InvokeMethod("Create", methodParams, null);

1 个答案:

答案 0 :(得分:0)

我觉得你对此有点困惑。 Win32_Process WMI类(或任何)和System.Diagnostics.Process类没有可能的混合,它们都属于不同的范围。关于你的另一个问题,我认为你在这里运气不错,因为使用System.Diagnostics.Process类你可以重定向标准输出,但不允许执行远程进程,并且可以执行Win32_Process WMI类远程进程(有限制)但不允许重定向标准输出。