Я пытаюсь запустить plink.exe
(PuTTY Link, утилита/версия командной строки PuTTY) из приложения C#, чтобы установить обратный туннель SSH, , но он больше не работает как как только я передаю правильные параметры.Запуск приложения CLI программно не работает в зависимости от аргументов
Что это значит? Следующее работает так, как ожидалось: открывает окно командной строки, показывает, что я забыл передать пароль для вывода аргументов -pw
и отображает приглашение. Я знаю, что он получил аргументы, поскольку он специально запрашивает одно, чего я не предоставлял.
Uri uri = omitted;
ProcessStartInfo info = new ProcessStartInfo();
info.FileName = "cmd";
info.Arguments = "/k \"C:\\Program Files (x86)\\PuTTY\\plink.exe\" -R 3389:" + uri.Host + ":" + uri.Port + " -N -l username -pw"; // TODO pwd
Process p = Process.Start(info);
Я попытался же думаю, что с вызовом plink.exe
непосредственно вместо cmd.exe /k
, но окно закрывается немедленно, что прискорбно для ошибки охоты.
НО когда я прохожу пароль в аргументах, plink.exe
отображает программа помощи (с указанием доступных параметров) и не выходит:
Uri uri = omitted;
ProcessStartInfo info = new ProcessStartInfo();
info.FileName = "cmd";
info.Arguments = "/k \"C:\\Program Files (x86)\\PuTTY\\plink.exe\" -R 3389:" + uri.Host + ":" + uri.Port + " -N -l username -pw secretpassword";
Process p = Process.Start(info);
Нет индикации недостающих параметров. Варианты cmd /k
и plink.exe
не работают (последний немедленно закрывается, поэтому нет информации о поведении).
Когда я запускаю приложение из пусковой установки Windows 7 с идентичными параметрами, он открывает окно cmd.exe
и устанавливает соединение в соответствии с запросом.
Что случилось? Есть ли способ plink.exe
замечает, что он не работает в реальной оболочке? Если да, то как я могу обойти его, как это делает меню «Меню» «Пуск»?
Я надеюсь, что этот вопрос прав на SO, поскольку он, хотя специально для одного приложения, вращается вокруг запуска его программно.
Спасибо, что знаю, но ни один из ответов не помог мне там, я все еще подозреваю, например. проблемы времени выполнения для связанных с Silverlight вопросов и должны были создать уродливые хаки. Отображается весь код, который я использую (скопировал его в main() для теста), за исключением ввода Host и Port объекта Uri, которые я злоупотребляю для этой задачи, и фактического имени пользователя и пароля для SSH-соединения. –