Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   echo с перенаправлением вывода через plink (http://forum.oszone.net/showthread.php?t=295261)

alxdon-rs 09-02-2015 19:18 2469151

echo с перенаправлением вывода через plink
 
Задача: с машины, работающей под WindowsXP, требуется выполнить на Linux-хосте через telnet такую последовательность команд:
Код:

echo -e "secret\nsecret" | passwd ; exit
Пытаюсь сделать через plink:
Код:

plink.exe -telnet 192.168.1.1 "passwd; exit"
Проблема: команды не посылаются. Тогда пробую выполнить скрипт, размещеный на локальной машине:
Код:

plink.exe -telnet 192.168.1.1 -m z.sh
Та же проблема: команды не посылаются. Тогда пробую через перенаправление стандартных потоков:
Код:

echo "passwd; exit" | plink.exe -telnet 192.168.1.1
# "passwd; exit"
/bin/ash: passwd; exit: not found

Проблема: из-за кавычек удаленный хост выполняет строку как цельную команду. Без кавычек же работает:
Код:

echo passwd; exit | plink.exe -telnet 192.168.1.1
Но проблема в том, что мне нужно выполнить цепочки команд:
Код:

echo echo -e "secret\nsecret" | passwd ; exit | plink.exe -telnet 192.168.1.1
"passwd" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

Имеющиеся препятствия:
1) plink не передает команды на удаленный хост иначе как со стандартного ввода;
2) выполняющийся на локальной машине echo пытается перенаправить вывод в passwd, если не взять последовательность команд в кавычки;
3) кавычки же заставляют удаленный хост считать строку цельной командой;
4) ssh не включится до смены пароля, что, собственно и должен сделать мой скрипт;
5) ключи putty -telnet -m одновременно тоже не работают.

upd.:
Экранирование символа канала тоже не решило проблему:
Код:

>echo echo -e "secret\nsecret" ^| passwd ; exit | plink.exe -telnet 192.168.1.1
"passwd" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.


cameron 09-02-2015 20:50 2469195

Цитата:

Цитата alxdon-rs
Задача: с машины, работающей под WindowsXP, требуется выполнить на Linux-хосте через telnet »

возьмите Telnet Script Executor

alxdon-rs 09-02-2015 21:16 2469202

А почему не работает такая конструкция:
Код:

echo echo -e "secret\nsecret" ^| passwd ; exit | plink.exe -telnet 192.168.1.1
но работает такая:
Код:

echo echo -e "secret\nsecret" ^| passwd ; exit >tmpfile
plink.exe -telnet 192.168.1.1 <tmpfile



Время: 21:15.

Время: 21:15.
© OSzone.net 2001-