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

Windowsサービスをtaskkillコマンドで強制停止する方法

本記事対象
Windowsサービスが停止出来なくてお困りの方

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

ithinkit

サービスが停止出来ない。なぜだろう?

サービス一覧からサービスを停止しようとしたのですが、「停止処理中」のステータスとなったままサービス停止出来ない。
停止処理中のままのサービス

しかも、困ったことにグレーアウトして何も操作出来なくなってしまった。。。
グレーアウトして操作出来ないサービス

サービスを強制停止したい場合は「taskkill」コマンドを使うことで実現出来ます。

taskkillコマンドを使ってWindowsサービスを強制停止する方法

停止したいサービスのPIDを調べる

taskkillコマンドを使うには、強制停止させたいサービスのプロセスIDを調べる必要があります。

タスクマネージャーでPID確認

強制停止したいサービスのPIDを調べる上で簡単なのはタスクマネージャーから確認する方法。
タスクマネージャーでPID確認
停止したいサービスのPIDは「19884」であることが分かりました。

tasklistでPID確認

tasklistコマンドでもPIDを確認出来ます。

tasklistコマンド
C:\WINDOWS\system32>tasklist

イメージ名                     PID セッション名     セッション# メモリ使用量
========================= ======== ================ =========== ============
System Idle Process              0 Services                   0          8 K
System                           4 Services                   0      1,584 K
Registry                        96 Services                   0     84,988 K
smss.exe                       436 Services                   0      1,212 K
csrss.exe                      644 Services                   0      5,600 K
wininit.exe                    736 Services                   0      6,680 K
csrss.exe                      744 Console                    1      5,712 K
winlogon.exe                   832 Console                    1     11,016 K
services.exe                   852 Services                   0     11,824 K
lsass.exe                      884 Services                   0     21,916 K
svchost.exe                   1020 Services                   0      4,356 K
svchost.exe                    484 Services                   0     28,484 K
fontdrvhost.exe                504 Services                   0      4,632 K
fontdrvhost.exe                648 Console                    1     13,620 K
svchost.exe                   1036 Services                   0     19,156 K
svchost.exe                   1088 Services                   0      9,236 K
dwm.exe                       1208 Console                    1     78,876 K
svchost.exe                   1232 Services                   0      8,420 K
svchost.exe                   1284 Services                   0     10,128 K
svchost.exe                   1288 Services                   0      6,860 K

taskkillコマンドでサービス強制停止

taskkillコマンドで停止したいサービスを強制停止します。監視者ユーザーでコマンドプロンプトから以下のコマンドを実行します。

taskkillコマンド実行
taskkill /pid <PID番号> /f
Windowsサービス強制停止
これでサービスを強制停止することが出来ました。

サービス一覧を見ると停止出来なかったサービスが停止していました。
サービス一覧でプロセス停止確認

Point
/fを付与しないと停止出来ない。普通にサービス停止出来ない状態だし、当たり前かw

taskkillコマンド
C:\Users\Administrator>taskkill /pid 19884
エラー: PID 19884 のプロセスを強制終了できませんでした。
理由: この処理は、/F オプションのみで強制終了できます。
/fオプションがないと強制停止に失敗する

サービス強制停止はサービスの依存関係を無視して停止してしまうので、普通にサービス停止出来ない時の切り札として覚えておくと良いと思います。
(安易にサービスを強制停止してしまうとその他のサービスに影響が出ることが多いので、通常は普通にサービス停止しましょう)

Windowsサービスの起動・停止はこちらの記事も。
Windowsサービスをコマンドで起動・停止、自動起動無効化・有効化する方法

以上、あいしんくいっとでした。

2 COMMENTS

アバター とむ

タスクはtasklistコマンドから確認できますのでtasklistとtaskkillをPowerShellでうまく拾えば(cmdでは厳しそう)、ワンライナーでサービスを落とせそうな気がします。

返信する
あいしんくいっと あいしんくいっと

貴重な情報ありがとうございます!
tasklistでもpid拾えますね。PowerShellであればおっしゃる通りワンライナーでサービス落とせそう。

返信する

コメントを残す

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

*

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