vba - 在 shell 中使用 writeline 执行密码更改命令时未读取密码

标签 vba ssh putty plink console.writeline

我有一个打开 plink 的代码使用 shell 命令进行 SSH 连接,我可以通过 StdIn.Writeline 运行任何命令密码更改命令以外的方法。如果我运行更改密码命令,我无法通过 StdIn.Writeline 输入密码方法。该命令类似于 set usr pwd .该命令完美执行,执行后要求“输入当前密码”。这里 WriteLine方法输入密码失败。

以下是代码和输出的示例:

Run = filename & " " & strCompAddress & " -P " & strServerPOrt & " -l " & strServerUser & " -pw " & strServerPassword
Set osh = CreateObject("Wscript.Shell")
Set oEx = osh.exec(Run)

oEx.StdIn.WriteLine "command 1" 'This command runs fine'
oEx.StdIn.WriteLine "command 2" 'This command runs fine'
oEx.StdIn.WriteLine "command 3" 'This command runs fine'
oEx.StdIn.WriteLine "set usr wd" 'This command runs fine'
oEx.StdIn.WriteLine "current_pwd" 'This doesn't input the password and it stucks here  
oEx.StdIn.WriteLine "new_pwd"
oEx.StdIn.WriteLine "new_pwd"
oEx.StdIn.WriteLine "exit"

输出就像有很多转义序列命令。

命令 1
命令 2
命令 3
设置用户密码
当前密码
新密码
新密码
导出

命令 1
结果


命令 2
结果


命令 3
结果

设置用户密码
输入当前密码:

最佳答案

命令set user password (或无论它是什么)可能仅用于从终端读取密码,而不是从标准输入读取密码。这是一种常见的安全功能,可以完全避免这种自动密码更改。

尝试使用 Plink 命令行 switch -t 强制交互/终端模式.

这将使 Plink 输入重定向到虚拟终端,并使您的命令满意。

确保服务器管理员对您正在尝试做的事情感到满意。

关于vba - 在 shell 中使用 writeline 执行密码更改命令时未读取密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39358428/

相关文章:

vba - 如何使用 VBA 创建在 powerpoint 中具有菜单的加载项?

java - Java 中非常基本的终端

putty - SSH PuTTy 错误无法打开地址 shell

oracle-sqldeveloper - 在Oracle SQL Developer中使用内置的SSH,而不是先使用PuTTY

Mysql 和 Putty - 错误 1044 (42000) : Access denied for user

vba - 在后台打开 CSV 文件并检索工作表名称

excel - onclick 将宏绑定(bind)到 Excel 单元格?

excel - 如何判断计算是否完成,或者检测中断的计算?

curl - 通过capistrano V3安装RVM,CURL在终端中抛出垃圾

mysql - 通过ssh进行SQL查询?