如何在Windows 10上编写脚本以自动执行腻子(PLINK)

问题描述 投票:0回答:1

我正在做一个手工过程,每天都要在Putty内部完成,并希望使其自动化。不需要任何人这样做,因为所有键盘输入每天都不会更改。我正在努力腾出时间来提高生产率,更不用说每天都在不断这样做。该过程需要有人打开Putty(当然会使用plink),登录(以纯文本格式存储密码和用户名就可以了,不需要生成密钥的步骤),输入相同的键盘按键,手动输出文件,然后将其保存到网络驱动器文件夹中。因此,要有人手动执行此操作是完全不必要的过程,我正在寻找一种方法来完成此自动化操作。

当前,这是在Windows 10环境中使用的,从我阅读的内容来看,Putty(plink)是最佳的选择。如果还有更好的方法,我也可以利用其他SSH程序,但是我认为这可能是我所做研究的更好方法。我根本没有编写太多脚本,因此我在尝试学习一些东西。我需要自动登录PLINK(完成),然后为要访问的服务器内的每个屏幕输入多个键盘输入(已完成)。本质上,每个屏幕都需要输入预定的键盘键,例如“ ENTER”,根据屏幕的不同,输入一些数字1-10,然后在完成操作后,我需要将结果打印到文件中,最好是xlsx,但csv或text也足够。

我已经添加了到目前为止我能够创建的代码。我被困在这一点上是因为PLINK仍然不可见,因此很难分析问题,并且在运行它时光标会一直跳到任何活动窗口。

Dim WshShell

Set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.Run "C:\PuTTY\plink.exe 123.server.com -l username -pw password -t{ENTER}"

WScript.Sleep 3000

WshShell.AppActivate "plink.exe"

WScript.Sleep 2000

WshShell.AppActivate "plink.exe"

WshShell.SendKeys "{ENTER}"

WScript.Sleep 6000

WshShell.AppActivate "plink.exe"

WshShell.SendKeys "{ENTER}"

WScript.Sleep 6000

WshShell.AppActivate "plink.exe"

WshShell.SendKeys "command123{ENTER}"

更新

我尝试使用建议的代码,它确实可以自动完成登录并在服务器中启动应用程序,但是它不接受我尝试编写的任何输入。每次使用输入时,都会显示以下消息。请注意,我要传递的命令是100%正确的,甚至似乎都没有考虑它。该脚本实际上确实将文本输入到适当的字段中,但是只是将其错误输入。

Enter program name (or abbreviation): I don't recognize
that program name. Press <return> for a list of programs."

((我已经根据建议更新了代码)。>>

(
  echo WEST COAST
  timeout /t 5 > nul
  echo 09
  timeout /t 5 > nul
  echo third_screen_keys
) | C:\PuTTY\plink.exe 123.server.com:PORT# -l username -pw password -t

我正在做一个手工过程,每天都要在Putty内部完成,并希望使其自动化。不需要任何人这样做,因为所有键盘输入每天都不会更改。我正在尝试...

vbscript scripting putty wsh plink
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.