Убить экземпляр определенного процесса, выполняющегося более часа - PullRequest
0 голосов
/ 01 апреля 2020

Я пытаюсь уничтожить процесс ftpscrpt (передача файлов IPSwitch), который выполняется более часа. Подвох в том, что у меня есть некоторые исключения.
У меня этот процесс запущен для нескольких передач файлов, на некоторые из которых действительно требуется более часа.
Я пытался решить эту проблему с помощью приведенной ниже команды, но не смог ограничить ее уничтожением для конкретного c экземпляра.

Powershell
Get-Process ftpscrpt | Where StartTime -lt (Get-Date).AddMinutes(-60) | Stop-Process -Force

Прикрепление скриншота, который может дать вам более подробную информацию об этих процессах. enter image description here

Я хочу убить только первого, основываясь на имени файла .scp. Дайте мне знать, если вам нужна дополнительная информация.

1 Ответ

1 голос
/ 01 апреля 2020

Вы не можете получить командную строку процесса с помощью командлета Get-Process afaik. Но вы можете получить его, запросив WMI:

Get-CimInstance -ClassName Win32_Process -Filter "Name = 'ftpscrpt.exe'" | Where-Object {(($_.CreationDate -lt (Get-Date).AddMinutes(-60)) -and ($_.CommandLine -like "*youNameIt.scp*"))} | ForEach-Object {Stop-Process -Id $_.ProcessId}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...