如何用C#代码中的WMI启动脚本(.cmd)?
问题描述:
我试图在C#中调用一个.cmd文件远程通WMI与下面的代码:如何用C#代码中的WMI启动脚本(.cmd)?
ObjectGetOptions objectGetOptions = new ObjectGetOptions();
ManagementPath managementPath = new ManagementPath("Win32_Process");
ManagementClass processClass = new ManagementClass
(manScope, managementPath, objectGetOptions);
ManagementBaseObject inParams = processClass.GetMethodParameters("Create");
inParams["CommandLine"] = @"C:\temp\text.cmd";
上面的代码返回任何错误,它outParams甚至得到了进程ID [“的ProcessID”] 然而,没在远程服务器上不做任何事情。然后我尝试使用相同的过程调用vbs脚本,它工作得很好。所以我的问题是,通过WMI调用.cmd文件的正确方法是什么?对于vbs,我知道我应该包含CScript命令。但是.CMD文件呢?
在此先感谢。
答
您应该尝试运行“cmd.exe/c c:\ temp \ text.cmd”。 我认为你需要调用命令处理器来使其工作。
感谢您的回复。 – worrow
我确实按照你的建议,但脚本仍然没有做任何事情。但是,在将文件放入Windows/system32而没有在代码中指定文件位置之后,它终于可以正常工作了! 我曾尝试将inParams [“CurrentDirectory”]设置到其他位置,但它不起作用。 – worrow
得到这一切工作。 随着上面的建议加上“CurrentDirectory”设置,现在它的工作! 感谢您的帮助,Palle。 – worrow