Ich suche nach einem Tool oder einer Methode, um herauszufinden, welche Befehlszeilenparameter an ein Programm übergeben wurden, zum Beispiel, als es von einem anderen Programm ausgeführt wurde (Launcher-Anwendungsszenario).
84
Ich suche nach einem Tool oder einer Methode, um herauszufinden, welche Befehlszeilenparameter an ein Programm übergeben wurden, zum Beispiel, als es von einem anderen Programm ausgeführt wurde (Launcher-Anwendungsszenario).
Sie können dies mit dem Process Explorer tun .
Bewegen Sie den Mauszeiger einfach über einen Prozess, um die zum Starten verwendeten Befehlszeilenargumente anzuzeigen:
Alternativ können Sie die Eigenschaften des Prozesses öffnen und die Befehlszeile genau dort überprüfen:
Sie können dies auch ohne Process Explorer mit dem WMI-Dienst von Windows tun. Führen Sie an der Eingabeaufforderung Folgendes aus:
Wenn Sie die Ausgabe in eine Datei sichern möchten (um das Lesen zu erleichtern), verwenden Sie die Option / OUTPUT:
quelle
Dies kann auch mit dem Task-Manager erreicht werden .
Öffnen Sie den Task-Manager (mit STRG-UMSCHALT-ESC, STRG-ALT-ENTF oder einer anderen Methode).
Für Windows 7 (und wahrscheinlich Windows XP):
Für Windows 8:
Eine Spalte mit Befehlszeilen von wird zu den aktuell angezeigten Spalten hinzugefügt.
quelle
PowerShell zur Rettung.
Finden:
Und töte als Bonus:
Sie können es von Powershell direkt oder von einem PS1 ausführen, wenn Sie Ihr System-Setup haben. Ich beschreibe die uneingeschränkte Skript-Einrichtung, wie ich Zombies mit Powershell und anderen Powershell-Tricks töte ...
quelle
Vorherige Antworten sind für den Fall hilfreich, dass der Prozess bereits ausgeführt wird und nicht bald abgebrochen wird. Wenn Sie dies jedoch tun müssen (wie ich), beispielsweise, wenn Prozesse mehrmals gestartet und / oder schnell beendet werden oder wenn Ereignisse über einen längeren Zeitraum protokolliert werden, gibt es eine Möglichkeit, dies mithilfe des Prozessmonitors zu tun .
Grundsätzlich werden verschiedene Ereignisse im System protokolliert. In diesem Fall können Sie einfach das Ereignis "Prozessstart" und den Namen des zu überwachenden Prozesses filtern, wie unten gezeigt:
Lassen Sie dann einfach den Prozessmonitor laufen und tun Sie alles, um den Prozess, den Sie protokollieren möchten, zum Laufen zu bringen. Sie können entweder in der Spalte "Detail" oder in der Spalte "Befehlszeile" (abhängig davon, wie Sie diese konfigurieren) die Befehlszeilenargumente sehen. Zum Beispiel:
Natürlich können Sie auf diese Weise viel mehr verwandte Informationen wie das Arbeitsverzeichnis, die übergebenen Umgebungsvariablen usw. extrahieren. Außerdem ist es einfach, die Ergebnisse in eine Datei zu exportieren.
quelle
Wenn ich mit CygWin einen Python- Prozess starte , ist dies ein Beispiel für eine Befehlszeile:
Im Process Explorer wird jedoch nur die Haupt-Exe angezeigt:
(Beachten Sie den "Pfad: [Fehler beim Öffnen der Prozessmeldung]" (siehe EDIT-1)). Gleiche Ergebnisse für
tasklist
:Der einzige Trick, den ich bisher kenne, ist, ihn über die CygWin Bash-Shell zu finden
pgrep
:Es ist nützlich, dies zu wissen, solange CygWin unter Windows problemlos funktioniert und Sie damit viele POSIX- und Python-Programme ausführen können.
BEARBEITEN: In Windows scheinen Sie keine Administratorrechte für die Jobliste zu benötigen. In CygWin müssen Sie sie ein Administrator Prozess in der Lage sein zu sehen (was mir mehr logisch erscheint: die vollständige Befehlszeile haben könnten einige Parameter wie Passwörter innen), so müssen wir die laufen CygWin Bash in erhöhten Administrator - Modus .
EDIT-1: Dieses Problem tritt nicht auf, wenn Sie Process Explorer als Administrator ausführen. Vielen Dank für den Hinweis, @Pacerier.
quelle
[Error opening process message]
gehe zu
run
oder gehe zustart
und suche:quelle
/m
Zeigt geladene Module (DLLs usw.) und/svc
in jedem Prozess gehostete Dienste an.