2017-03-16 47 views
0

我試圖在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文件呢?

在此先感謝。

回答

0

您應該嘗試運行「cmd.exe/c c:\ temp \ text.cmd」。 我認爲你需要調用命令處理器來使其工作。

+0

感謝您的回覆。 – worrow

+0

我確實按照你的建議,但腳本仍然沒有做任何事情。但是,在將文件放入Windows/system32而沒有在代碼中指定文件位置之後,它終於可以正常工作了! 我曾嘗試將inParams [「CurrentDirectory」]設置到其他位置,但它不起作用。 – worrow

+0

得到這一切工作。 隨着上面的建議加上「CurrentDirectory」設置,現在它的工作! 感謝您的幫助,Palle。 – worrow