如何根据进程描述使用循环从计算机内存中获取进程名称?
例子:
我的程序名称在内存中是“dev.exe”,其描述是“帮助 php 开发人员的工具”
即使用户更改了名称,是否有办法通过使用流程描述来找到我的流程名称?
我们可以通过 autoit 或者 cmd 或者 wmic 来执行此操作吗?
答案1
我发现此链接试图解决相同的问题。基于现有答案,可以向现有脚本添加一行简单代码:
Get-Process | where {$_.Description -like '*note*'} | select Path, Description, ProcessName
示例输出:
Path Description ProcessName
---- ----------- -----------
C:\Windows\system32\notepad.exe Notepad notepad
C:\Program Files\Microsoft Office\root\Office16\ONENOTE.EXE Microsoft OneNote ONENOTE
C:\Program Files\Microsoft Office\root\Office16\ONENOTEM.EXE Send to OneNote Tool ONENOTEM
答案2
如何根据“文件描述”属性值找到正在运行的进程名称?
改进的解决方案(感谢@BenN 在聊天中参与讨论):
使用以下 PowerShell 脚本 (Get-ProcessName.ps1)。
$_match=$Args[0].ToLowerInvariant()
Get-Process | where {$_.Description -ne $null -and $_.Description.ToLowerInvariant().Contains($_match)} | select Path, Description, ProcessName
笔记:
- 传递给脚本的第一个参数用于在“文件描述”属性值中执行不区分大小写的搜索。
- 如果“notepad.exe”和“notepad++.exe”都在运行,则传递“notepad”将同时匹配它们。
示例输出:
PS F:\test> .\Get-ProcessName notepad
Path Description ProcessName
---- ----------- -----------
C:\Windows\system32\notepad.exe Notepad notepad
E:\LiberKey\Apps\Notepad++\App\Notepad++\notepad++.exe Notepad++ : a free (GNU) source code editor notepad++
E:\LiberKey\Apps\Notepad++\App\Notepad++\notepad++.exe Notepad++ : a free (GNU) source code editor notepad++
PS F:\test>
原始解决方案:
使用以下 Powershell 脚本(Get-ProcessName.ps1)。
$_name=$Args[0]
$_match="*"+$Args[0]+"*"
Get-Process | ForEach {
if ($_.Path) {
$_filedescription=(Get-Item $_.Path).VersionInfo.FileDescription
if ($_filedescription -like $_match) {
Write-Output "File Description: '$_filedescription', Process Path: '$($_.Path)', Process Name: '$($_.ProcessName)'"
}
}
}
笔记:
- 传递给脚本的第一个参数用于在“文件描述”属性值内执行“通配符”不区分大小写的搜索。
- 如果你通过,
string
它将使用搜索*string*
并匹配string
“文件描述”属性中的任何位置 - 如果“notepad.exe”和“notepad++.exe”都在运行,则传递“notepad”将同时匹配它们。
- 脚本输出“文件描述”、“进程路径”和“进程名称”。
示例输出:
PS F:\test> .\Get-ProcessName notepad
File Description: 'Notepad', Process Path: 'C:\Windows\system32\notepad.exe', Process Name: 'notepad'
File Description: 'Notepad++ : a free (GNU) source code editor', Process Path: 'E:\LiberKey\Apps\Notepad++\App\Notepad++\notepad++.exe', Process Name: 'notepad++'
File Description: 'Notepad++ : a free (GNU) source code editor', Process Path: 'E:\LiberKey\Apps\Notepad++\App\Notepad++\notepad++.exe', Process Name: 'notepad++'
PS F:\test>
笔记:
- “notepad++.exe”在运行便携版时在内存中有两个进程。