2016-03-28 4 views
0

Я пытаюсь прочитать данные PKI пользователя с данными Certutil и выгрузить данные в текстовый файл. Идея состоит в том, чтобы поместить это как часть сценария входа в систему, чтобы собрать некоторые данные о пользователях с истекающими сертификатами.VBscript запустить cmd и ждать вывода

Вот мой код раздела:

set oShell = WScript.CreateObject("WScript.Shell") 
strcommand = "cmd /c certutil -scinfo -silent > " & StrPath 
oShell.Run strcommand, true 

, кажется, работает, сброс данных CERT в текстовый файл (переменная strpath), но как только я добавить несколько строк в скрипт он никогда не ждет команды окончить. Он просто закрывается на долю секунды или около того. Я знаю, что для чтения карты PKI требуется 7 секунд. Я пробовал спящий режим, а также цикл do/while, и ничто, похоже, не позволяет запустить окно командной строки. Я также попробовал различные варианты intwindowstyle, перечисленные here.

Оцените любую помощь.

ответ

1

oShell.Run strcommand, ,true должно работать. Второй аргумент - аргумент intWindowStyle, а не bWaitOnReturn. Вы можете также использовать

oShell.Run strcommand, bWaitOnReturn: = True

Если это не работает, вы можете попробовать использовать Exec Method. Документация, к которой приводит эта ссылка, имеет хороший пример использования цикла с sleep, который выполняется до тех пор, пока процесс не завершится.

+0

Это похоже на работу, когда я явно определяю вывод на конвейер для Certutil. Когда я пытаюсь ввести переменную там, она вернется к быстрому завершению командной строки ... Любые идеи? Установите oExec = WshShell.Exec ("cmd/c certutil -scinfo -silent>" и StrPath) – user3067193

Смежные вопросы