пятница, 25 сентября 2015 г.

Powershell. Завершение процесса у пользователя который использует больше ОЗУ

Дано: сервер терминалов.

Задача: убивать процессы firefox, если он использует больше заданного значения RAM. Пользователю вывести сообщение.

Решение:
создаем скрипт kill-firefox.ps1

get-wmiobject win32_process -filter "name='firefox.exe'" | foreach-object {if ( $_.WorkingSetSize -gt 600000000 ) { msg $_.getowner().User "Здесь сообщение"; kill -id $_.ProcessId -force }}

где
firefox.exe - имя процесса
600000000 - объем RAM, больше которого нужно убивать.

На сервере добавляем этот скрипт в Планировщик заданий, запуск например раз в 5 минут.
Также можно добавить проверку количества свободного RAM на сервере, чтоб скрипт отрабатывал только при нехватке RAM на сервере.

Комментариев нет: