2

plink.exeSSH リバース トンネルを確立するために C# アプリケーションから (PuTTY リンク、コマンド ライン ユーティリティ/PuTTY のバージョン)を起動しようとしましたが、正しいパラメーターを渡すとすぐに機能しなくなりました

どういう意味ですか?-pw以下は期待どおりに機能します。コマンド ライン ウィンドウが開き、引数 quitのパスワードを渡すのを忘れたことが表示され、プロンプトが表示されます。私が提供しなかったものを具体的に要求しているので、引数があることはわかっています。

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 に当てはまることを願っています。これは、特に単一のアプリケーション向けではありますが、プログラムで正常に起動することを中心に展開しているためです。

4

1 に答える 1

0

はい、この Web ページは、Putty が非対話型ログオンに神経質になることを示唆しています。提案された回避策が役に立たない場合は、Putty サポート フォーラムまたは Superuser.com で質問することをお勧めします。それ以外は、Process クラスや C# 言語とは何の関係もありません。

于 2010-05-19T13:27:21.297 に答える