C#/C++/C タイプのアプリケーションを実行しているホスト マシンからマシン上でコマンドをリモートで実行したいと考えています。このアプリケーションは、リモート マシンでのコマンドの実行を制御および実行することを目的としています。プログラミング言語を使用して、このようなことはどうしても可能ですか??
私はpsexecなどについてチェックしましたが、もっと制御したいので、プログラムで「私のやり方」でそれを行うことを考えています:)
よろしくアナンド
C#/C++/C タイプのアプリケーションを実行しているホスト マシンからマシン上でコマンドをリモートで実行したいと考えています。このアプリケーションは、リモート マシンでのコマンドの実行を制御および実行することを目的としています。プログラミング言語を使用して、このようなことはどうしても可能ですか??
私はpsexecなどについてチェックしましたが、もっと制御したいので、プログラムで「私のやり方」でそれを行うことを考えています:)
よろしくアナンド
「リモート プロシージャ コール」を Googlr で検索し、http://en.wikipedia.org/wiki/SOAPを参照してください。
Unix の場合は ssh が適切なオプションです。Windows の場合は、winrm/powershell の組み合わせを使用できます。winrm/powershell で使用できる c++ API があります。
psexec は探索する良い方法です。詳しくはこちらをご覧ください。
C# では、アプリで WCF サービスをホストし、そのようにリモートするのは非常に簡単です。
このリンクをチェックしてください。
以前、C の RPC にxml-rpcを使用したことがありますが、これは非常に簡単です。
探しているコマンドの種類がわからない。「invoke-command」だけで、ローカル コンピュータとリモート コンピュータでコマンドを実行できるはずです。
大幅なカスタマイズを検討している場合は、実行可能なエージェント (CI で使用されるビルド エージェントなど) を開発する必要がある場合があります。
それは、実行したい「コマンド」の種類、アプリをどれだけ強力にしたいか、利用可能なリソースの種類 (時間、コスト、労力、スキルレベルなど) によって異なります。平凡で簡単に実装できるものから、過度に設計された SOA の傑作まで、多くの選択肢があります。前述のように、SSH、PowerShell などの単純なものを使用できますが、より強力なもの (最新の?) が必要なようです (ところで、xml-rpc はすべてがユニコーンやレインボーではありません。証明する傷があります)。それ!)
マシン間でリモート コマンドを送信することは解決済みの古い問題であるため、利用できる既存の技術が多数あります: RPC -> XML-RPC -> WS-*/SOAP -> SOAP-RPC -> .Net Remoting -> WCF -> REST... これらはアクセスできるほんの一部です。
要件が非常に単純な場合は、本格的な SOA/ESB タイプのアーキテクチャを敬遠し、おそらく WCF のようなテクノロジを使用します (大きな夢があり、アプリを SOA に拡張したい場合は、引き続き使用できます)。後の傑作)。WCF には多少の学習曲線があります (そして、WCF がすべてのユニコーンや虹ではないことは確かです) が、そこから学ぶべき多くのリソースがあります。
WCF を使用すると、REST を介して実際の呼び出しを実装し、JSON でデータをエンコードし、ASP.Net MVC アプリケーションで全体を構築することもでき、バズワードに完全に準拠することができます。ただし、さらに重要なことは、将来的に柔軟で拡張可能なアプリケーションが得られることです。
実行したいコマンドの正確なタイプと、探している機能について詳しく知っておくと役立ちます。