Как запустить plink с параметрами?

olga.armalita

Client
Регистрация
05.04.2014
Сообщения
194
Благодарностей
42
Баллы
28
Приветствую, необходимо запустить plink.exe(консольная программа) с параметрами.
Выбрал "Запуск сторонней программы".
Указываю пусть к исполняемому файлу, прописываю параметры, и указываю таймаут выполнения, к примеру 10 сек.
В результате, plink запускается с нужными параметрами, подключается к серверу, но по прошествии 10 секунд(или любого другого промежутка времени заданного как таймаут) plink вырубается, зенно пишет что действие не выполнено, а в логе
"Выполнение программы (путь_к_исполняемому_файлу)\plink.exe Результат: -1".

Та же фигня с cmd.exe, после запуска появляется окно консоли, но зенно продолжает чего-то ждать, а по завершении таймаута вырубает консоль.
Пробовал запустить ammy admin, все ок, прога запускается, а проект продолжает работу дальше.
 

olga.armalita

Client
Регистрация
05.04.2014
Сообщения
194
Благодарностей
42
Баллы
28
При запуске батника, на секунду мигает окно консоли, а в логе:
"Выполнение программы D:\AA.bat Результат: 1"
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
с батником беда тогда тоже с самим. потому что постер кроме запуска батника ничего не делает с софтом, который должен батником вызываться
 

olga.armalita

Client
Регистрация
05.04.2014
Сообщения
194
Благодарностей
42
Баллы
28
с батником беда тогда тоже с самим. потому что постер кроме запуска батника ничего не делает с софтом, который должен батником вызываться
Прочитал три раза, и ничего не понял:-) Можно еще раз, и по подробнее?
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
вы батник запустите без постера. все работает как надо?
 

olga.armalita

Client
Регистрация
05.04.2014
Сообщения
194
Благодарностей
42
Баллы
28
да, без постера батник работает без проблем
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
а при запуске спрашивает про права админа?
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
и таймаут достаточный стоит в PM?
 

olga.armalita

Client
Регистрация
05.04.2014
Сообщения
194
Благодарностей
42
Баллы
28
нет про админ права молчит, пробовал 30, 60, 180, по его окончании plink вырубается.
Получается что plink запускается с нужными параметрами, и работает правильно.
Но зенно вместо того чтобы идти дальше, дожидается окончания таймаута и вырубает plink.

Вот проект https://www.sendspace.com/file/28g5df (я по прежнему не могу выкладывать файлы сюда)
Plink можно скачать с офф сайта - http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

Когда появиться надпись Using username "admin". занчит соединение с сервером установлено.
 

olga.armalita

Client
Регистрация
05.04.2014
Сообщения
194
Благодарностей
42
Баллы
28
пробовал 30, 60, 180 - это про таймаут.
Я про прежнему не могу редактировать свои сообщения:(
 

olga.armalita

Client
Регистрация
05.04.2014
Сообщения
194
Благодарностей
42
Баллы
28
Видел, читал, но ничего полезного не вынес.

Выяснил что если запустить plink из батника, через команду start то консоль запускает plink с нужными параметрами а сама сразу же закрывается.
И если записать в баткик "start plink.exe +параметры", а рядом с батником положить plink.exe, то все работает.
Но проблема в том что каждый поток будет запускать plink с другими параметрами(подключаться к своему серверу),
по этому хотелось запускать plink с параметрами непосредственно из зенно.

Проще говоря нужно запустить из зенно cmd.exe с параметрами "start plink.exe +параметры"
Но запуск C:\Windows\System32\cmd.exe
c параметрами "start plink.exe +параметры"
запускает обычное окно консоли:(
 

olga.armalita

Client
Регистрация
05.04.2014
Сообщения
194
Благодарностей
42
Баллы
28
В связи с вновь открывшимися обстоятельствами - отбой:-)
Оказалось что из за необходимости присутствия специфических параметров, запуск plink из зенно возможен исключительно через батник:(
Придется создавать кучу файлов
 

olga.armalita

Client
Регистрация
05.04.2014
Сообщения
194
Благодарностей
42
Баллы
28
А хотя нет, мне же придется этот процесс затем убить командой kill.
И создавать еще один батник для этого совсем не кошерно:(
Может все таки есть способ запустить консоль с нужной командой из зенно?
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
а извиняюсь не туда написал
говнокубиком не получится сделать, ждите обновления
 
Последнее редактирование:
  • Спасибо
Реакции: olga.armalita и alekwuy

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
901
Баллы
113
Ну елки))) сравнил возможности яп и зеннопостера))))
 

olga.armalita

Client
Регистрация
05.04.2014
Сообщения
194
Благодарностей
42
Баллы
28
а извиняюсь не туда написал
говнокубиком не получится сделать, ждите обновления
Код работает отлично, особая благодарность за pid процесса, а то до этого стоял вопрос как эти процессы различать:-)

