[C#]Windowsで実行中のサービス一覧と、起動状態を取得する

.Net Frameworkを使用して、Windowsで稼働中のサービス一覧を取得するにはSystem.ServiceProcessパッケージのServiceControllerクラスを使用します。

下記のコードで、全サービス一覧の列挙と、サービスの起動状態を取得できます。

static void Main( string[] args ) {
    //---------------------
    // サービス一覧を取得
    //---------------------
    System.ServiceProcess.ServiceController[] controllerList;
    controllerList = ServiceController.GetServices();
 
    //-------------------------------
    // 取得した全サービスを列挙する
    //-------------------------------
    foreach( ServiceController controller in controllerList ) {
 
        // サービスの起動状況を取得
        string statusName;
        switch( controller.Status ) {
            case ServiceControllerStatus.ContinuePending:
                statusName = "保留中";
                break;
            case ServiceControllerStatus.Paused:
                statusName = "一時中断";
                break;
            case ServiceControllerStatus.PausePending:
                statusName = "一時中断の保留中";
                break;
            case ServiceControllerStatus.Running:
                statusName = "実行中";
                break;
            case ServiceControllerStatus.StartPending:
                statusName = "開始中";
                break;
            case ServiceControllerStatus.Stopped:
                statusName = "停止";
                break;
            case ServiceControllerStatus.StopPending:
                statusName = "停止中";
                break;
            default:
                statusName = "不明";
                break;
        }
 
        // サービス名と、起動状態を出力する
        System.Console.WriteLine( "------------------------------------------" );
        System.Console.WriteLine( controller.ServiceName );
        System.Console.WriteLine( "    名称: " + controller.DisplayName );
        System.Console.WriteLine( "    状態: " + statusName );
 
    }
}




このプログラムを実行すると、以下のようにサービス一覧が表示されます。

関連記事

コメントを残す

メールアドレスが公開されることはありません。