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); }
コマンドから使うには
cscript Terminate.js "explorer.exe"
cscript コマンドから使うってもいい。
他に使ってる例
結構昔から多用していて、このエントリでも何度か使ってる。
Synergyを自動接続。 - ブックマクロ開発に
Desktopディレクトリを変更して、見た目をスッキリさせるテクニック - ブックマクロ開発に