C#利用wmi 获得远程进程输出信息
Hi,大家好我遇到一个问题:我想利用C#的managementnamespace里的类操作wmi对象,用wmi对象调用远程计算机上的进程(比如一个批处理文件),然后获得进...
Hi,大家好
我遇到一个问题:
我想利用C#的 management namespace 里的类操作wmi对象,用wmi对象调用远程计算机上的进程(比如一个批处理文件),然后获得进程的输出信息。该怎么弄呢?。。。
我之前看到了 System.Diagnostics 里有一个 Process类,利用它可以启动本地进程并且获得本地进程的输出信息(需要在进程启动前进行设置),不过因为安全原因这个类没办法操作远程进程(只能查询)。
Process myProcess = new Process();
myProcess.StartInfo.UseShellExecute = false;
myProcess.StartInfo.RedirectStandardOutput = true;
string strRst = myProcess.StandardOutput.ReadToEnd();
高手来帮忙啊,先谢过了! 展开
我遇到一个问题:
我想利用C#的 management namespace 里的类操作wmi对象,用wmi对象调用远程计算机上的进程(比如一个批处理文件),然后获得进程的输出信息。该怎么弄呢?。。。
我之前看到了 System.Diagnostics 里有一个 Process类,利用它可以启动本地进程并且获得本地进程的输出信息(需要在进程启动前进行设置),不过因为安全原因这个类没办法操作远程进程(只能查询)。
Process myProcess = new Process();
myProcess.StartInfo.UseShellExecute = false;
myProcess.StartInfo.RedirectStandardOutput = true;
string strRst = myProcess.StandardOutput.ReadToEnd();
高手来帮忙啊,先谢过了! 展开
2个回答
展开全部
如果你不介意用第三方工具的话,那么介绍你一个微软合作伙伴赛门铁克出品的鼎鼎有名的psexec。该工具可以简单的远程执行命令/程序。
比方说你想远程操作192.168.0.102上面D盘根目录下的名叫abc.cmd的批处理文件,并且得到输出结果,你可以这样写代码。
Process myProcess = new Process();
myProcess.StartInfo.UseShellExecute = false;
myProcess.StartInfo.RedirectStandardOutput = true;
myProcess.StartInfo.FileName = "psexec";
myProcess.StartInfo.Arguments = @"\\192.168.0.102 -u Administrator -p 123456 cmd /c d:\abc.cmd";
myProcess.Start();
myProcess.WaitForExit();
string strRst = myProcess.StandardOutput.ReadToEnd();
比方说你想远程操作192.168.0.102上面D盘根目录下的名叫abc.cmd的批处理文件,并且得到输出结果,你可以这样写代码。
Process myProcess = new Process();
myProcess.StartInfo.UseShellExecute = false;
myProcess.StartInfo.RedirectStandardOutput = true;
myProcess.StartInfo.FileName = "psexec";
myProcess.StartInfo.Arguments = @"\\192.168.0.102 -u Administrator -p 123456 cmd /c d:\abc.cmd";
myProcess.Start();
myProcess.WaitForExit();
string strRst = myProcess.StandardOutput.ReadToEnd();
参考资料: http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询