2015-02-04 1 views
0

Я работаю над удаленным выполнением командной строки в Windows из Debian. Для этого я попытался использовать скрипт bash ниже. Использование ожидается, оно состоит из подключения через telnet к удаленному серверу, ввода значений имени пользователя и пароля и отправки желаемой командной строки.Выполнять удаленные команды из Debian в Windows через 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-соединение хорошо установлено. Но командная строка не выполняется.

Может ли кто-нибудь сказать мне, что не так с моим сценарием?

ответ

0

Просто добавьте еще один expect заявление в конце, как и в дальнейшем,

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

В принципе, expect будет работать с двумя выполнимых команд, таких как send и expect. Если используется send, тогда обязательно будет expect (в большинстве случаев). (в то время как наоборот не обязательно быть обязательным)

Это потому, что без этого мы будем пропускать то, что происходит в порожденном процессе, так как expect предположит, что вам просто нужно отправить одно строковое значение и не ожидать что-нибудь еще из сеанса.

+0

Это работает! большое спасибо :) – Basma