0

我编写了以下 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  "

但我仍然得到其他错误。

请建议我需要在脚本中更改什么?

4

2 回答 2

0
strCommand11 = "echo y | " & cstrSftp1 & " -ssh -pw " & " adhdh " & "root1@" & pHost & " /var/tmp/script " 
于 2013-08-01T12:11:06.807 回答
0

使用echo y | plink.exe ...是解决此问题的一种相当笨拙的方法。最好将远程服务器的公共主机密钥(例如/etc/ssh/ssh_host_rsa_key.pub)导入注册表,以防止出现提示。有一个Python 脚本用于将公钥从 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
于 2013-08-01T12:28:19.710 回答