【问题标题】:Command-line putty.exe SSH connection to capture output命令行 putty.exe SSH 连接以捕获输出
【发布时间】:2018-01-29 15:34:40
【问题描述】:

我正在从 Windows 机器自动 ssh 登录到 Linux 服务器。它是通过putty.exe 客户端完成的。

Const WshRunning = 0
Dim UserName
Dim Passwrd

IP = "192.20.30.40"
UserName = "someuser"
Passwrd  = "somepass"

Set shell = WScript.CreateObject("WScript.Shell")
pcmd = "putty.exe -ssh" & " " & UserName & "@" & IP & " -pw" & " " & Passwrd & " -m ""commands.txt"""

Set exec = shell.Exec(pcmd)

Do While exec.Status = WshRunning
     WScript.Sleep 100 
Loop

Set pout = exec.StdOut
strOutput = exec.StdOut.ReadAll()

WScript.StdOut.Write(strOutput)
WScript.Echo(strOutput)  

但我无法获得在 Linux 服务器上执行的命令的输出。如何在 VBScript 变量中输出这些 Linux 命令?

有一些关于 Plink 工具的建议。但它不允许基于自动密码的 ssh。

【问题讨论】:

    标签: ssh vbscript putty


    【解决方案1】:

    putty.exe 是一个 GUI 应用程序。它旨在交互使用,而不是自动化。尝试重定向其标准输出是没有意义的,因为它没有使用它。

    对于自动化,请使用 PuTTY 包中的另一个工具 plink.exe。 Plink 是一个控制台应用程序,因此您可以读取它的标准输出。 Plink 可以使用与 PuTTY 相同的命令行参数集。除此之外,您还可以在其命令行上直接指定要执行的命令,而不是使用单独的命令文件(使用-m 开关)。


    您声称您已经尝试过 Plink,但它不起作用。这听起来不太可能。 Plink 在内部与 PuTTY 相同。如果您对 Plink 有任何疑问,您必须向我们提供更多详细信息。向我们展示您尝试了什么以及该尝试的一些日志。

    【讨论】:

      猜你喜欢
      • 2012-06-29
      • 2012-02-18
      • 1970-01-01
      • 2019-09-27
      • 1970-01-01
      • 2017-02-26
      • 2013-01-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多