通过Telnet执行从Debian到Windows的远程命令

时间:2015-02-04 11:07:12

标签: windows debian telnet expect

我正在从Debian远程执行Windows中的命令行。为此,我尝试使用下面的bash脚本。使用 expect 工具,它包括通过 telnet 连接到远程服务器,输入用户名和密码值并发送所需的命令行。

#!/usr/bin/expect

set timeout 20
set name 192.168.1.46
set user Administrateur
set password MSapp/*2013
set cmd "TASKKILL /F /IM Tomcat6.exe"

spawn telnet 192.168.1.46
expect "login:"
send "$user\r"
expect "password:"
send "$password\r"
expect "C:\Users\Administrateur>"
send "$cmd\r"

telnet连接已经建立。但是,命令行未执行。

有人能告诉我我的剧本有什么问题吗?

1 个答案:

答案 0 :(得分:0)

最后再添加一个expect语句,如下所示,

send "$cmd\r"
expect "C:\Users\Administrateur>"

基本上,expect将使用两个可行的命令,例如sendexpect。如果使用send,则必须在之后拥有expect(在大多数情况下)。 (反之亦然,不要求是强制性的)

这是因为如果不这样做,我们将错过生成过程中发生的事情,因为expect将假设您只需要发送一个字符串值而不期望会话中的任何其他内容。