WMI サービスを使用して、リモート コンピューターでプロセスを開始できます。リモート コンピューターから見える共有ディレクトリに exe をビルドし、リモート コンピューターで WMI を使用して exe を起動します。
これを行う例はたくさんありますが、説明のために、認証の複雑さを想定しない簡単な方法は、.VBS スクリプト ファイルを使用することです。
strComputer = "acomputer"
strCommandLine = "calc.exe"
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set objProcess = objWMIService.Get("Win32_Process")
intReturnValue = objProcess.Create(strCommandLine, , , intPID)
WScript.Echo "Process ID: " & intPID
SysInternals のPsExec を使用して、この作業を行うためのすべての詳細を処理することもできます。
Visual Studio で exe をビルドした後、ローカル マシンで実行して目的の動作を確認し、リモート システムで起動する準備ができたら、上記の VBS と同様のバッチ スクリプトを実行して起動できます。リモート システム上の exe。
ワークロードを分割する何らかのメカニズムを提供して、各クライアントが問題のどの部分に取り組むべきかを認識できるようにする必要があります。この情報は、リモート アプリの起動に使用するコマンド ライン、exe を含むディレクトリ内の構成ファイル、データベース テーブルで提供するか、クライアントが接続する別のコマンド アンド コントロール タイプのサーバーを使用することができます (ただし、そのアプローチでは、独自のソリューションを作成するよりも、既存のソリューションを使用することを学ぶ方が適切な段階にすぐに到達します)。
ある種のリモート「キル スイッチ」を含めることもできます。SysInternals の PsKill を使用できます。または、より適切なシャットダウンが必要な場合は、exe と同じディレクトリに特定のファイルが存在するなどの単純なものが、リモート プロセスがシャットダウンするためのフラグとして機能します。
クライアントにCSScriptサポートを追加して、リモート クライアント プログラムを静的にし、CSScript ファイルをロードしてコンパイルして作業を実行することも検討できます。これは、クライアント プログラムを頻繁に再展開して再起動する際に何らかの問題が発生した場合、またはすべてを少しだけ変更する必要がある場合 (たとえば、クライアントごとに個別のスクリプト ファイルを生成するプログラムを作成する場合) に役立ちます。