Відповіді:
Це можна зробити за допомогою Провідника процесів .
Просто наведіть курсор миші на процес, щоб побачити аргументи командного рядка, які використовуються для його запуску:
Крім того, ви можете відкрити властивості процесу та перевірити командний рядок прямо там:
Ви також можете це зробити без Process Explorer, використовуючи WMI-сервіс Windows. Виконайте наступне з командного рядка:
WMIC path win32_process get Caption,Processid,Commandline
Якщо ви хочете скинути висновок у файл (полегшує його читання), використовуйте перемикач / OUTPUT:
WMIC /OUTPUT:C:\Process.txt path win32_process get Caption,Processid,Commandline
Цього можна досягти і за допомогою диспетчера завдань .
Відкрити менеджер завдань (CTRL-SHIFT-ESC, CTRL-ALT-DELETE або будь-яким іншим методом).
Для Windows 7 (і, можливо, для Windows XP):
Для Windows 8:
Стовпчик командних рядків буде доданий до поточно відображених стовпців.
PowerShell на допомогу.
Знайти:
Get-WmiObject Win32_Process -Filter "name = 'perl.exe'" | where {$_.CommandLine -eq '"C:\strawberry\perl\bin\perl.exe" t/Server_PreFork.t'}
І вбийте як бонус:
Get-WmiObject Win32_Process -Filter "name = 'perl.exe'" | where {$_.CommandLine -eq '"C:\strawberry\perl\bin\perl.exe" t/Server_PreFork.t'} | ForEach-Object { Invoke-WmiMethod -Path $_.__Path –Name Terminate }
Ви можете запустити його з Powerhell безпосередньо або з ps1, якщо у вас встановлена система. Я докладно описую необмежену настройку сценарію на вбивстві зомбі за допомогою силової оболонки , а також про інші хитрощі при владі ...
Попередні відповіді чудові в тому випадку, якщо процес вже запущений і не скоро закінчиться. Однак якщо вам потрібно (як я це зробив), можливо, при запуску процесів багаторазово і / або швидко припиняйте, або, можливо, виникнення випадків журналу протягом більш тривалого періоду часу, є спосіб для цього за допомогою Process Monitor .
В основному він реєструє різні події в системі, у цьому випадку ми можемо просто відфільтрувати подію "Процес запуску" та назву процесу, який ми хочемо відстежувати, як показано нижче:
Тоді просто продовжуйте працювати монітор процесу і робіть все, що ви робите, щоб отримати процес, який ви хочете виконати. Ви можете бачити або у стовпці "Детальніше", або у стовпці "Командний рядок" (залежить від того, як ви їх налаштуєте) аргументи командного рядка. Наприклад:
Звичайно, таким чином ви можете отримати набагато більше пов'язаної інформації, наприклад, що таке робочий каталог, які змінні середовища передані в процесі тощо. Також легко експортувати результати у файл.
Якщо я використовую CygWin , якщо я запускаю процес Python , це приклад командного рядка:
c:\CygWin\bin\python2.7.exe /usr/local/bin/sudoserver.py
Але Process Explorer бачить лише основний exe:
(зверніть увагу на "шлях: [Помилка відкриття повідомлення про процес]" (див. EDIT-1)). Ті ж результати для tasklist
:
C:\>tasklist | find "python" /i
python2.7.exe 5740 Console 1 15.312 KB
Отже, єдиний трюк, який я знаю до цих пір, - це знайти його через оболонку CygWin Bash pgrep
:
Luis@Kenobi /cygdrive/c/
$ pgrep -f -l server.py
5740 /usr/bin/python2.7 /usr/local/bin/sudoserver.py
Це корисно знати, якщо CygWin співіснує без проблем у Windows, і ви можете використовувати його для запуску багатьох програм POSIX та Python.
РЕДАКТУВАННЯ. У Windows вам, здається, не потрібні права доступу адміністратора для списку завдань. У CygWin вам знадобляться, щоб мати можливість переглядати процес адміністратора (що мені здається більш логічним: повний командний рядок може мати певні параметри, такі як паролі всередині), тому ми повинні запускати CygWin Bash у підвищеному режимі адміністратора .
EDIT-1: Ця проблема не виникне, якщо ви запустите Process Explorer як адміністратор. Дякую за вказівку, @Pacerier.
[Error opening process message]