プロセスを停止させるスクリプトを作ってみました。
//*****************************************// // プロセス停止用スクリプト(WMI使用) // // // // ・引数 // // ProcessName - 削除したいプロセス名 // // (複数ある場合はスペースで区切る) // // // // [usage] // // WScript.exe ps.js CMD.EXE DELPHI.EXE // //*****************************************// // Shellオブジェクト // var WshShell = WScript.CreateObject("WScript.Shell") ; // 対象コンピュータ名(今は自分自身) // var strComputer = "."; // WMIサービスオブジェクト var objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\\\" + strComputer + "\\root\\cimv2"); var pr , i ; // 引数チェック // if ( WScript.Arguments.Length == 0 ) { WScript.Echo( "引数が足りません \n" + " ・引数\n" + " ProcessName - 削除したいプロセス名を指定してください\n" + " (複数ある場合はスペースで区切って複数指定してください)\n\n" + " [usage]\n" + " WScript.exe ps.js CMD.EXE DELPHI.EXE" ); WScript.Quit(-1); } try { for ( i = 0 ; i <= WScript.Arguments.Length - 1 ; i++ ) { while ( true ) { pr = new Enumerator( objWMIService.ExecQuery( "SELECT * FROM Win32_Process Where Name = '" + WScript.Arguments(i) + "'" ) ); if ( pr.atEnd() == false ) { for ( ; !pr.atEnd() ; pr.moveNext() ) { pr.item().Terminate(); } continue; } else { break; } } } } catch ( e ) { WshShell.LogEvent(1 , "処理失敗:\n[原因]\n" + e.Description ); }
unix系だとpsとgrepとawkとkill使えば出来そうなんですが、Windowsだと気軽に出来るのがなかったので作ってみました。WMIって便利。