如何按名称搜索进程?

San*_*mar 15 windows powershell process windows-8.1

SearchIndexer.exe 阻止我的设备(实际上是我的外部硬盘驱动器)被停止。

我试图通过查找任务管理器来关闭此应用程序,但在“进程”选项卡上找不到它。

我可以按名称查找此进程,获取进程 ID 并终止它吗?

Faz*_*r87 16

如果您正在寻找诸如 SearchIndexer 之类的进程 - 使用 PowerShell 应该很简单

Get-Process将向您显示正在运行的进程列表。在这种情况下,我已将其通过管道传送到,Select -first 1因为您对列标题感兴趣,而不是我 PC 上 100 多个进程的列表:在此处输入图片说明


接下来 - 现在您知道如何获取流程,您需要将其缩小到特定流程。下面,我展示了 4 种方法来做到这一点: 在此处输入图片说明 Get-Process Search* 将返回所有以搜索开头的进程

Get-Process SearchIndexer 如果存在,将只返回那个进程

Get-Process | Where {$_.Name -eq "SearchIndexer"} 将查找所有进程,然后只选择名为 SearchIndexer 的进程

Get-Process | Where {$_.ProcessName -Like "SearchIn*"} 将获取所有进程并缩小到以“SearchIn”开头的进程。

附带说明 - 您可以在任一端使用通配符,因此 ` rchInde " 也将返回您想要的进程。


现在 - 要终止进程 - 将其通过管道传输到 Stop-Process: 在此处输入图片说明 ..但它没有用!


要停止它 - 与某些进程一样 - 您需要以管理员身份运行 PowerShell: 在此处输入图片说明 ..但您仍然会收到提示!

...忽略底部的错误,我们刚刚证明该过程不再存在

添加-Force开关,提示消失! 在此处输入图片说明


但是当我们一遍又一遍地尝试时,我们不喜欢错误: 在此处输入图片说明 ...所以我们需要稍微不同地处理它。与其明确停止那个进程,不如抓取所有进程,将其过滤为我们想要的进程(如果有),然后杀死它们(如果它们存在): 在此处输入图片说明


最后 - 将其添加为计划任务操作(如果需要),因为 Windows 喜欢重新启动某些服务/进程,并且您已准备就绪。