Выполнение кода VBS в VBA с правами администратора

как дела?

Я хочу выполнить VBS-код в среде VBA, в этом случае я работаю в редакторе VB в MS Excel 2010. К сожалению, я не знаю, как преобразовать код VBS, чтобы VBA смог его выполнить.

Чтобы дать представление о том, над чем я работаю: хочу выполнить командную строку VBS, требующую прав администратора. Это приглашение перезапустит процесс на другом ПК в сети. Код VBS работает отлично, когда выполняется через cmd. Причина, по которой я хочу использовать VBA, заключается в том, что в сети много ПК, и я хочу использовать цикл для выполнения кода VBS для каждого ПК.

ОК, вот код VBS:

strComputer = "Computername" Set objShell = CreateObject("Wscript.Shell") Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2:Win32_Process") intReturn = objWMIService.Create("c:\Program Files (x86)\Symantec\Symantec Endpoint Protection\12.1.1000.157.105\Bin64\smc.exe -stop", Null, Null, intProcessID) Wscript.Sleep 10000 intReturn2 = objWMIService.Create("c:\Program Files (x86)\Symantec\Symantec Endpoint Protection\12.1.1000.157.105\Bin64\smc.exe -start", Null, Null, intProcessID) 

Вопрос в том, как мне получить этот образец кода в моей среде VBA? Я знаю, как выполнить сам VBS-файл через VBA, но этого недостаточно, потому что мне нужна переменная. Кроме того, права администратора связаны с вопросом.

ОК, вот обновление, теперь у меня есть этот код в VBA, но я не могу начать все, я также пытался реализовать runas admin:

 Sub run_vbs_script() Dim strComputer As String 'Dim WshShell Dim objShell Dim objWMIService Dim dDate As Date strComputer = "IEDBR8D60CR" Set objShell = CreateObject("Wscript.Shell") RunasStruser = "runas /user:Username Domain\domain name" objShell.Run RunasStruser, 0 objShell.SendKeys "password" Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2:Win32_Process") intReturn = objWMIService.Create("c:\Program Files (x86)\Symantec\Symantec Endpoint Protection\12.1.1000.157.105\Bin64\smc.exe -stop", Null, Null, intProcessID) dDate = DateAdd("s", 10, DateTime.Now) Do While dDate > DateTime.Now DoEvents Loop intReturn2 = objWMIService.Create("c:\Program Files (x86)\Symantec\Symantec Endpoint Protection\12.1.1000.157.105\Bin64\smc.exe -start", Null, Null, intProcessID) Set objShell = Nothing Set objWMIService = Nothing End Sub 

В редакторе VBA в excel вам нужно добавить ссылку на WMI Scripting

  Dim strComputer As String Dim objShell Dim objWMIService Dim dDate As Date strComputer = "Computer" Set objShell = CreateObject("Wscript.Shell") Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2:Win32_Process") intReturn = objWMIService.Create("c:\Program Files (x86)\Symantec\Symantec Endpoint Protection\12.1.1000.157.105\Bin64\smc.exe -stop", Null, Null, intProcessID) dDate = DateAdd("s", 10, DateTime.Now) Do While dDate > DateTime.Now DoEvents Loop intReturn2 = objWMIService.Create("c:\Program Files (x86)\Symantec\Symantec Endpoint Protection\12.1.1000.157.105\Bin64\smc.exe -start", Null, Null, intProcessID) Set objShell = Nothing Set objWMIService = Nothing 

На этом сайте приведен пример кода для завершения процесса через WMI с помощью vba. Взглянуть. В примере закрывается файл notepad.exe, но я уверен, что вы могли бы заставить его сделать то же самое для symantec

  • VBscript для сравнения содержимого некоторых столбцов в двух листах Excel для данной строки
  • Помощь, необходимая для создания скрипта VB и создания листа Excel
  • Код для прокрутки всех файлов excel в указанной папке и вытаскивание данных из определенных ячеек
  • Преобразовать * .xls или * .xlsx файл в отдельный файл .csv с помощью командной строки
  • Как предотвратить файл надстройки Excel от изменения ссылок на ячейки R1C1 / columns на буквы
  • Данные строк и данных столбцов с использованием VBScript
  • Ошибка выполнения VBS / VBA
  • VBScript для запуска макроса Excel
  • VBS не работает вообще
  • Почему при запуске сразу нескольких сотен VBS-файлов, только около 50 или около того
  • Excel Application.Quit не убивает процесс EXECL.EXE
  • Interesting Posts

    Excel VBA – чтение значения ячейки из кода

    Сохранять ведущий нуль при сохранении в .CSV с включенным I / O

    Перемещение из одной ячейки в другую и подсчет количества строк между двумя данными

    Удалите пустые строки из файла csv, созданного в Excel

    Двойная круговая ссылка в PHP

    Анализ синтаксических данных (содержащих xml) в VBA

    Необходимо скопировать определенные данные по рабочим книгам

    как я могу запрограммировать этот ui box

    Сотовые комментарии, созданные с POI Apache, имеют прозрачный фон

    Код VBA, фильтрующий столбец, затем заполняющий формулу для видимых ячеек в другом столбце

    Повторное сканирование существующих файлов, хранящихся во внутренней памяти в android с помощью java

    Неправильно использовать формулу vlookup

    Как читать с определенного листа в excel по названию

    VBA: копировать строки из csv в столбцы в новом листе

    рисовать линию / график рассеяния из определенных ячеек в файле excel?

    Давайте будем гением компьютера.