windows - 杀死一个运行超过一个小时的特定进程的实例
问题描述
我试图杀死一个运行了一个多小时的 ftpscrpt(IPSwitch 文件传输)进程。问题是我有一些例外。
我有这个过程运行多个文件传输,其中一些需要一个多小时,真的。
我试图用下面的命令解决这个问题,但不能限制它杀死特定的实例。
Powershell
Get-Process ftpscrpt | Where StartTime -lt (Get-Date).AddMinutes(-60) | Stop-Process -Force
附加屏幕截图,可能会为您提供有关这些过程的更多详细信息。
我只想根据 .scp 文件的名称杀死第一个。如果您需要任何其他信息,请告诉我。
解决方案
您无法使用Get-Process
cmdlet 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}
推荐阅读
- python-3.x - Plot for Function not looping
- powershell - 测量对象返回一个 INT
- r - 如何在 R 编程中将成对相似度写入文件
- c++ - 进行程序检查当前日期是否=预期日期
- sql - 比较同一列和同一表中的行
- assembly - 为什么 NASM 程序集 64 位中的 printf 返回 -nan?
- java - 从列表中向 RandomAcessFile 添加和读取整数。除了最后一个似乎都是“0”
- python - 将 DICOM 图像保存为无损 JPEG
- android - Kotlin Synthetic:在具有动态膨胀的多个布局中引用具有相同 ID 的视图
- r - geom_rect 的行为不符合预期