如何通过名称搜索进程?

如何通过名称搜索进程?

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

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

我可以通过名称查找该进程、获取进程 ID 并将其终止吗?

答案1

如果你正在寻找诸如 SearchIndexer 之类的进程 - 使用 PowerShell 应该很容易做到

Get-Process将显示正在运行的进程列表。在本例中,我将其通过管道传输,Select -first 1因为您感兴趣的是列标题,而不是我电脑上的 100 多个进程的列表:在此处输入图片描述


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

Get-Process SearchIndexer如果存在,则只返回该进程

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

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

附注:您可以在任一端使用通配符,因此`索引“还将返回您想要的进程。


现在 - 要终止该进程 - 将其通过管道传输到 Stop-Process: 在此处输入图片描述 ..但是它不起作用!


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

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

添加-Force开关后提示就消失了! 在此处输入图片描述


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


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

答案2

Get-Process 的替代方法:

Get-WmiObject Win32_Process | select commandline | Select-String -Pattern "SearchIndexer"

相关内容