Wenn ihr herausfinden möchtet, welcher Prozess auf einem bestimmten TCP/UDP Port lauscht dann könnt ihr unter Windows dafür auch PowerShell verwenden. Ich finde das angenehmer, als die Ausgabe von netstat auszuwerten.
Ich demonstriere die nachfolgenden Möglichkeiten auch in diesem Video hier auf YouTube.
Für TCP: Get-NetTCPConnection
Für TCP-Verbindungen gibt es das Cmdlet Get-NetTCPConnection. Es liefert allerdings nur die ID des laufenden Prozesses zurück (Eigenschaft OwningProcess), aber die können wir mit Get-Process auflösen. Manuell würde das so gehen:
| |
PowerShell Cmdlets können aber geschickt kombiniert werden, um daraus einen One-Liner zu machen. Da gibt es natürlich verschiedene Möglichkeiten den Code zu verkleinern oder individuell zu gestalten. Hier mal ein paar Beispiele, die alle im Grunde das gleiche machen, aber auf verschiedenen Wegen.
| |
Die Rückgabe ist dann ein [System.Diagnostics.Process] Objekt mit verschiedenen Eigenschaften. Auf den ersten Blick ist ProcessName am interessantesten.
Es gibt aber auch noch die Möglichkeit mehr Infos zum Programm auf der Festplatte herauszufinden, wenn Get-Process mit dem Parameter -FileVersionInfo ausgeführt wird. Dadurch wird übrigens stattdessen ein [System.Diagnostics.FileVersionInfo] Objekt zurückgegeben.
| |
Für UDP: Get-NetUDPEndpoint
Für UDP wird ein anderes Cmdlet benötigt: Get-NetUDPEndpoint
In der Standardausgabe wird bei mir die Eigenschaft OwningProcess nicht angezeigt, aber sie existiert dennoch.
| |
Die manuelle Abfrage in zwei Schritten spare ich uns mal, stattdessen wieder ein paar Möglichkeiten für One-Liner:
| |
Wie auch bei den Beispielen für TCP, liefert Get-Process ein [System.Diagnostics.Process] Objekt für den Prozess zurück.
Auch hier kann natürlich Get-Process um den -FileVersionInfo Parameter ergänzt werden, um unter anderem den vollständigen Pfad auf der Festplatte herauszufinden.
| |


