この記事には広告を含む場合があります。
記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
ども。あいしんくいっと(@ithinkitnet)です。
ithinkit
サービス一覧からサービスを停止しようとしたのですが、「停止処理中」のステータスとなったままサービス停止出来ない。
しかも、困ったことにグレーアウトして何も操作出来なくなってしまった。。。
サービスを強制停止したい場合は「taskkill」コマンドを使うことで実現出来ます。
クリック可能な目次
taskkillコマンドを使ってWindowsサービスを強制停止する方法
停止したいサービスのPIDを調べる
taskkillコマンドを使うには、強制停止させたいサービスのプロセスIDを調べる必要があります。
タスクマネージャーでPID確認
強制停止したいサービスのPIDを調べる上で簡単なのはタスクマネージャーから確認する方法。
停止したいサービスのPIDは「19884」であることが分かりました。
tasklistでPID確認
tasklistコマンドでもPIDを確認出来ます。
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 /pid <PID番号> /f
これでサービスを強制停止することが出来ました。
サービス一覧を見ると停止出来なかったサービスが停止していました。
/fを付与しないと停止出来ない。普通にサービス停止出来ない状態だし、当たり前かw
C:\Users\Administrator>taskkill /pid 19884
エラー: PID 19884 のプロセスを強制終了できませんでした。
理由: この処理は、/F オプションのみで強制終了できます。
サービス強制停止はサービスの依存関係を無視して停止してしまうので、普通にサービス停止出来ない時の切り札として覚えておくと良いと思います。
(安易にサービスを強制停止してしまうとその他のサービスに影響が出ることが多いので、通常は普通にサービス停止しましょう)
Windowsサービスの起動・停止はこちらの記事も。
Windowsサービスをコマンドで起動・停止、自動起動無効化・有効化する方法
以上、あいしんくいっとでした。
タスクはtasklistコマンドから確認できますのでtasklistとtaskkillをPowerShellでうまく拾えば(cmdでは厳しそう)、ワンライナーでサービスを落とせそうな気がします。
貴重な情報ありがとうございます!
tasklistでもpid拾えますね。PowerShellであればおっしゃる通りワンライナーでサービス落とせそう。