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

通过Telnet执行从Debian到Windows的远程命令,windows,debian,telnet,expect,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 teln

我正在从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连接已建立良好。但是,不会执行命令行


有人能告诉我脚本出了什么问题吗?

只需在末尾添加一个
expect
语句,如下所示

send "$cmd\r"
expect "C:\Users\Administrateur>"
基本上,
expect
将使用两个可行的命令,例如
send
expect
。如果使用了
send
,则之后必须使用
expect
(在大多数情况下)。(反之亦然,不要求强制执行)

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