4

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

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

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

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

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

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

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

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

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

記録として、これは C#/WPF で実装されます。

編集:

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

ソース: http://pastebin.com/fr6dDMp5

4

3 に答える 3

1

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

于 2010-11-11T08:19:44.397 に答える
1

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

于 2010-12-21T06:59:02.113 に答える
0

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

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

于 2010-11-11T08:40:00.940 に答える