3408 Stimmen

Wie können Sie herausfinden, welcher Prozess auf einem TCP- oder UDP-Port unter Windows lauscht?

Wie können Sie herausfinden, welcher Prozess auf einem TCP- oder UDP-Port unter Windows lauscht?

9 Stimmen

Currports ist ein Tool, das auch beim Suchen und Filtern hilft nirsoft.net/utils/cports.html

3 Stimmen

Ich bin auf dieses Problem gestoßen, als ich versucht habe, Tomcat unter IntelliJ im Debug-Modus laufen zu lassen. Die beste Lösung für mich bestand darin, die Konfiguration des Debug-Transports (File->Settings->Build/exe/deploy->Debugger) von "socket" auf "shared memory" zu ändern.

129 Stimmen

netstat -aof | findstr :8080 (Ändern Sie 8080 für einen beliebigen Port)

6voto

Jpsy Punkte 18611

PowerShell verwenden... ...das wäre Ihr Freund (ersetzen Sie 8080 durch Ihre Portnummer):

 netstat -abno | Select-String -Context 0,1 -Pattern 8080

Beispielhafte Ausgabe

>   TCP    0.0.0.0:8080           0.0.0.0:0              LISTENING         2920
   [tnslsnr.exe]
>   TCP    [::]:8080              [::]:0                 LISTENING         2920
   [tnslsnr.exe]

In diesem Beispiel lauscht tnslsnr.exe (OracleXE-Datenbank) also an Port 8080.

Kurze Erklärung

  • Select-String wird verwendet, um die lange Ausgabe von netstat für die betreffenden Zeilen.
  • -Pattern prüft jede Zeile gegen einen regulären Ausdruck.
  • -Context 0,1 gibt für jede Musterübereinstimmung 0 Zeilen am Anfang und 1 Zeile am Ende aus.

3voto

Zoomzoom Punkte 992

Wenn Sie unter Windows nach Dingen suchen möchten, die den Port 1234 abhören oder mit ihm verbunden sind, führen Sie Folgendes an der Eingabeaufforderung cmd aus:

netstat -na | find "1234"

2voto

deshapriya debesh Punkte 111

Verwenden Sie das folgende Batch-Skript, das einen Prozessnamen als Argument annimmt und folgende Ergebnisse liefert netstat Ausgabe für den Prozess.

@echo off
set procName=%1
for /f "tokens=2 delims=," %%F in ('tasklist /nh /fi "imagename eq %1" /fo csv') do call :Foo %%~F
goto End

:Foo
set z=%1
echo netstat for : "%procName%" which had pid "%1"
echo ----------------------------------------------------------------------

netstat -ano |findstr %z%
goto :eof

:End

2voto

lczapski Punkte 3818

Basierend auf Antworten mit Infos y töten Für mich ist es sinnvoll, sie zu kombinieren in ein Befehl . Und Sie können dies von cmd aus ausführen, um Informationen über Prozesse zu erhalten, die auf einen bestimmten Port (z. B. 8080) warten:

for /f "tokens=3 delims=LISTENING" %i  in ('netstat -ano ^| findStr "8080" ^| findStr "["') do @tasklist /nh /fi "pid eq %i"

Oder wenn Sie es töten wollen:

for /f "tokens=3 delims=LISTENING" %i  in ('netstat -ano ^| findStr "8080" ^| findStr "["') do @Taskkill /F /IM %i

Sie können diese Befehle auch in eine Bat-Datei einfügen (sie werden etwas anders aussehen - ersetzen Sie %i für %%i ):

Datei portInfo.bat

for /f "tokens=3 delims=LISTENING" %%i  in (
    'netstat -ano ^| findStr "%1" ^| findStr "["'
) do @tasklist /nh /fi "pid eq %%i"

Datei portKill.bat

for /f "tokens=3 delims=LISTENING" %%i  in (
    'netstat -ano ^| findStr "%1" ^| findStr "["'
) do @Taskkill /F /IM %%i

Dann können Sie mit cmd dies tun:

portInfo.bat 8080

o

portKill.bat 8080

1 Stimmen

Dies könnte ein nützliches Skript sein. Ich habe es jedoch sowohl in CMD als auch in PowerShell 6 ausprobiert - ohne Erfolg. Vielleicht könnten Sie Ihre Antwort verbessern, indem Sie etwas mehr Details angeben.

0 Stimmen

Funktioniert der erste Teil? Ist es nur ein Problem mit "bat"? Es gibt einige Unterschiede bei der Übergabe von Variablen: (%%i )

0 Stimmen

@Manfred Ich habe dies auf 3 verschiedenen Windows 10 versucht. Zum Beispiel .\portInfo.bat 800 in PowerShell gibt es etwas wie dieses: C:\work>for /F "tokens=3 delims=LISTENING" %i in ('netstat -ano | findStr "800" | findStr "["') do (tasklist /fi "pid eq %i" ) C:\work>(tasklist /fi "pid eq 4" ) Image Name PID Session Name Session# Mem Usage ========================= ======== ================ =========== ============ System 4 Services 0 1,820 K

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X