2016年9月21日水曜日

タスクマネージャの代わりになるコマンド tasklist,taskkill,Get-Process,Process-Stop

タスクマネージャの代わりに打つことができるtasklisttaskkillというコマンドがありましたので紹介します。これを使うとコマンドプロンプト上で現在実行されているタスクを表示したりタスクを終了したりすることができます。

使い方は下の通りです。

・現在実行されているすべてのタスクを表示する
C:\>tasklist

イメージ名                     PID セッション名     セッション# メモリ使用量
========================= ======== ================ =========== ============
System Idle Process              0 Services                   0         24 K
System                           4 Services                   0        248 K
smss.exe                       504 Services                   0         48 K
                 ・
                 ・
                 ・
tasklist.exe                  5456 Console                    1      5,088 K

PowerShellの場合 >Get-Process


・特定のタスクを表示する。

C:\>tasklist /fi "imagename eq notepad.exe"

イメージ名                     PID セッション名     セッション# メモリ使用量
========================= ======== ================ =========== ============
notepad.exe                   4612 Console                    1     14,900 K

ここではイメージ名がnotepad.exe(メモ帳)のタスクを表示しています。

PowerShellの場合 >Get-Process -name chrome

・タスクをPIDから終了する。

C:\>taskkill /pid 4612
成功: PID 4612 のプロセスに強制終了のシグナルを送信しました。

PIDが4612のプロセスが終了し、ここではメモ帳が終了します。

PowerShellの場合 >Process-Stop -id <プロセスID>

・タスクをイメージ名から終了する。
C:\>taskkill /im notepad.exe
成功: プロセス "notepad.exe" (PID 4196) に強制終了のシグナルを送信しました。

PowerShellの場合 >Process-Stop -id chrome

ここではメモ帳が終了します。

このようにタスクマネージャで行うことが簡単にコマンドプロンプトでできるのでかなり使えるのではないかと思います。ただtasklistにはイメージ名でソートするような機能がなかったのでそれが残念ですね。

またこの機能はWindows XPのHome Editionだと使えないようですがWindows VistaのHome Premiumだと使えるみたいです。さすがVistaですね。

(2016/9/21 追加)
時代はPowerShellに変わったのでPowerShellのコマンドも追加してみました。