У меня есть скрипт VB, который должен запустить psexec для запуска приложения с именем md5 на удаленном сервере. Md5 генерирует хеш-ключ файла и принимает один параметр - путь к файлу \ имя. Мне нужно получить ключ has, сгенерированный для хранения в переменной. Ниже код, который я использую:
Set objShell = CreateObject("Wscript.Shell")
strcomputer = "remotecomputer"
tempDest = "C:\somedir"
filename = "somefile"
strCommand = "psexec -accepteula \\" & strcomputer & " -c md5.exe " & tempDest & "\" & filename & " > log.txt"
Set objExecObject = objShell.Exec("%comspec% /c " & strCommand)
Do While objExecObject.Status <> 1 'loop until previous process has finished
WScript.Sleep 100
Loop
Команда MD5 выполняется, однако в файл журнала ничего не записывается. Когда я копирую и вставляю strCommand (подставляя все переменные для фактических данных) в приглашение cmd и запускаю его, он успешно записывает вывод Md5 в файл журнала.
В конце дня мне просто нужен вывод Md5, если кто-нибудь знает лучший способ, чем записать его в файл журнала, пожалуйста, дайте мне знать. Я уже пытался использовать objExecObject.StdOut.Readall (), чтобы попытаться перехватить выходные данные, которые привели к случайным сбоям - иногда он будет перехватывать выходные данные, иногда нет, не изменяя ничего в скрипте.