UNIXサーバーに接続し、Windowsフォームでc#を使用してシェルスクリプトを実行し、テキストボックスでスクリプトの出力を取得することは可能ですか?
また、コードを使用してデスクトップにリモート接続し、そこでいくつかのファイルを検索したいと思います。方法を教えてください。
最初の質問に答えるには:
通常、Unixマシンは、特定のユーザー名/パスワードで接続してシェルスクリプトを実行できる、ある種のセキュアシェル(SSH)サーバーを実行します。
Windowsフォームアプリケーションからこれを実行するには、http: //granados.sourceforge.net/のGranadosなどのソフトウェアライブラリを統合してスクリプトを接続して実行するか、PuTTYなどのクライアントをセットアップしてスクリプトを実行します。これを外部プロセスとして生成します。つまり、次のようになります。
Process.Start("C:\Putty\putty.exe -ssh -m C:\myScript.txt remoteUser@192.168.1.1);
スクリプトの設定の詳細については、Windowsのパテを介したssh経由のスクリプトを参照してください。この方向に進んだ場合は、パテからの出力をファイルに保存してから、WinFormsアプリでそれを読み取る必要があるようです。
もう1つの方法は、granadosなどのライブラリへの参照を追加するか、NuGetパッケージマネージャーを使用して「ssh.net」をwinformsアプリケーションに追加することです。http://sshnet.codeplex.com/discussions/285219に例があり、サーバーへの接続を開き、コマンドを実行し、すべてssh.netライブラリを使用して結果を読み取ります。
2番目の質問については、リモートPCがどのように接続されているかによって異なります。それらが同じ共有ネットワーク上にある場合(例:職場のイントラネット)、関心のあるマシンでネットワーク共有をセットアップし、次のようなパスを使用してファイルシステムを直接検査できます。
System.IO.File.GetAttributes(@"\\hostname\shareName\filename.txt");
リモートマシンが実際にリモートの場所にある場合は、はるかに困難になり、リモートデスクトップライブラリを使用するか、ファイルシステムを参照するためにリモートマシンにFTPサーバーなどをセットアップさせる必要があります。