In einer Datenbank kann ich eine Liste aller derzeit ausgeführten Prozesse und den SQL-Befehl abrufen, der sie ausgelöst hat.
Ähnliches möchte ich an einer Windows-Box tun.
Ich kann die Liste der Prozesse abrufen, aber nicht die Befehlszeile, die sie ausgelöst hat.
Meine Frage ist: Angesichts einer PID unter Windows - wie finde ich die Befehlszeilenanweisung, die sie ausgeführt hat?
Annahmen:
- Windows 7 und gleichwertige Server
windows
windows-command-prompt
pid
Falkenauge
quelle
quelle
| FL
, am Ende des Befehls etwas hinzuzufügen . Das erweitert die gesamte Befehlszeile für mich. Könnte auch mit spielen wollen| Select -ExpandProperty CommandLine
Sie können das WMI-Subsystem mit WMIC.EXE verwenden, um an diese Informationen zu gelangen. Angenommen eine PID von 600:
Sie können auch nach Namen oder anderen Merkmalen des Prozesses suchen. Verwenden Sie diesen Befehl, um alle Attribute aufzulisten:
quelle
process
Alias etwas kürzen, anstattpath Win32_Process
; zBwmic.exe process get
Die anderen Antworten sind sicherlich gute Optionen, die Ihnen in einem automatisierten System aufgrund ihrer Befehlszeilennatur gute Dienste leisten (und ich sehe anhand des Tags, dass Sie genau das wollten). Natürlich möchten einige Leute diese Art von Informationen mit einer grafischen Benutzeroberfläche erkunden. Hier ist also eine Alternative in dieser Richtung.
Process Explorer ist ein von Microsoft verwaltetes Sysinternals-Tool. Es kann die Befehlszeile des Prozesses im Eigenschaftendialogfeld des Prozesses sowie das übergeordnete Element anzeigen, das den Prozess gestartet hat, obwohl der Name dieses Prozesses möglicherweise nicht mehr verfügbar ist. Hier ist das Dialogfeld mit den Prozesseigenschaften:
Wenn Sie eine detailliertere Übersicht darüber wünschen, wann und unter welchen Bedingungen ein Prozess gestartet wurde, können Sie sich an ein anderes Sysinternals-Tool mit dem Namen Process Monitor wenden. Hier können Sie nach "Prozess gestartet" -Ereignissen filtern, Informationen über die Umgebung erhalten, in der der Prozess gestartet wurde, und nachsehen, welche anderen Ereignisse zu dieser Zeit aufgetreten sind. Es ist ein ziemlich mächtiges Programm. Hier ist das Dialogfeld mit den Ereigniseigenschaften:
quelle
Command Line
Spalte hinzugefügt wurde, wenn Sie mit der Maus über diese Spalte fahren.Ergänzen Sie die hilfreiche PowerShell-Antwort von Ryan Ries durch eine kürzere Alternative über den
-Filter
Parameter , derGet-CimInstance
anstelle des Cmdlets " deprecated-since-v3" auchGet-WmiObject
verwendet wird .Mit dem
-Filter
Parameter können Sie im Wesentlichen dieWHERE
Klausel einer WQL- Anweisung übergeben, anstatt eine vollständige Abfrageanweisung über zu übergeben-Query
.quelle