Como iniciar script (VBS) com WMI em código C #?
-
06-09-2019 - |
Pergunta
eu preciso para começar um arquivo de script Visual Basic usando o WMI em um código c #.
Eu não entendo muito bem o que está errado com este pedaço de código? Resultado será sempre 8 (Falha desconhecida). Mas, por exemplo notepad.exe pode ser iniciado sem falhas.
//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);
Solução
Scripts não são executáveis ??- eles são executados por Windows Script Host, então você precisa especificar o caminho para cscript.exe ou wscript.exe antes do nome do script:
object[] methodArgs = {
Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "cscript.exe") + @" C:\MyFolder\Test.vbs arg1 arg2",
null,
null,
0
};
Outras dicas
Eu não sei muito sobre este tipo de coisa, mas acho que pode ser necessário invocar host de script e passá-lo o arquivo vbs para ser executado.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow