嗨,我在阅读WScript.Shell和PSExec提供的输出时遇到了问题。我的目标是能够以文本的形式读取PSExec.exe返回的内容,这样我就可以使用InStr执行一些验证。
“守则”与此类似:
Const WshFinished = 1
Const WshFailed = 2
Dim cmdLine, strComputer
strComputer = "\\SomeComputer"
cmdLine = "psexec " & strComputer & " cmd /C " & """RD " & """%PROGRAMFILES%\APPFOLDER""" & " /S /Q | RD " & """%PROGRAMFILES%\COMMON FILES\APPFOLDER""" & " /S /Q | RD " & """%SYSTEMROOT%\temp\APPFOLDER""" & " /S /Q"""
Set WSH = WScript.CreateObject("WScript.Shell")
WSH.Exec(cmdLine)
Do While WSH.Status = 0
WScript.Sleep 100
Loop
Select Case WSH.Status
Case WshFinished
strOutput = WSH.StdOut.ReadAll
Case WshFailed
strOutput = WSH.StdErr.ReadAll
End Select
Wscript.Echo strOutput
If (InStr(strOutput, "validation text") > 0) Then
'Do Stuff
End IF问题是strOutput变量总是空的,我不能使用If (InStr(strOutput,"validation“)> 0)执行文本验证。
有什么想法吗?
发布于 2016-06-23 09:08:57
您考虑过将输出从psexec发送到输出文件,然后从vbscript读取输出文件吗?
psexec \\remotemachine command.exe >C:\temp\output.txt 2>&1将执行command.exe并将来自stdOut和stdErr的输出直接发送到C:\temp中的文件output.txt中。你可以自己修改这个命令。
https://stackoverflow.com/questions/37975202
复制相似问题