WMI(C#コード)を使用してリモートサーバーでコンソールアプリを実行しています
プロセスからの出力をキャプチャしたいと思います。
誰かがそうするのを手伝ってくれませんか?
シナリオ:
ユーザーがサーバーの詳細を提供するWebページがあります。ユーザーが送信をクリックしたときに、リモートサーバー上のアプリを呼び出してパラメーターを渡したい。リモートサーバー上のアプリがアクションを実行し、出力を返します(出力は数値、文字列、またはブール値になります)。
出力に基づいて、詳細をユーザーに求めるか、エラーを表示する必要があります。
object[] processToRun = new[] { "\"Path to exe\" \"Param1\" \"Param2\"" };
ConnectionOptions connection = new ConnectionOptions();
connection.Username = "username";
connection.Password = "password";
ManagementScope wmiScope = new ManagementScope(String.Format("\\\\{0}\\root\\cimv2", "ServerName"), connection);
ManagementClass wmiProcess = new ManagementClass(wmiScope, new ManagementPath("Win32_Process"), new ObjectGetOptions());
wmiProcess.InvokeMethod("Create", processToRun);
これの出力を取得したいと思います。
一時的な解決策:しかし機能しない
一時的な解決策として、誰もがアクセスできる共有パスにログファイルを作成するコードを追加しました。しかし、ここでも問題が発生しています。リモートサーバーでexeを呼び出して共有パスに書き込むと、常に「アクセスが拒否されました」というエラーが表示されます。しかし、サーバー自体からexeを実行すると、正常に動作します。