1

サービスは「停止不可」としてマークできます。

  • C / C ++では、SetServiceStatusSERVICE_ACCEPT_STOPを呼び出すときにフラグを指定します(詳細については、 SERVICE_STATUSを参照してください)。

  • .NETの場合は、ServiceBase.CanStopをに設定しfalseます。

しかし、これは良い習慣ですか?これは、管理者権限を持つユーザーでさえ、そのようなサービスをクリーンな方法で停止できないことを意味します。(それでも強制終了することは可能ですが、これにより適切なクリーンアップが妨げられます。同じプロセスで実行されている他のサービスがある場合は、それらも強制終了されます。)

私の特定のケースでは、私は科学機器を制御するサービスを持っています。取得したデータが失われるのを防ぐために、機器からデータを取得している間はサービスを停止できないようにすることが提案されています。私はそれを追加する必要があります:

  • 管理者以外のユーザーにサービスを開始/停止する権利を付与します
  • このサービスを開始/停止するためのUIを提供するプログラムがあります。このプログラムは、ユーザーが取得中にサービスを停止しようとすると警告を発します。SC.EXEただし、もちろん、「サービス」スナップインを使用して停止することもできます。この場合、警告はありません。

Microsoft(または他の誰か)はガイダンスを提供しますか?

4

1 に答える 1

0

これまでの私自身のスタンスは、サービスを停止できないようにマークすることは、慎重に使用する必要がある抜本的な対策であるということです。許容される用途は次のとおりです。

  • 短時間、中断してはならない重要な操作を保護するため
  • OSの運用やセキュリティに欠かせないサービスの場合

私の例はこれらの基準に当てはまらないので、止められるはずです

于 2012-12-20T17:26:10.663 に答える