如何WMI运行批处理文件

沙敦府上帝发誓地方 2007-03-01 03:01:18
假设我的机器是A,我利用WMI连接到B机器,并且创建一个cmd.exe进程,让cmd.exe去运行C机器(IP为192.168.10.1)上的一个共享的批处理文件,请问怎么实现?

连接和创建cmd.exe进程都没问题,我传递给cmd.exe的命令行参数为:
cmd.exe /c \\192.168.10.1\1\1.bat,执行没有成功,为什么?

ManagementPath mp=new ManagementPath("Win32_Process");

ManagementClass processClass = new ManagementClass(ms,mp,null);
//取得输入参数
ManagementClass ProcessStartup=new ManagementClass(ms,new ManagementPath("Win32_ProcessStartup"),null);
ProcessStartup.SetPropertyValue("ShowWindow",3);
ProcessStartup.SetPropertyValue("WinstationDesktop",null);

ManagementBaseObject inParams = processClass.GetMethodParameters("Create");
//inParams["CommandLine"] = "cmd /c \\192.168.10.1\1\1.bat"
inParams["CommandLine"] = this.tbRemoteBatFileName.Text.Trim();
inParams["ProcessStartupInformation"] = ProcessStartup;

//执行创建进程
ManagementBaseObject outParams = processClass.InvokeMethod ("Create", inParams, null);
...全文
275 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
假设我的机器是A,我利用WMI连接到B机器,并且创建一个cmd.exe进程,让cmd.exe去运行C机器(IP为192.168.10.1)上的一个共享的批处理文件,请问怎么实现?

连接和创建cmd.exe进程都没问题,我传递给cmd.exe的命令行参数为:
cmd.exe /c \\192.168.10.1\1\1.bat,执行没有成功,为什么?

string strConnect="";
System.Management.ConnectionOptions conn=new System.Management.ConnectionOptions();
conn.Username=this.tbUser.Text.Trim();
conn.Password=this.tbPassword.Text.Trim();
strConnect="\\\\" + ipArray[current] + "\\root\\cimv2";
System.Management.ManagementScope ms=new System.Management.ManagementScope(strConnect,conn);
try
{
ms.Connect();
}

ManagementPath mp=new ManagementPath("Win32_Process");

ManagementClass processClass = new ManagementClass(ms,mp,null);
//取得输入参数
ManagementClass ProcessStartup=new ManagementClass(ms,new ManagementPath("Win32_ProcessStartup"),null);
ProcessStartup.SetPropertyValue("ShowWindow",3);
ProcessStartup.SetPropertyValue
("WinstationDesktop",null);

ManagementBaseObject inParams = processClass.GetMethodParameters("Create");

inParams["CommandLine"] = "cmd /c \\192.168.10.1\1\1.bat"
inParams["ProcessStartupInformation"] = ProcessStartup;

//执行创建进程
ManagementBaseObject outParams = processClass.InvokeMethod ("Create", inParams, null);

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