Como faço para encontrar um nome de processo em execução dado o valor da propriedade "Descrição do arquivo"?
Solução aprimorada (graças a @BenN seguindo a discussão no chat):
Use o seguinte script do PowerShell (Get-ProcessName.ps1).
$_match=$Args[0].ToLowerInvariant()
Get-Process | where {$_.Description -ne $null -and $_.Description.ToLowerInvariant().Contains($_match)} | select Path, Description, ProcessName
Notas:
- O primeiro parâmetro passado para o script é usado para realizar uma pesquisa sem distinção entre maiúsculas e minúsculas no valor da propriedade "Descrição do arquivo".
- A aprovação do "bloco de notas" corresponderá ao "notepad.exe" e ao "notepad ++. exe", se ambos estiverem em execução.
Exemplo de saída:
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>
Solução original :
Use o seguinte script 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)'"
}
}
}
Notas:
- O primeiro parâmetro passado para o script é usado para executar uma pesquisa insensível a maiúsculas e minúsculas "curinga" dentro do valor da propriedade "Descrição do arquivo".
- Se você transmitir
string
, ele pesquisará usando*string*
e corresponderá astring
em qualquer lugar dentro da propriedade "Descrição do arquivo" - A aprovação do "bloco de notas" corresponderá ao "notepad.exe" e ao "notepad ++. exe", se ambos estiverem em execução.
- O script gera a "Descrição do arquivo", "Caminho do processo" e "Nome do processo".
Exemplo de saída:
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>
Notas:
- "notepad ++. exe" tem dois processos na memória ao executar a versão portátil.