Windows Batch File (WMI) - Taskkill-Prozess basierend auf der Speichernutzung

2047
Darwyn

Gibt es eine Möglichkeit, mithilfe von WMIC, bat-Dateien oder Powershell eine Task mit einem bestimmten Task-Namen zu beenden, wenn die Menge an virtuellem Speicher, die der Prozess verwendet, eine bestimmte Grenze überschreitet?

Insbesondere möchte ich jede Instanz des Prozesses iexplore.exe beenden, wenn dessen Arbeitsgruppierung (RAM-Nutzung) oder die Belegung des virtuellen Speichers über 1 GB liegt.

Ich kann eine Aufgabe mit taskkill mit diesem Befehl beenden: taskkill.exe /F /IM iexplore.exeund ich kann eine Liste von Prozessen und deren RAM-Nutzung mit diesem Befehl filtern wmic process where "name='iexplore.exe' and workingsetsize>=1000000000" get name, workingsetsize, processid.

0

1 Antwort auf die Frage

1
Darwyn

Hier ist der Befehl, den ich schließlich verwendet habe:

PowerShell -Command "get-process | ? {$_.WorkingSet64 -gt 10000000000 -AND ($_.name -like 'java' -OR $_.name -like 'iexplore')} | foreach "

Mit Powershell werden alle Prozesse mit dem Namen "java" oder "iexplore" abgebrochen, wenn sie mehr als 1 GB RAM benötigen.