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