Réponses:
Vous pouvez le faire en utilisant Process Explorer .
Passez simplement votre souris sur un processus pour voir les arguments de la ligne de commande utilisés pour le démarrer:
Sinon, vous pouvez ouvrir les propriétés du processus et inspecter la ligne de commande à cet endroit:
Vous pouvez également le faire sans Process Explorer, à l'aide du service WMI de Windows. Exécutez ce qui suit à partir de l'invite de commande:
WMIC path win32_process get Caption,Processid,Commandline
Si vous voulez dump la sortie dans un fichier (cela facilite la lecture), utilisez le commutateur / OUTPUT:
WMIC /OUTPUT:C:\Process.txt path win32_process get Caption,Processid,Commandline
On peut également y parvenir en utilisant le Gestionnaire des tâches .
Ouvrez le gestionnaire de tâches (par CTRL-SHIFT-ESC, CTRL-ALT-DELETE ou toute autre méthode).
Pour Windows 7 (et probablement Windows XP):
Pour Windows 8:
Une colonne de lignes de commande de sera ajoutée aux colonnes actuellement affichées.
PowerShell à la rescousse.
Trouver:
Get-WmiObject Win32_Process -Filter "name = 'perl.exe'" | where {$_.CommandLine -eq '"C:\strawberry\perl\bin\perl.exe" t/Server_PreFork.t'}
Et tuez en bonus:
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 }
Vous pouvez l'exécuter directement depuis powershell ou depuis un ps1 si votre système est configuré. Je détaille la configuration de script sans restriction sur i kill kombies avec powershell ainsi que d'autres astuces de powershell ...
Les réponses précédentes sont excellentes dans le cas où le processus est déjà en cours et ne se terminera pas de si tôt. Cependant, si vous avez besoin (comme je l'ai fait) de le faire peut-être avec des processus démarrant plusieurs fois et / ou se terminant rapidement, ou peut-être enregistrez des événements sur une période plus longue, il existe un moyen de le faire à l'aide de Process Monitor .
Fondamentalement, il enregistre divers événements dans le système. Dans ce cas, nous pouvons simplement filtrer l'événement "Process Start" et le nom du processus à surveiller, comme indiqué ci-dessous:
Ensuite, laissez simplement le moniteur de processus en marche et faites ce que vous faites pour que le processus que vous souhaitez journaliser soit en cours. Vous pouvez voir dans la colonne "Détail" ou la colonne "Ligne de commande" (dépend de la façon dont vous les configurez) les arguments de la ligne de commande. Par exemple:
Bien entendu, vous pouvez extraire beaucoup plus d'informations connexes telles que le répertoire de travail, les variables d'environnement transmises au processus, etc. Il est également facile d'exporter les résultats dans un fichier.
Lors de l'utilisation de CygWin , si je lance un processus Python , voici un exemple de ligne de commande:
c:\CygWin\bin\python2.7.exe /usr/local/bin/sudoserver.py
Mais Process Explorer ne voit que l'exe principal:
(notez le "chemin: [message d'ouverture du processus d'erreur]" (voir EDIT-1)). Même résultat pour tasklist
:
C:\>tasklist | find "python" /i
python2.7.exe 5740 Console 1 15.312 KB
Donc, le seul truc que je connaisse jusqu'à maintenant, c'est de le trouver via le shell CygWin Bash pgrep
:
Luis@Kenobi /cygdrive/c/
$ pgrep -f -l server.py
5740 /usr/bin/python2.7 /usr/local/bin/sudoserver.py
Il est utile de le savoir, tant que CygWin cohabite sans problème dans Windows et que vous pouvez l’utiliser pour exécuter de nombreux programmes POSIX et Python.
EDIT: Sous Windows, vous ne semblez pas avoir besoin des privilèges d’administrateur pour la liste de tâches. Dans CygWin, vous en aurez besoin pour pouvoir visualiser le processus d'un administrateur (ce qui me semble plus logique: la ligne de commande complète peut contenir des paramètres tels que les mots de passe ), nous devons donc exécuter CygWin Bash en mode administrateur élevé .
EDIT-1: Ce problème ne se produira pas si vous exécutez Process Explorer en tant qu'administrateur. Merci de nous avoir signalé, @Pacerier.
[Error opening process message]