Хотелось бы узнать, как настроить следующий код, чтобы убить определенный процесс (существует несколько процессов с одинаковыми именами) на основе использования памяти в его частном рабочем наборе.
Get-Process myPROCESSNAME -ea 0 | where { $_.PM -le 10MB } | foreach {
$Path = $_.Path
if ($Path) {
Stop-Process $_ -Force
}
}
Когда я открываю диспетчер задач, я ясно вижу, что процессы, которые я хочу автоматически уничтожить, используют около 4 МБ ОЗУ, а те, которые я не хочу уничтожать, используют более 20 МБ ОЗУ.
Я возился с консольным приложением C #, но я не смог получить то же самое чтение памяти, которое я вижу через диспетчер задач.Затем я понял, что диспетчер задач отображает память частного рабочего набора (по умолчанию), так что это то, что мне нужно, чтобы отфильтровать плохие процессы.
Может ли это быть достигнуто с помощью сценария пакетной обработки / PowerShell?