C# サービスの一覧を取得する

   

サービスに関する情報を取得・操作するには、「System.ServiceProcess名前空間」で取り扱います。

 

サービスの一覧を取得する

デバイス ドライバ以外のサービスの一覧をローカル コンピュータから取得するには、パラメータを指定せずに GetServices メソッドを呼び出します。

 

ServiceController クラスの GetServices メソッドを使用して、特定のコンピュータにあるサービスの一覧を取得できます。

 

デバイス ドライバ サービスの一覧をローカル コンピュータから取得するには、パラメータを指定せずに GetDevices メソッドを呼び出します。

 

デバイス ドライバ サービスの一覧を特定のコンピュータから取得するには、GetDevices メソッドを呼び出し、対象のコンピュータをパラメータに文字列で指定します。

 

取得した配列のSystem.ServiceProcess.ServiceControllerクラスはサービスの情報を持っています。

 

System.ServiceProcess.ServiceControllerクラス

System.ServiceProcess.ServiceController.GetServicesや、System.ServiceProcess.ServiceController.GetDevicesで取得される配列の型(System.ServiceProcess.ServiceControllerクラス)には主に下記のようなプロパティがあります。

DisplayNameプロパティ サービスの表示名
ServiceNameプロパティ サービスを識別する名前
ServiceTypeプロパティ サービスの種類
Statusプロパティ サービスのステータス
CanPauseAndContinueプロパティ 一時中断および再開できるかどうかを示す値
CanShutdownプロパティ システムのシャットダウン時に、サービスにそれを通知する必要があるかどうかを示す値
CanStopプロパティ サービスをいったん開始してから停止できるかどうかを示す値

 

サンプルプログラム

ローカルコンピュータのサービスの一覧を取得して、その情報を表示するサンプルプログラムです。

 

サービスはかなりの数が登録されているので、一覧を取得できるといろいろ使い道がありそうです。

 

 - 未分類