Vba 如何从Excel自动化PuTTy?

Vba 如何从Excel自动化PuTTy?,vba,excel,putty,Vba,Excel,Putty,我一直在尝试通过Excel中的VBA自动化puTTy中的以下步骤序列 登录到putty 执行命令 复制putty的结果并将其粘贴到excel中 到目前为止,我已经编写了通过启动putty应用程序登录服务器的代码。(请参阅下面的代码) 你能告诉我在这一步之后如何执行命令并将结果从PuTTy复制到Excel吗?我将使用PuTTy主应用程序。Plink是为命令行设计的putty 查看shell重定向,答案如下 基本思想是您可以创建一个WScript.Shell对象,使用它运行plink.exe,然后写

我一直在尝试通过Excel中的VBA自动化puTTy中的以下步骤序列

  • 登录到putty
  • 执行命令
  • 复制putty的结果并将其粘贴到excel中
  • 到目前为止,我已经编写了通过启动putty应用程序登录服务器的代码。(请参阅下面的代码)

    你能告诉我在这一步之后如何执行命令并将结果从PuTTy复制到Excel吗?

    我将使用PuTTy主应用程序。Plink是为命令行设计的putty

    查看shell重定向,答案如下


    基本思想是您可以创建一个WScript.Shell对象,使用它运行plink.exe,然后写入StdIn并从StdOut读取。StdIn就像在控制台窗口中键入文本,StdOut就是在所述控制台窗口中向用户显示的内容。

    您可以在putty中指定一个日志文件,并在运行时查看该日志文件。这不是最好的方法,但如果没有管理员权限,这是一种方法。

    如果在脚本中添加应用程序等待计时器,它会运行得更好,sendkeys的功能不是很可靠。

    putty是否有一个API可以供您参考,而不是尝试使用
    sendkeys
    ?Hi@DavidZemens我真的不知道。Hi@AndASM,谢谢您的回复。我以前在其他网站上也看到过同样的建议,但我对使用plink有一些管理限制。那么这意味着不可能使用putty.exe吗?在有限的范围内,可以使用putty.exe,通过这样做的方法是脆弱的,容易断裂。如果您无法运行plink.exe,许多执行此操作的方法可能会被阻止。如果您正在打开的连接是telnet而不是ssh,我会直接从VBA打开连接并跳过外部程序。如果是ssh,则禁止自己重新实现所有加密。
    Sub Putty()
      Dim TaskID As Long
      TaskID = Shell("path/putty.exe servername", vbNormalFocus)
      AppActivate TaskID, True
      SendKeys "username"
      SendKeys "{ENTER}"
      SendKeys "password"
      SendKeys "{ENTER}"
      '---- Here i need to execute a command for eg: "ls -l" and copy the result into Excel
    End Sub