Powershell Stop-Process Многие экземпляры - PullRequest
0 голосов
/ 20 марта 2020

У меня есть программа удаленного доступа, которая не очищает себя после закрытия. В диспетчере задач я часто нахожу от 5 до 10 экземпляров работающей программы. Например:

  • XYZ.exe
  • XYZ.exe
  • XYZ.exe
  • XYZ.exe
  • XYZ. exe

У меня есть простой скрипт Powershell, чтобы остановить эти процессы, но проблема в том, что я хочу закрыть n-1 из n процессов.

> Stop-Process -Force -Name XYZ*

убивает n из n процессов.

Есть ли способ убить все процессы программы, оставив открытым новейшую версию (например, XYZ.exe # 5)?

Ответы [ 2 ]

2 голосов
/ 20 марта 2020

Используйте Get-Process, чтобы заранее обнаружить все подходящие процессы, затем просто удалите один из них, прежде чем убить остальные:

Get-Process -Name XYZ* |Select -Skip 1 |Stop-Process -Force
0 голосов
/ 20 марта 2020

Попробуйте это: он закрывает все неотвечающие процессы

Get-Process -name XYZ.exe| Where-Object -FilterScript {$_.Responding -eq $false} | Stop-Process
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...