sc.exe でサービス設定を確認してみた
Windows Update サービスが Windows7 まで「自動起動(遅延実行)」だったのが Windows8 から「手動」になった。お客さんPCでこの設定を「自動起動(遅延実行)」にしときたいとのこと。訪問するのも大変なので、とりあえず、バッチを配って変更してもらうことにした。
Windows Update に限らず、サービスに対する操作は sc.exe でできるんだね。参考にさせてもらったネタ元はこちら。:-)
- IPPro SCコマンド -- あらゆる目的に使えるサービス管理コマンド
sc の基本構文はこんな。
sc [\\<サーバー名>] <コマンド> <サービス名> [<オプション>]
稼働中のサービスを取得する場合 query コマンドを指定する。サービス名が分かってると絞り込みできるとのこと。なるほど。φ(.. )
>sc query wuauserv SERVICE_NAME: wuauserv TYPE : 20 WIN32_SHARE_PROCESS STATE : 4 RUNNING (STOPPABLE, NOT_PAUSABLE, ACCEPTS_PRESHUTDOWN) WIN32_EXIT_CODE : 0 (0x0) SERVICE_EXIT_CODE : 0 (0x0) CHECKPOINT : 0x0 WAIT_HINT : 0x0
ちなみに sc で指定するサービス名(SERVICE_NAME)は「コンピュータの管理」で表示されるサービス名(DISPLAY_NAME)とは別モノ。指定するサービス名を知りたい場合、getkeyname で取得できる。なるほどね。φ(.. )
>sc getkeyname "Windows Update" [SC] GetServiceKeyName SUCCESS 名前 = wuauserv
指定したサービスが他サービスに依存しているか知りたい場合、qc コマンドを使う。DEPENDENCIESで「rpcss」に依存してることが分かる。
>sc qc wuauserv [SC] QueryServiceConfig SUCCESS SERVICE_NAME: wuauserv TYPE : 20 WIN32_SHARE_PROCESS START_TYPE : 2 AUTO_START (DELAYED) ERROR_CONTROL : 1 NORMAL BINARY_PATH_NAME : C:\Windows\system32\svchost.exe -k netsvcs LOAD_ORDER_GROUP : TAG : 0 DISPLAY_NAME : Windows Update DEPENDENCIES : rpcss SERVICE_START_NAME : LocalSystem
逆に他サービスから依存されているか知りたい場合、enumdepend コマンドを使う。wuauserv の場合、他からの依存なし。lanmanserve の場合、Browser から依存ありってことだね。
>sc enumdepend wuauserv [SC] EnumDependentServices: entriesread = 0 >sc enumdepend lanmanserver [SC] EnumDependentServices: entriesread = 1 SERVICE_NAME: Browser DISPLAY_NAME: Computer Browser TYPE : 20 WIN32_SHARE_PROCESS STATE : 4 RUNNING (STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN) WIN32_EXIT_CODE : 0 (0x0) SERVICE_EXIT_CODE : 0 (0x0) CHECKPOINT : 0x0 WAIT_HINT : 0x0
なるほどね。:-)