プロセスの説明に応じてループを使用して、コンピュータのメモリからプロセス名を取得するにはどうすればよいですか?
例:
私のプログラム名はメモリ内の「dev.exe」で、その説明は「php開発者を支援するためのツール」です。
ユーザーが名前を変更した場合でも、プロセスの説明を使用してプロセス名を見つける方法はありますか?
これをautoitまたはcmdまたはwmicで実行できますか?
私はこのリンクが同じ問題を解決しようとしているのを見つけました。既存の回答を基に、既存のスクリプトに追加できる簡単な行:
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
改善されたソリューション(チャットでの議論に続く@BenNに感謝します):
次のPowerShellスクリプト(Get-ProcessName.ps1)を使用します。
$_match=$Args[0].ToLowerInvariant()
Get-Process | where {$_.Description -ne $null -and $_.Description.ToLowerInvariant().Contains($_match)} | select Path, Description, ProcessName
ノート:
出力例:
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
と一致します。出力例:
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>
ノート: