Come avviare script (VBS) con WMI in codice C #?
-
06-09-2019 - |
Domanda
Ho bisogno di avviare un file script di Visual Basic utilizzando WMI in un codice C #.
Io non capisco cosa c'è di sbagliato con questo pezzo di codice? Risultato sarà sempre 8 (Errore sconosciuto). Ma per esempio notepad.exe può essere avviato senza errori.
//Get the object on which the method will be invoked
ManagementClass processClass = new ManagementClass("Win32_Process");
//Create an array containing all arguments for the method
object[] methodArgs = { "C:\\MyFolder\\Test.vbs arg1 arg2", null, null, 0 };
//Execute the method
object result = processClass.InvokeMethod("Create", methodArgs);
Soluzione
Gli script non sono eseguibili - sono gestiti da Windows Script Host, quindi è necessario specificare il percorso di Cscript.exe o wscript.exe prima del nome dello script:
object[] methodArgs = {
Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "cscript.exe") + @" C:\MyFolder\Test.vbs arg1 arg2",
null,
null,
0
};
Altri suggerimenti
Non so molto su questo tipo di cosa, ma credo che potrebbe essere necessario invocare host di script e passare il file vbs per eseguire.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow