首页 > 解决方案 > 杀死一个运行超过一个小时的特定进程的实例

问题描述

我试图杀死一个运行了一个多小时的 ftpscrpt(IPSwitch 文件传输)进程。问题是我有一些例外。
我有这个过程运行多个文件传输,其中一些需要一个多小时,真的。
我试图用下面的命令解决这个问题,但不能限制它杀死特定的实例。

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

附加屏幕截图,可能会为您提供有关这些过程的更多详细信息。 我只想根据 .scp 文件的名称杀死第一个。如果您需要任何其他信息,请告诉我。在此处输入图像描述

标签: windowspowershell

解决方案


您无法使用Get-Processcmdlet 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}

推荐阅读