So erhalten Sie alle Prozesse unter einer Sitzung eines bestimmten Prozesses, der einen Port in Windows cmd verwendet

So erhalten Sie alle Prozesse unter einer Sitzung eines bestimmten Prozesses, der einen Port in Windows cmd verwendet

Ich möchte alle Prozesse auflisten und beenden, die zu einer Sitzung eines bestimmten Prozesses gehören, der einen Port verwendet. Dies sollte über einen Windows-Batch-Befehl geschehen, der eine Portnummer als Eingabe akzeptiert.

Beispiel: Angenommen, ein Prozess PA lauscht derzeit auf Port 8081. PA läuft unter der Sitzung S1. Es gibt die Prozesse PB und PC, die zur selben Sitzung wie PA gehören. PB und PC laufen auf unterschiedlichen Ports (es ist nicht wichtig, auf welchen Ports sie laufen).

Die Windows-Befehls-/Batchdatei sollte 8081 als Eingabe verwenden und die Prozesse PA, PB und PC beenden.

Ist das möglich? Ich wäre für ein wenig Hilfe dankbar, da ich mich mit Batch-Befehlen/Skripten nicht so gut auskenne.

Mein Fehlversuch:

(for /F "tokens=2" %%i in (for /f "tokens=5" %a in ('netstat -aon ^| findstr 8081') do tasklist /NH /FI "PID eq %a") do taskkill /NH /FI "SESSIONNAME eq %%i")

Antwort1

In PowerShell ist das eigentlich ganz einfach:

# Get the process of the listening NetTCPConnection and the session ID of the process
$SessionId = (Get-Process -Id (Get-NetTCPConnection -State Listen -LocalPort 8081).OwningProcess).SessionId
# Get all processes from that session and stop them
Get-Process | Where-Object { $_.SessionId -eq $SessionId } | 
    Stop-Process -Force -Confirm:$false

Antwort2

Wenn Sie nach Batch-Skript suchen

for /f "tokens=5" %%a in ('netstat -aon ^| findstr 8081 ^| findstr "LISTEN"') do (
    for /f "tokens=3" %%b in ('tasklist /NH /FI "PID eq %%a"') do (
        for /f "tokens=2" %%c in ('tasklist /NH /FI "SESSIONNAME eq %%b"') do (
            taskkill /F /PID %%c
        )
    )
)

Antwort3

Daraus kann man eine Funktion machen:

function kpn($port){ps|?{$_.sessionID-eq(get-NetTcpConnection -sta listen -loc $port)}|kill -fo -confirm:$false}

Und nenne es wie

kpn(8081)

verwandte Informationen