Как запустить скрипт (VBS) с WMI в коде C #? - PullRequest
1 голос
/ 29 мая 2009

Мне нужно запустить файл сценария Visual Basic с помощью WMI в коде c #.

Я не совсем понимаю, что не так с этим фрагментом кода? Результат будет всегда 8 (Неизвестный сбой). Но, например, notepad.exe может быть запущен без сбоев.

        //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);

Ответы [ 2 ]

1 голос
/ 29 мая 2009

Сценарии не являются исполняемыми файлами - они запускаются Windows Script Host, поэтому перед именем сценария необходимо указать путь к cscript.exe или wscript.exe:

object[] methodArgs = {   
                        Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "cscript.exe") + @" C:\MyFolder\Test.vbs arg1 arg2",
                        null,
                        null,
                        0
                      };
0 голосов
/ 29 мая 2009

Я не очень разбираюсь в подобных вещах, но думаю, что вам может потребоваться вызвать скрипт-хост и передать ему файл vbs для запуска.

...