2

Как я могу получить имя процесса из памяти компьютера, используя цикл в зависимости от описания процесса?

Пример:

Моя программа называется «dev.exe» в памяти, а ее описание - "инструмент помощи разработчикам php".

Есть ли способ найти имя моего процесса, используя описание процесса, даже если пользователь изменил имя?

Можем ли мы сделать это autoit или cmd или wmic?

2 ответа2

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», если они оба работают.

Пример вывода:

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», если они оба работают.
  • Сценарий выводит "Описание файла", "Путь процесса" и "Имя процесса".

Пример вывода:

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» имеет два процесса в памяти при запуске переносной версии.
0

Я нашел эту ссылку, пытаясь решить ту же проблему. Построение существующего ответа - простая строка, которую можно добавить к существующему сценарию:

 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .