У меня проблема в среде Citrix, в которой устаревшее приложение VB публикуется на сервере. Проблема, которую я вижу, заключается в том, что иногда он дает сбой, но процесс приложения продолжает работать. Основная проблема здесь в том, что мошеннический процесс начинает поглощать много ресурсов процессора.
Могу ли я что-нибудь сделать для автоматического отслеживания / очистки этих процессов?
foreach($_ in Get-Process)
{
if($_.ProcessName -eq "notepad" -and $_.Responding -eq $false)
{
Stop-Process $_
}
}
Замените блокнот названием вашего плохо написанного процесса.
Сохраните этот однострочный файл в файл * .ps1.
Планировщик заданий должен запускать его каждые несколько минут.
Я не могу точно предсказать, как ведет себя ваш мошеннический процесс. Возможно, свойство Responding процессов все еще может быть истинным, даже если главное окно исчезло, хотя сам процесс все еще выполняется. Так что вам, возможно, придется поиграть с этим. Возможно, свойство MainWindowTitle изменилось, когда процесс "упал", но все еще выполняется. Дело в том, что вам нужно выяснить, какое поведение проявляет эта штука, когда она срабатывает, и как ее обнаружить.