C# ManagementBaseObject中的System.Diagnostics.Process
我正在使用WMI执行一个远程进程,希望将该进程的标准输出重定向回我的程序。我发现了以下代码示例: 此人正在使用我在这里看到的Process类: 可以重定向标准输出。这两个可以一起使用吗 我这样说:C# ManagementBaseObject中的System.Diagnostics.Process,c#,.net,vb.net,wmi,C#,.net,Vb.net,Wmi,我正在使用WMI执行一个远程进程,希望将该进程的标准输出重定向回我的程序。我发现了以下代码示例: 此人正在使用我在这里看到的Process类: 可以重定向标准输出。这两个可以一起使用吗 我这样说: public string StartProcess(string command) { ManagementClass processTask = new ManagementClass(@"\\" + this.wmiConnection.machineName +
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);
我想你对此有点困惑。WMI类(或任何)和类不可能混合,两者都属于不同的作用域。关于你的另一个问题,我认为你在这里运气不好,因为使用
System.Diagnostics.Process
类,你可以重定向标准输出,但不允许执行远程进程,并且使用Win32\u进程
WMI类,你可以执行远程进程(有限制)但不允许重定向标准输出。请查看,我是否无法将远程进程的输出返回到我的程序?当然可以,但您需要自行构建客户端服务器应用程序,以便向远程计算机(服务器)发送命令并在客户端接收输出。$0.02解决方案是将输出重定向到一个带有cmd.exe的文件,然后在进程完成后读取该文件。@Hans是的,你可以这样做,但如何获取位于服务器计算机中的文件内容?回飞棒不会回来。无法从中获取文件的服务器是一个砖块;)