名前と所有者でプロセスを強制終了しますか?


12

車輪の再発明を検討する前に、プロセス名プロセス所有者の両方でフィルタリングしてプロセスを強制終了できるアプリケーション/ユーティリティを知っている人はいますか?あるいは、これはpowershellを介して行うことができますか?(私のpower-fuは残念ながら欠けています)。

との両方pskillを見てきましたtaskkill。が、pskillプロセス名で終了することができ、それはプロセスの所有者によって、さらにフィルターに私を許可していません。またwmic process、wmic()を介してWMIを調べましたが、WMIインターフェイスはプロセスの所有者を返さないため(少なくとも私の知る限り)、これも使用できません。

理由
Windowsで開発のチャンクを行います。これには、コンポーネントサービス(COM +)の処理が含まれます。COM +には、汎用(つまり、私が開発したもの)要素とシステムプロセスの両方に使用されるdllhost.exeというホストプロセスがあります。それらを実行する所有者によって区別できます。したがって、たとえば、私が所有するすべてのdllhost.exeプロセスを強制終了しますが、SYSTEMが所有するプロセスは無視します。

これにより、定期的にタスクマネージャーにアクセスし、それぞれを識別して手動で強制終了することができます:-)

回答:


5

PowerShellでは、次のことを行います。

gwmi -query "select * from win32_process where name='PROCESSNAME.exe'" | %{if($_.GetOwner().User -eq 'USERNAME'){$_.terminate()}}

ああ-素晴らしい歓声。それはうまくいく:-)
クリスJ

24

あなたは一生懸命探していませんでした。

taskkill /f /fi "imagename eq foo.exe" /fi "username eq Chris"

を使用して、ロードされたモジュールでフィルタリングすることもできます/fi "modules eq libfoo.dll"


2
PSメソッドよりもはるかに簡単:)
EBGreen

あなたは正しいです-私は十分に一生懸命に見ていない。それは私にとって悪いことです。
クリスJ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.