我有一个需要运行 psexec 以在远程服务器上启动名为 md5 的应用程序的 VB 脚本。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() 来尝试捕获导致随机失败的输出 - 有时它会捕获输出,有时它不会,而无需更改脚本中的任何内容。