【问题标题】:How to suppress prompt when running Linux script from Windows?从 Windows 运行 Linux 脚本时如何抑制提示?
【发布时间】:2013-08-01 11:56:06
【问题描述】:

我编写了以下 VBScript 以便使用 plink.exe 工具从 Windows 运行 Linux 脚本。

用户 - root1 , 密码 - adhdh

我的 VB 脚本:

Const Host = "110.18.3.32"
Set Sh = CreateObject("WScript.Shell")
Const cstrSftp1="""C:\Documents and Settings\Administrator\Desktop\plink.exe"""
strCommand11 = cstrSftp1  & " -ssh -pw " & " adhdh " & "root1@" & Host & " /var/tmp/script "  
Sh.Run "cmd /k " & strCommand11, 1, True
Set Sh = Nothing

不过问题不大

当我第一次运行此脚本时,我从plink 收到以下提示:

在缓存中存储密钥? (是/否)

所以为了通过添加echo y 来解决这个问题,我将脚本中的行更改如下:

strCommand11 = echo y | cstrSftp1  & " -ssh -pw " & " adhdh " & "root1@" & Host & " /var/tmp/script "  

但在我运行新脚本后,它失败并出现以下错误:

预计语句结束

我也试过

"echo y | cstrSftp1  "

但我仍然收到其他错误。

请告知我需要在脚本中进行哪些更改?

【问题讨论】:

  • strCommand11 = "echo y | " & cstrSftp1 & " -ssh -pw " & " adhdh " & "root1@" & pHost & " /var/tmp/script "
  • 这是正确的行为。您可以使用 putty 创建一个公共/私有 ssh-key-pair 并将公共密钥复制到 linux-machine 以防止它发生。有一个关于这个的腻子教程......谷歌它!
  • @roland 感谢它的工作,请添加您的答案,以便我为您投票

标签: windows vbscript plink


【解决方案1】:
strCommand11 = "echo y | " & cstrSftp1 & " -ssh -pw " & " adhdh " & "root1@" & pHost & " /var/tmp/script " 

【讨论】:

  • Roland 我还有一个问题 - 是否可以从 VB 脚本验证脚本是否在 Linux 机器上成功运行
  • 如果是,请将您的解决方案添加到您的答案中
  • Run方法返回运行程序的退出码:rc = Sh.Run("cmd /k " & strCommand11, 1, True)
【解决方案2】:

使用echo y | plink.exe ... 是解决此问题的一种相当笨拙的方法。最好将远程服务器的公共主机密钥(例如/etc/ssh/ssh_host_rsa_key.pub)导入注册表,以防止出现提示。有一个 Python script 用于将公钥从 Linux 主机上使用的格式转换为 PuTTY 在 Windows 注册表中使用的格式。您可以像这样将转换后的值写入注册表:

Const Host = "110.18.3.32"

Set sh = CreateObject("WScript.Shell")
sh.RegWrite "HKCU\Software\SimonTatham\PuTTY\SshHostKeys\rsa2@22:" & Host _
  , "0x10001,0x9b95f6ac6cf5...", "REG_SZ"

'rest of your code here

【讨论】:

  • 一个问题是可以从windows机器上删除远程服务器公钥,所以我会再测试一次-如果是,请告诉我如何删除它?
  • 当然。您可以简单地从注册表中删除该值,可以通过 regedit 手动删除,也可以使用脚本,例如reg delete "HKCU\Software\SimonTatham\PuTTY\SshHostKeys" /v "rsa2@22:110.18.3.32" /f 批处理/CMD 或 CreateObject("WScript.Shell").RegDelete "HKCU\Software\SimonTatham\PuTTY\SshHostKeys\rsa2@22:110.18.3.32" VBScript。
猜你喜欢
  • 2016-03-29
  • 2020-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-02
  • 2018-05-10
  • 1970-01-01
  • 2011-12-28
相关资源
最近更新 更多