それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

名前を指定してプロセスを終了する。

WindowsでUNIXの pkill 的なことをしたいと思った

Windowsの動いているプログラムを終了したい。しかしタスクマネージャを起動するのは面倒だったりする。(頻繁に暴走するプログラムとか)

プログラムの名前を指定して終了する。

/**
* WMI をWSHから起動して引数に一致するなまえのプロセスを殺す。
* @argment program_name プログラム名(たいていは ***.exe)
*/
function TerminateProcess( program_name ){
  var strComputer = ".";
  var name = "winmgmts:\\\\" + strComputer + "\\root\\CIMV2";
  var oWmis = GetObject(name);
  var cols = oWmis.ExecQuery("SELECT * FROM Win32_Process WHERE Caption = '"+ program_name +"'")
  var list = new Enumerator(cols)
  for(;!list.atEnd(); list.moveNext()){
    var proc = list.item();
    //WScript.Echo( proc.Caption );
    //WScript.Echo( "\t" + proc.ProcessId);
    //WScript.Echo( "\t" + proc.terminate() );
    proc.terminate()
  }

}
if( WScript.Arguments.Length > 0 ){
  var name = WScript.Arguments.Item(0)
  TerminateProcess(name);
}
使い方例

WSHとして実行する。

  TerminateProcess("explorer.exe");
  TerminateProcess("notepad.exe");
  TerminateProcess("synergy.exe");

などとEXEを直接指定して、WSHを実行する。

コマンドから使うには

cscript Terminate.js "explorer.exe"

cscript コマンドから使うってもいい。