この記事には広告を含む場合があります。
記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
ども。あいしんくいっと(@ithinkitnet)です。
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コマンドのパラメタとして指定出来るサービス起動状態は以下から選択可能です。
一般的なのは「自動」「手動」「無効」といったところでしょうか。
サービス起動を遅らせたいものは「自動(遅延実行)」を使うこともあります。サービス依存関係が絡む場合など重宝します。
- auto 自動
- demand 手動
- disabled 無効
- delayed-auto 自動(遅延実行)
Windowsサービス一覧取得はPowerShellが便利。
windowsサービス、プロセス、適用パッチの一覧はPowerShellでパパッと出力しよう!
一般ユーザでのサービス管理は「runas」コマンドで
基本的にサービス管理コマンドは管理者用コマンドなので一般ユーザは利用できません。
runasコマンドを使えば一時的に管理者権限で実行可能です。Linuxでいう「sudo」コマンドみたいなもの。
>runas /user:administrator "sc config "Audiosrv" start= demand"
administrator のパスワードを入力してください:
sc config Audiosrv start= demand をユーザー "hoge\administrator" として開始しています.........
runasコマンド一時的に管理者になることで、一般ユーザでもサービスコマンドが利用可能になります。
一度に操作するWindows端末が多ければ多いほど、サービス管理もコマンドで出来ると非常に便利です。
ithinkit
以上、あいしんくいっとでした( ..)φメモメモ