VBScript和PSExec

时间:2016-06-22 17:59:34

标签: vbscript

您好我在阅读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,"验证文本")> 0)

执行文本验证

任何想法?

1 个答案:

答案 0 :(得分:0)

您是否考虑过将psexec的输出发送到输出文件,然后从vbscript读取输出文件?

psexec \\remotemachine command.exe >C:\temp\output.txt 2>&1

将执行command.exe并将stdOutstdErr的输出直接发送到C:\ temp中的文件output.txt。您可以根据自己的命令对其进行修改。