#navi(../)
* プロセス(タスク)の強制終了などを実現するtaskkillコマンド [#e05c676c]
taskkillコマンドを利用することにより、プロセスIDなどで終了および強制終了が可能になります。~
以下にtaskkillコマンドの使用例をいくつか紹介します。~
尚、本資料はWindows XP Professionalにて動作確認を行いました。~
Windows XP Home Editionでは使用できないそうです。

#contents
#htmlinsertpcsp(win-top.html,win-sp.html)

* 関連記事 [#uf76d02d]
-[[Windowsで定番UNIXコマンドを使う>開発ツール/Windowsで定番UNIXコマンドを使う]]
-[[Cygwinのインストールと環境構築>開発ツール/Cygwinのインストールと環境構築]]
-[[実行中のプロセス一覧を取得する・tasklist>コマンドプロンプト/実行中のプロセス一覧を取得する・tasklist]]

* taskkillのヘルプ [#i307774c]
以下のコマンドでtaskkillのヘルプを表示することができます。
 taskkill /?

 C:\>taskkill /?
 
 TASKKILL [/S システム [/U ユーザー名 [/P [パスワード]]]]
          { [/FI フィルタ] [/PID プロセスID | /IM イメージ名] } [/F]
 
 説明:
     このコマンド ライン ツールは、複数のプロセスを終了するために使われます。
     プロセス ID またはイメージ名を使って終了できます。
 
 パラメータ一覧:
     /S    システム            接続するリモート システムを指定します。
 
     /U    [ドメイン\]ユーザー コマンドが実行されるユーザー コンテキストを
                               指定します。
 
     /P    [パスワード]        提供されるユーザー コンテキストのパスワードを
                               指定します。省略された場合は、入力を要求します。
 
     /F                        プロセスの強制終了を指定します。
 
 
     /FI    フィルタ           フィルタによって指定された、与えられた条件に一致
                               するタスクを表示します。
 
     /PID   プロセスID         終了させるプロセスの PID を指定します。
 
 
     /IM    イメージ名         終了させるプロセスのイメージ名を指定します。
                               ワイルドカード '*' を使用してすべてのイメージ名を
                               指定できます。
 
     /T                        ツリー削除: 指定したプロセスとそのプロセスが開始
                               したすべてのプロセスを削除します。
 
     /?                        このヘルプまたは使用法を表示します。
 
 フィルタ:
     フィルタ名    有効な演算子              有効な値
     -----------   ---------------           --------------
     STATUS        eq, ne                    RUNNING | NOT RESPONDING
     IMAGENAME     eq, ne                    イメージ名
     PID           eq, ne, gt, lt, ge, le    PID 値
     SESSION       eq, ne, gt, lt, ge, le    セッション番号です。
     CPUTIME       eq, ne, gt, lt, ge, le    次の形式の CPU 時間
                                             hh:mm:ss
                                             hh - 時間
                                             mm - 分、ss - 秒
     MEMUSAGE      eq, ne, gt, lt, ge, le    メモリ使用量 (KB)
     USERNAME      eq, ne                    [ドメイン\]ユーザー の形式の
                                             ユーザー名です
     MODULES       eq, ne                    DLL 名
     SERVICES      eq, ne                    サービス名
     WINDOWTITLE   eq, ne                    ウィンドウのタイトル
 
 注意: /IM スイッチのワイルドカード '*' は、フィルタと使うときのみ有効に
       なります。
 
 注意: リモート プロセスの終了は、/F オプションの指定したかどうか
       にかかわりなく強制的に実行されます。
 
 例:
     TASKKILL /S system /F /IM notepad.exe /T
     TASKKILL /PID 1230 /PID 1241 /PID 1253 /T
     TASKKILL /F /IM notepad.exe /IM mspaint.exe
     TASKKILL /F /FI "PID ge 1000" /FI "WINDOWTITLE ne untitle*"
     TASKKILL /F /FI "USERNAME eq NT AUTHORITY\SYSTEM" /IM notepad.exe
     TASKKILL /S system /U domain\username /FI "USERNAME ne NT*" /IM *
     TASKKILL /S system /U username /P password /FI "IMAGENAME eq note*"

* 関連記事 [#ie6f5dfb]
-[[Windowsで定番UNIXコマンドを使う>開発ツール/Windowsで定番UNIXコマンドを使う]]
-[[Cygwinのインストールと環境構築>開発ツール/Cygwinのインストールと環境構築]]


* プロセスIDによるプロセスの終了 [#abdfa9da]
プロセスIDによるプロセス(タスク)の終了例を以下に記します。~
対象とするプロセスはメモ帳(notepad.ext)とします。

メモ帳(notepad.exe)を起動したあと、taskkillコマンドでnotepad.exeのプロセスIDを確認します。
 C:\>tasklist /fi "imagename eq notepad.exe"
 
 イメージ名                   PID セッション名     セッション# メモリ使用量
 ========================= ====== ================ ======== ============
 notepad.exe                  812 Console                 0      6,112 K

PIDの欄がプロセスIDになります。~
上記の出力では812になるで、taskkillコマンドで以下のようにすると、メモ帳(notepad.exe)が''終了''します。
 C:\>taskkill /pid 812
 成功: PID 812 のプロセスは強制終了されました。

コマンドプロンプトでは、上記のように強制終了と表示されましたが、メモ帳でなんらかの入力修正をし未保存だった場合は、ファイル保存を促すメッセージが表示されました。~
つまり、ファイル→終了またはウィンドウの×ボタンを押したのと同じ動作になります。

* プロセスIDによるプロセスの強制終了 [#e2810f34]
やりたいことは、上記の同様ですが終了ではなく''強制終了''の方法を以下に記します。~
プロセス(タスク)の強制終了の書式以下のようになります。
 taskkill /pid プロセス番号 /f
実際にメモ帳(notepad.exe)を起動し実行してみます。

 C:\>tasklist /fi "imagename eq notepad.exe"
 イメージ名                   PID セッション名     セッション# メモリ使用量
 ========================= ====== ================ ======== ============
 notepad.exe                 2184 Console                 0      6,232 K
 
 C:\>taskkill /pid 2184 /f
 成功: PID 2184 のプロセスは強制終了されました。
 
 C:\>tasklist /fi "imagename eq notepad.exe"
 情報: 指定された条件のタスクは実行されていません。

''/F''オプションにより強制終了となります。

* 子プロセスも終了させる [#za688a17]
''/T''オプションにより指定したプロセスの子プロセスも終了させることができます。~
プロセスIDを利用した構文例を以下に記します。
 taskkill /pid プロセス番号 /t

* プログラム名(イメージ名)で停止させる [#we209c89]
''/IM''オプションにより指定したプログラム名(イメージ名)で終了させることができます。~
以下、メモ帳を2つ起動し''/IM''オプションで停止させてみます。
 C:\>tasklist /fi "imagename eq notepad.exe"
 
 イメージ名                   PID セッション名     セッション# メモリ使用量
 ========================= ====== ================ ======== ============
 notepad.exe                 2292 Console                 0      6,280 K
 notepad.exe                 1752 Console                 0      6,216 K
 
 C:\>taskkill /im notepad.exe
 成功: プロセス "notepad.exe" (PID 2292) は強制終了されました。
 成功: プロセス "notepad.exe" (PID 1752) は強制終了されました。
 
 C:\>tasklist /fi "imagename eq notepad.exe"
 情報: 指定された条件のタスクは実行されていません。

構文としては、いかのようになります。
 taskkill /im イメージ名
強制終了したい場合は''/T''オプションを追加します。
 taskkill /im イメージ名 /t

* FIオプションによるフィルタリング [#z19e8eb5]
tasklistコマンド同様、FIオプションによりフィルタリングすることができます。~
ヘルプを表示したときに出力されるフィルタの部分です。~
ヘルプの抜粋です。
|フィルタ名|    有効な演算子              |有効な値|
|STATUS|        eq, ne                    |RUNNING または NOT RESPONDING|
|IMAGENAME|     eq, ne                    |イメージ名|
|PID |          eq, ne, gt, lt, ge, le    |PID 値|
|SESSION|       eq, ne, gt, lt, ge, le    |セッション番号|
|CPUTIME|       eq, ne, gt, lt, ge, le    |次の形式の CPU 時間&br;hh:mm:ss&br;hh - 時間&br;mm - 分、ss - 秒|
|MEMUSAGE      |eq, ne, gt, lt, ge, le    |メモリ使用量 (KB)|
|USERNAME      |eq, ne                    |[ドメイン\]ユーザー の形式のユーザー名|
|MODULES       |eq, ne                    |DLL 名|
|SERVICES      |eq, ne                    |サービス名|
|WINDOWTITLE   |eq, ne                    |ウィンドウのタイトル|

以上、taskkillの使用方法をいくつか紹介しました。
#br
#htmlinsertpcsp(win-btm.html,win-sp.html)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS