4


3

C#リモートウォッチドッグ

複数のリモートコンピューターで実行される多くのサービス(主にコンソールアプリケーション)があります。

これらのすべてのサービスが期待どおりに実行されていることを確認するには、何らかの形式のウォッチドッグを実装する必要があります。

一部のサービスはWindowsタスクスケジューラを介して実行され、一部のサービスは長時間実行されるアプリです。

これらのアプリケーションが実行されていることをログに記録する最良の方法は何でしょうか? 実行中のサービスを変更したくありません。

すべてのマシンへの管理者アクセス権があります。

いくつかのオプションが思い浮かびます:

長時間実行されるアプリケーションの場合: `psexec`を使用して、実行中のプロセスのリストを取得し、アプリケーションがそのリストにあることを確認します。

タスクスケジューラによって呼び出されたタスクの場合: psexec`を使用して schtasks`をクエリし、サービスがいつ実行されたか、戻りコードが何であったかを調べます。

これを行う他のアイデアはありますか?

レコードの場合、これはC#/ WPFで実装されます。

編集:

わかりました、私はこれをかなり簡単な方法で解決しました。 ご意見ありがとうございます。

出典:http://pastebin.com/fr6dDMp5

3 Answer


1


WMIタスク:プロセスを見ましたか? http://msdn.microsoft.com/en-us/library/aa394599%28VS.85%29.aspx


1


私の質問で述べたように、リモートマシンでプロセスを取得できる `Process.GetProcesses(string machineName)`を使用して、これをかなり簡単に解決しました。 ここのソース:http://pastebin.com/fr6dDMp5


0


XYNTサービス(http://www.codeproject.com/KB/system/xyntservice.aspx)を使用することを検討しましたか?

コンソールアプリケーションをWindowsサービスとして実行し、停止した場合はリセットできます。 既存のサービスを変更する必要はありません。