Je cherche un outil ou une méthode pour savoir quels paramètres de ligne de commande ont été passés à un programme, par exemple lorsqu'il a été exécuté par un autre programme (scénario lanceur-application).
84
Je cherche un outil ou une méthode pour savoir quels paramètres de ligne de commande ont été passés à un programme, par exemple lorsqu'il a été exécuté par un autre programme (scénario lanceur-application).
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:
Si vous voulez dump la sortie dans un fichier (cela facilite la lecture), utilisez le commutateur / OUTPUT:
la source
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.
la source
PowerShell à la rescousse.
Trouver:
Et tuez en bonus:
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 ...
la source
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.
la source
Lors de l'utilisation de CygWin , si je lance un processus Python , voici un exemple de ligne de commande:
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
:Donc, le seul truc que je connaisse jusqu'à maintenant, c'est de le trouver via le shell CygWin Bash
pgrep
: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.
la source
[Error opening process message]
aller à
run
ou aller àstart
et chercher:la source
/m
affiche les modules chargés (DLL, etc.) et/svc
présente les services hébergés dans chaque processus.