Но есть проблема, при подключении к новому серверу plink спрашивает:
Store key in cache? (y/n)
И ему нужно ответить y. Чтобы это автоматизировать нашел в сети такой вариант:
echo y | plink.exe -N -pw default [email protected] -D 127.0.0.1:9995
Но он работает только из батника или консоли:(
Можно ли заставить выше приведенный код запускать из консоли строку с параметром echo y | ?
Я попробовал по аналогии, но не вышло:(
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
можно написать так
FileName = "echo.exe",
Arguments = "y | plink -pw default -ssh -D 127.0.0.1:9999 [email protected] echo n",
так как ехо посылает еоф плинк закрывыается. все равно ключ добавляется
 
  • Спасибо
Реакции: olga.armalita

olga.armalita

Client
Регистрация
05.04.2014
Сообщения
194
Благодарностей
42
Баллы
28
можно написать так
FileName = "echo.exe",
Arguments = "y | plink -pw default -ssh -D 127.0.0.1:9999 [email protected] echo n",
так как ехо посылает еоф плинк закрывыается. все равно ключ добавляется
Ругается что не может найти файл echo.exe.

Блин консоль запустить методом тыка смог:-) но вот параметры в нее никак не передаются:(
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113

Вложения

  • 3,2 КБ Просмотры: 38
  • Спасибо
Реакции: olga.armalita

olga.armalita

Client
Регистрация
05.04.2014
Сообщения
194
Благодарностей
42
Баллы
28
Выполнение действия CSharp OwnCode Процесс с идентификатором (здесь pid) не выполняется.
Видимо не судьба:(
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
да все работает. купите плойку для рук, вдруг поможет.
 
  • Спасибо
Реакции: olga.armalita и alekwuy

olga.armalita

Client
Регистрация
05.04.2014
Сообщения
194
Благодарностей
42
Баллы
28
Вам легко говорить, а я C# вообще не знаю.
И по этому даже не понимаю что делаю изменяя его.

И вообще не было бы всех этих проблем если бы зенно хотя бы запускал батник,не говоря уже про передачу параметров в консоль:(
Кстати это только у меня не работает?
 

olga.armalita

Client
Регистрация
05.04.2014
Сообщения
194
Благодарностей
42
Баллы
28
вот к примеру bat с таким содержимым:
tskill plink
запущенный лапками, убивает все процесы с именем plink.
А тот же батник запущенный через зенно выдает:

[здесь путь к директории проекта]>tskill plink
"tskill" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

Как так? Зенно на всякий случай запустил от имени админа.
В пути до директории проекта нет ни пробелов ни кириллических символов.
 

darkdiver

Administrator
Команда форума
Регистрация
13.01.2009
Сообщения
2 285
Благодарностей
2 730
Баллы
113
вот так запустите
upload_2015-1-30_15-53-15.png
 
  • Спасибо
Реакции: olga.armalita

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
System.Diagnostics.Process.GetProcesses().Where(p => System.Text.RegularExpressions.Regex.IsMatch(p.ProcessName, @"(?i)(^plink$)")).ToList().ForEach(p => p.Kill());
убивает все plink
 
  • Спасибо
Реакции: olga.armalita

olga.armalita

Client
Регистрация
05.04.2014
Сообщения
194
Благодарностей
42
Баллы
28
Выполнение программы C:\Windows\System32\cmd.exe Результат: 1
System.Diagnostics.Process.GetProcesses().Where(p => System.Text.RegularExpressions.Regex.IsMatch(p.ProcessName, @"(?i)(^plink$)")).ToList().ForEach(p => p.Kill());
убивает все plink
Спасибо, работает:-)
Извиняюсь за наглость, последняя просьба (в этой теме:-)) - можно ли такой же код только чтоб не по имени а по pid убивал? Мне оба поднадобятся
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
System.Diagnostics.Process.GetProcessById(айди).Kill()
 
  • Спасибо
Реакции: olga.armalita

Gfoblin

Client
Регистрация
30.05.2013
Сообщения
4 596
Благодарностей
1 014
Баллы
113
Код работает отлично, особая благодарность за pid процесса, а то до этого стоял вопрос как эти процессы различать:-)

Но есть проблема, при подключении к новому серверу plink спрашивает:
Store key in cache? (y/n)
И ему нужно ответить y. Чтобы это автоматизировать нашел в сети такой вариант:
echo y | plink.exe -N -pw default [email protected] -D 127.0.0.1:9995
Но он работает только из батника или консоли:(
Можно ли заставить выше приведенный код запускать из консоли строку с параметром echo y | ?
Я попробовал по аналогии, но не вышло:(
Братан :-)
Как PID процесса выдернуть выручай!!!
 

darkdiver

Administrator
Команда форума
Регистрация
13.01.2009
Сообщения
2 285
Благодарностей
2 730
Баллы
113

Кто просматривает тему: (Всего: 3, Пользователи: 0, Гости: 3)