メモの日々


2021年11月28日(日) [長年日記]

[windows] コマンドラインでサービスの情報を確認する

Windowsのコマンドラインでサービスの情報を得る方法として

の2つがあることを知った。

sc.exeの方について少しメモ。sc.exeのちゃんとしたマニュアルは見つからなくて、上記のリンク先はWindows Server 2012のドキュメント。

sc.exeでサービスの情報を得られそうなサブコマンドとしてquery, queryex, qcがある。それぞれの実行結果を次に示す。

> sc query com.docker.service

SERVICE_NAME: com.docker.service
        TYPE               : 10  WIN32_OWN_PROCESS
        STATE              : 4  RUNNING
                                (STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0
> sc queryex com.docker.service

SERVICE_NAME: com.docker.service
        TYPE               : 10  WIN32_OWN_PROCESS
        STATE              : 4  RUNNING
                                (STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0
        PID                : 5028
        FLAGS              :
> sc qc com.docker.service
[SC] QueryServiceConfig SUCCESS

SERVICE_NAME: com.docker.service
        TYPE               : 10  WIN32_OWN_PROCESS
        START_TYPE         : 2   AUTO_START
        ERROR_CONTROL      : 1   NORMAL
        BINARY_PATH_NAME   : "C:\Program Files\Docker\Docker\com.docker.service"
        LOAD_ORDER_GROUP   :
        TAG                : 0
        DISPLAY_NAME       : Docker Desktop Service
        DEPENDENCIES       : LanmanServer
        SERVICE_START_NAME : LocalSystem
  • queryexはqueryで得られる情報にPIDとFLAGSが加わった結果になっている。
  • 現在の状態(STATE)はqueryで得られる。
  • 起動設定(START_TYPE)はqcで得られる。