Zeigt den EXE-Dateipfad der ausgeführten Prozesse in der Befehlszeile von Windows an


26

Wie kann ich den vollständigen EXE-Dateipfad jedes ausgeführten Prozesses über die Befehlszeile in Windows anzeigen?

Ich habe versucht , Aufgabenliste und pslist , aber sie zeigen nicht den vollständigen Pfad:

tasklist /FI "ImageName eq Spring.Tests.exe" /v /fo List

Gibt:

Image Name:   Spring.Tests.exe
PID:          3956
Session Name: Console
Session#:     1
Mem Usage:    9,772 K
Status:       Running
User Name:    W81ENTX64DELPHI\Developer
CPU Time:     0:00:01
Window Title: Spring

und

pslist Spring.Tests -x

gibt:

Name                Pid      VM      WS    Priv Priv Pk   Faults   NonP Page
Spring.Tests       3956   83472    9772    5320    5692     5037     11  157
 Tid Pri    Cswtch            State     User Time   Kernel Time   Elapsed Time
1488  10     11018     Wait:UserReq  0:00:00.906   0:00:01.046    0:53:06.977

Da Spring.Tests.exekann man in verschiedenen Verzeichnissen nachlesen, welches ausgeführt wurde.


1
Oh, das ist eine klassische Frage. Außerdem hat der Task-Manager eine Spalte. Für die Kommandozeile können WMIC und Powershell. Es ist sogar hier oder auf Stackoverflow .. muss überall sein ... Eigentlich kann ich es hier nicht vollständig beantwortet sehen, ich habe eine Notiz davon .. Ich werde überprüfen
Barlop

@barlop Es ist lustig: Während Sie Ihren Kommentar geschrieben haben, habe ich bereits mit PowerShell experimentiert, da ich auch andere PowerShell-Experimente durchgeführt habe (:
Jeroen Wiert Pluimers,

Keine Notwendigkeit für ein ':('. Ihre Methode ist sehr ordentlich und Sie fanden es schnell
Barlop

1
Ich muss autistisch sein! Vielleicht solltest du eine Nase in den Smiley
stecken

1
@kayleeFrye_onDeck Ich habe bessere Erfolge bei der Ausführung der Lösungen unter einem erhöhten UAC-Token, wünschte mir jedoch wirklich, es gäbe eine Befehlszeilenversion von technet.microsoft.com/en-us/sysinternals/processexplorer.aspx , die eine zuverlässige Abfrage unter diesem Token ermöglicht.
Jeroen Wiert Pluimers

Antworten:


26

Zusätzlich zu der von Ihnen angegebenen Zeile gibt es hier eine Reihe von Zeilen, die (abgesehen von der zweiten) zum Auflisten von Pfaden verwendet werden können:

PS C:\> gwmi win32_process | select Handle, CommandLine | format-list
PS C:\> gwmi win32_process | select name
PS C:\> gwmi win32_process | select CommandLine
C:\>wmic process get ProcessID,ExecutablePath
C:\>wmic process where "name='mysqld.exe'" get ProcessID, ExecutablePath
C:\>wmic process where "name='mysqld.exe'" get ProcessID, ExecutablePath /FORMAT:LIST

Dies hat den Vorteil, schnell zu sein (wmic), weil Powershell so verdammt langsam ist !!!
Mr.Robot

Achten Sie sehr auf die verwendete Formatierung. Wenn Sie beispielsweise die einfachen Anführungszeichen nicht in das nameFeld einfügen, wird dies unterbrochen.
KayleeFrye_onDeck

@kayleeFrye_onDeck Nun, angesichts der Länge des Befehls würde ich erwarten, dass jemand es trotzdem einfach kopiert / einfügt und einfach den Namen des Prozesses ändert. Hoffentlich sollten sie nicht den Fehler machen, einzelne Anführungszeichen um den Prozessnamen herum zu fehlen, da sie die vorhandenen Anführungszeichen belassen können.
Barlop

9

PowerShell zur Rettung.

Zuerst habe ich Get-Member benutzt, um zu sehen, was Get-Process zurückgeben könnte:

PowerShell Get-Process ^| Get-Member

Dann habe ich den Pfad von Get-Process gefiltert, um herauszufinden, welche Spring.TestsProzesse ausgeführt wurden:

PowerShell Get-Process Spring.Tests ^| Format-List Path

ergebend:

Path : C:\Users\Developer\Versioned\Spring4D\Tests\Bin\DelphiXE\Spring.Tests.exe

Das ist genau die Information, die ich wollte.


1
Es gibt auch WMIC, aber Powershell ist moderner und flexibler
Barlop

Ist Pathdas Gleiche wie die Kommandozeile? Was ist mit den Argumenten für die ausführbare Datei? @barlop WMI verfügt weiterhin über eine Reihe von Funktionen, die in PowerShell ansonsten nicht verfügbar sind.
jpmc26

@ jpmc26 Ich brauchte diese nicht, aber ich denke, Sie können sie über erhalten, StartInfoanstatt Pathauf stackoverflow.com/questions/1012409/…
Jeroen Wiert Pluimers

@ jpmc26 die Dateipfade , dass die wmic Befehlsausgänge, die gleichen wie die Dateipfade sind , dass die Powershell ........ Befehl gibt Ausgänge zB offene Fenster Rechner und versuchen Sie es für calc.exe pastebin.com/raw/TK8xSPPL
Barlop

Was macht die Karotte im ersten Befehl?
Jared Beach

6

Pipe PowerShell's Get-Process in Select-Object.

Beispielbefehl für Notepad ++:

Get-Process notepad++ | Select-Object Path

Ausgabe:

Path
----
D:\Notepad++\notepad++.exe

Um die Ausgabe direkt zu erhalten (Get-Process notepad++).Path(vielleicht um sie in einer Variablen zu speichern).
Nawfal
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.