CrashHandlerを強制終了させる
皆さんお久しぶりです。
最近ネタがなく、更新できませんでした。
CrashHandlerが気持ち悪い
ウマ娘プレイ時やGoogle Driveを利用している際、まれに「CrashHandler」というプロセスが起動していることがあります。
そのまま放置していても害があるわけではありませんが、私は見知らぬプロセスが起動していると気持ち悪く感じます。
そこで今回は、この「CrashHandler」と名の付くプロセスを終了させるPowerShellプログラムを作ります。
ソースコード
# ポリシーの変更 Set-ExecutionPolicy RemoteSigned -Scope Process -Force # プロセス一覧を取得し、Foreachで処理させる Get-Process | ForEach-Object { # 上記で取得したプロセス名に拡張子がついていないので、拡張子をつける $process_name = $_.ProcessName + ".exe" # もし $process_nameに"crash"と一致する文字列がある場合 if($process_name -like "*Crash*"){ # $process_name(プロセス名)を強制終了させる taskkill /f /im $process_name } }
たったこれだけです。
やってる事も簡単ですし、私にしては珍しくコメントを記載しました。
これで、ウマ娘やGoogleDriveだけでなく、他のプログラムで発生した「CrashHandler」も強制終了させてくれます。
注意点としては、$process_name内に「crash」という文字列が含まれている場合、それを強制終了させるので
「CrashHandler」でない「crash」と名のつくプロセスまで終了させてしまいます。(例えばクラッシュバンディクーとか。PC版あるのか、はたまたプロセス名に「crash」が含まれるのかわかりませんが)
その場合はソースコードを下記のように変更すれば問題ありません。
# ポリシーの変更 Set-ExecutionPolicy RemoteSigned -Scope Process -Force # プロセス一覧を取得し、Foreachで処理させる Get-Process | ForEach-Object { # 上記で取得したプロセス名に拡張子がついていないので、拡張子をつける $process_name = $_.ProcessName + ".exe" # もし $process_nameに"crash"と一致する文字列がある場合 if($process_name -like "*Crash*"){ # 終了させたくないプロセスを下記で指定 if($process_name -like "任意のプロセス名"){ continue } # $process_name(プロセス名)を強制終了させる taskkill /f /im $process_name } }
これで終了させたくないプロセスは終了されません。
また、このプログラムを常駐し、1分毎にプロセスを取得、「CrashHandler」があれば終了させるようにしたい場合は
# ポリシーの変更 Set-ExecutionPolicy RemoteSigned -Scope Process -Force while(1){ Start-Sleep -s 60 # プロセス一覧を取得し、Foreachで処理させる Get-Process | ForEach-Object { # 上記で取得したプロセス名に拡張子がついていないので、拡張子をつける $process_name = $_.ProcessName + ".exe" # もし $process_nameに"crash"と一致する文字列がある場合 if($process_name -like "*Crash*"){ if($process_name -like "任意のプロセス名"){ continue } # $process_name(プロセス名)を強制終了させる taskkill /f /im $process_name } } }
で問題ありません。
今回の更新は短いですが、以上となります。
次回以降はオススメなBTOパソコンの構成など書きたいと思います。