我正在从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。
答案 0 :(得分:0)
putty.exe
是一个GUI应用程序。它旨在交互式使用,而不是用于自动化。尝试重定向其标准输出是没有意义的,因为它没有使用它。
对于自动化,请使用PuTTY包中的另一个工具plink.exe
。 Plink是一个控制台应用程序,因此您可以读取其标准输出。 Plink可以使用与PuTTY相同的命令行参数集。除此之外,您还可以指定要在其命令行上直接执行的命令,而不是使用单独的命令文件(使用-m
开关)。
您声称已经尝试过Plink但它无效。这听起来不太可能。 Plink在内部与PuTTY相同。如果您对Plink有疑问,您必须向我们提供更多详细信息。告诉我们您尝试了什么以及该尝试的一些日志。