首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VBScript和PSExec

VBScript和PSExec
EN

Stack Overflow用户
提问于 2016-06-22 17:59:33
回答 1查看 296关注 0票数 0

嗨,我在阅读WScript.Shell和PSExec提供的输出时遇到了问题。我的目标是能够以文本的形式读取PSExec.exe返回的内容,这样我就可以使用InStr执行一些验证。

“守则”与此类似:

代码语言:javascript
复制
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)执行文本验证。

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-23 09:08:57

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

代码语言:javascript
复制
psexec \\remotemachine command.exe >C:\temp\output.txt 2>&1

将执行command.exe并将来自stdOutstdErr的输出直接发送到C:\temp中的文件output.txt中。你可以自己修改这个命令。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37975202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档