2017-03-16 3 views
0

Ich habe versucht, unten mit dem Code eine .cmd-Datei remote durch WMI in C# zu nennen:Wie Skript (.cmd) mit WMI in C# -Code starten?

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"; 

Above Code keine Fehler zurückgegeben, es selbst bekam Prozess-ID mit outParams [ "processId"] aber es didn tue nichts auf dem entfernten Server. Ich versuchte dann, ein vbs-Skript mit derselben Prozedur aufzurufen, und es funktionierte gut. Meine Frage ist also, wie kann ich eine .cmd-Datei über WMI aufrufen? Für Vbs wusste ich, dass ich den CScript-Befehl aufnehmen sollte. Aber wie wäre es mit .CMD-Datei?

Vielen Dank im Voraus.

Antwort

0

Sie sollten versuchen, "cmd.exe/c c: \ temp \ text.cmd" auszuführen. Ich denke, dass Sie den Befehlsprozessor aufrufen müssen, damit es funktioniert.

+0

Vielen Dank für Ihre Antwort. – worrow

+0

Ich habe Ihrem Vorschlag gefolgt, aber das Skript hat immer noch nichts getan. Nachdem ich jedoch die Datei in Windows/System32 abgelegt habe, ohne den Speicherort der Datei im Code anzugeben, funktioniert es endlich! Ich habe versucht, die InParams ["CurrentDirectory"] zu woanders zu setzen, aber es funktioniert einfach nicht. – worrow

+0

Got das alles funktioniert. Mit dem obigen Vorschlag plus die Einstellung "CurrentDirectory" und jetzt funktioniert es! Danke für Ihre Hilfe, Palle. – worrow