15

欲しいもの: PuttY ウィンドウの出力を C# で読みたい

私が得たもの:私たちの会社には、少なくとも2〜3人の技術ユーザー(アプリケーションを実行している)がいる数百のサーバーがあります。すべてのユーザーとパスワードのデータベースを取得しました。つまり、基本的に検索してコピーして貼り付けてログインします。

やりたいこと:これを自動的に行うソフトウェアを書きます。

私はどこまで:単一の PuTTY インスタンスのログファイルを読み取り、パスワード プロンプトを探すツールを作成しました。対象のユーザーとサーバーを決定します (現在のサーバーと su - [ユーザー名] に基づいて)。パスワードを取得し、PostMessage 経由で選択した PuTTY に送信します。

問題または変更したいもの:

PuTTY ウィンドウから直接 PuTTY 出力を読み取れるようにしたいのは、ログファイルが信頼できない (出力をスクランブルする TAB、ESCAPE など) ためです。UISpy やその他のツールを使用してコントロールを取得しましたが、うまくいきませんでした。

キーロガー メカニズムなどを使用したくありません。

フックか何かかもしれませんが、これまでに行ったことはありません。

追加情報:

  • 接続は JumpServer 経由で行われ、そこからターゲット サーバーへの ssh 接続のみが許可されます。
  • 技術で直接ログインします。ユーザーは無効です。
  • PuTTY ウィンドウは既に開いており、サーバーでの作業に使用されています。
  • まったく新しい Connection Manager を作成するという選択肢はありません。同僚は PuTTY に精通しており、このソリューションはある種のスタンドアロン バックグラウンド ワーカーである必要があります。

追加情報 2: 目標は、厳密なサードパーティ ソフトウェアを作成することです。他の SSH ライブラリを使用しないように、PuTTY ソースまたは他のアプローチを変更してください。問題は、ログファイルの横にある PuTTY ウィンドウからテキストを読み取る方法です。

4

5 に答える 5

4

これがまだ提案されていない理由はわかりませんが、plink (PuTTY スイートの一部) は PuTTY のコマンドライン バージョンです。比較的強力な (機能と同様に、telnet を自分で解釈する必要があります) SSH クライアント。

于 2012-10-18T00:50:08.183 に答える
2

OCR の使用を検討したことはありますか?

ソリューションのスケッチは次のようになります。

1 - エージェントはパテ ウィンドウの通知を待機して実行されます (新しいプロセスのコールバックを OS に登録するか、実行中のプロセスのリストを定期的にチェックします)。

2 - パテが検出されると、エージェントはスクリーンショットを撮り、パテが占めている画面の部分を抽出します。ウィンドウの場所を抽出する必要がありますが、ステップ 1 のハンドルがあると仮定すると、OS 呼び出しを介して実行できます。

3 - この画像データをtesseractなどに送り込み、テキスト出力を取得します。パスワードプロンプトが表示されるかどうかを確認します

4 - プロンプトが表示されている場合は、この後に残りの作業が完了したようです (必要な情報を PostMessage 経由で送信します)。

于 2012-10-22T16:34:19.500 に答える
0

SSH ツールとして putty を使用している場合は、http://www.routerek.co.jp/en/product/varaterm/granados.html C# SSH ライブラリを使用します。

シリアル ツールとしてパテを使用している場合は、組み込みの IO クラスを使用します。

Telnet には C# ライブラリもありますが、何が優れているかについての知識が豊富な入力を提供できるものはありません。

于 2012-10-15T09:01:45.970 に答える
0

This Link (Putty StdIn / StdOut )をご覧ください。 ac# アプリからパテを開く方法と、パテ インスタンスと通信するために標準の入力、出力、およびエラー出力を処理する方法を示しています。

于 2012-10-15T08:53:09.813 に答える
0

変更されたバージョンのパテを使用できる場合は、パテ ソースを変更し、C# アプリケーションと通信するいくつかのパイプ (またはソケット) を含める必要があります。そのように、あなたの同僚は同じソフトウェアを保持しています。

于 2012-10-16T22:14:28.903 に答える