如何用C#代码中的WMI启动脚本(.cmd)?

如何用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”。 我认为你需要调用命令处理器来使其工作。

+0

感谢您的回复。 – worrow

+0

我确实按照你的建议,但脚本仍然没有做任何事情。但是,在将文件放入Windows/system32而没有在代码中指定文件位置之后,它终于可以正常工作了! 我曾尝试将inParams [“CurrentDirectory”]设置到其他位置,但它不起作用。 – worrow

+0

得到这一切工作。 随着上面的建议加上“CurrentDirectory”设置,现在它的工作! 感谢您的帮助,Palle。 – worrow