Как запустить скрипт (vbs) с помощью WMI в коде C #?

StackOverflow https://stackoverflow.com/questions/925999

  •  06-09-2019
  •  | 
  •  

Вопрос

Мне нужно запустить файл скрипта 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);
Это было полезно?

Решение

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

object[] methodArgs = {   
                        Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "cscript.exe") + @" C:\MyFolder\Test.vbs arg1 arg2",
                        null,
                        null,
                        0
                      };

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top