あいしんくいっとオススメ商品レビュー

Windowsサービスをコマンドで起動・停止、自動起動無効化・有効化する方法

この記事には広告を含む場合があります。

記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。

本記事対象者
Windowsサービスをコマンドで起動・停止、自動起動無効化・有効化する方法を知りたい方

ども。あいしんくいっと(@ithinkitnet)です。

Windowsクライアントを構築しているとサービス停止・起動、無効化といった作業が必要になることがあります。
Windowsサービス一覧画面
これが1台や2台ならまだしも、100台とかになってくると流石に洒落にならない。
備忘も兼ねて、Windowsサービスをコマンドで起動・停止、無効化する方法について書いておきたいと思います。

Windowsサービスをコマンドで起動・停止、無効化する方法

Windowsサービスの確認

サービス名の確認
netコマンドでも可能ですが、scコマンドを使ってみました。
例としてWindowsAudioサービスである「Audiosrv」の起動・停止、無効化を試してみます。

サービス名確認コマンド

sc query | findstr SERVICE_NAME

findstrコマンドを使ってサービス名のみ抽出しています。

コマンド実行例

>sc query | findstr SERVICE_NAME
SERVICE_NAME: AdAppMgrSvc
SERVICE_NAME: AdobeARMservice
SERVICE_NAME: AGSService
SERVICE_NAME: AudioEndpointBuilder
SERVICE_NAME: Audiosrv
SERVICE_NAME: BFE

Windowsサービスの停止

サービスの停止

サービス停止コマンド

sc stop Audiosrv
コマンド実行例

>sc stop Audiosrv
SERVICE_NAME: Audiosrv
        TYPE               : 10  WIN32_OWN_PROCESS
        STATE              : 3  STOP_PENDING
                                (NOT_STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x2
        WAIT_HINT          : 0x1388

サービス停止に失敗する場合は強制停止を試してみても良いかも。(ただし、自己責任で!)
Windowsサービスをtaskkillコマンドで強制停止する方法

Windowsサービスの起動

サービス起動

サービス起動コマンド

sc start Audiosrv
コマンド実行例

>sc start Audiosrv
SERVICE_NAME: Audiosrv
        TYPE               : 10  WIN32_OWN_PROCESS
        STATE              : 2  START_PENDING
                                (NOT_STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x7d0
        PID                : 808
        FLAGS              :

Windowsサービスの自動起動無効化

サービス自動起動無効化コマンド

sc config "Audiosrv" start= disabled
コマンド実行例

>sc config "Audiosrv" start= disabled
[SC] ChangeServiceConfig SUCCESS

Windowsサービスの自動起動(自動)

サービス自動起動コマンド

sc config "Audiosrv" start= auto
コマンド実行例

>sc config "Audiosrv" start= auto
[SC] ChangeServiceConfig SUCCESS

Windowsサービスの自動起動(手動)

サービス自動起動手動コマンド

sc config "Audiosrv" start= demand
コマンド実行例

>sc config "Audiosrv" start= demand
[SC] ChangeServiceConfig SUCCESS

サービス状態確認

サービス状態確認コマンド

sc query Audiosrv
コマンド実行例

>sc query Audiosrv
SERVICE_NAME: Audiosrv
        TYPE               : 10  WIN32_OWN_PROCESS
        STATE              : 4  RUNNING
                                (STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0

scコマンドのパラメタとして指定出来るサービス起動状態は以下から選択可能です。
一般的なのは「自動」「手動」「無効」といったところでしょうか。
サービス起動を遅らせたいものは「自動(遅延実行)」を使うこともあります。サービス依存関係が絡む場合など重宝します。

サービス起動状態
  1. auto 自動
  2. demand 手動
  3. disabled 無効
  4. delayed-auto 自動(遅延実行)

Windowsサービス一覧取得はPowerShellが便利。
windowsサービス、プロセス、適用パッチの一覧はPowerShellでパパッと出力しよう!

一般ユーザでのサービス管理は「runas」コマンドで

基本的にサービス管理コマンドは管理者用コマンドなので一般ユーザは利用できません。
runasコマンドを使えば一時的に管理者権限で実行可能です。Linuxでいう「sudo」コマンドみたいなもの。

管理者でscコマンド実行

>runas /user:administrator "sc config "Audiosrv" start= demand"
administrator のパスワードを入力してください:
sc config Audiosrv start= demand をユーザー "hoge\administrator" として開始しています.........

runasコマンド一時的に管理者になることで、一般ユーザでもサービスコマンドが利用可能になります。


一度に操作するWindows端末が多ければ多いほど、サービス管理もコマンドで出来ると非常に便利です。

ithinkit

ぜひ、覚えておきましょう!

以上、あいしんくいっとでした( ..)φメモメモ

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)