Pro výpis aktivních TCP připojení spolu s informacemi o procesu, který je vlastníkem každého připojení, můžete použít následující příkaz v PowerShellu:
Get-NetTCPConnection -OwningProcess (Get-Process).Id -ErrorAction SilentlyContinue |
Select-Object LocalAddress, LocalPort, RemoteAddress, RemotePort, State, @{Name='ProcessName';Expression={(Get-Process -Id $_.OwningProcess).Name}} -ErrorAction SilentlyContinue |
Format-Table -AutoSize
Tento příkaz využívá cmdlet Get-NetTCPConnection k získání informací o všech aktivních TCP připojeních, včetně ID procesu, který je vlastníkem každého připojení. Poté pomocí Select-Object přidává nový sloupec “ProcessName”, který získává název procesu na základě jeho ID. Výstup je formátován do tabulky pro lepší čitelnost.
nebo pouze pro DNS:
Get-NetTCPConnection -OwningProcess (Get-Process -Name dns).Id |
Select-Object LocalAddress, LocalPort, RemoteAddress, RemotePort, State, @{Name='ProcessName';Expression={(Get-Process -Id $_.OwningProcess).Name}} |
Format-Table -AutoSize
Tento příkaz filtruje pouze připojení, která jsou vlastněna procesem s názvem “dns”. Můžete změnit “dns” na název jiného procesu, pokud chcete zobrazit připojení pro jiný proces.
Příklad filtrování: (IP adresy jiné než 0.0.0.0, ::1, 127.0.0.1)
Get-NetTCPConnection | Where-Object { ($_.RemoteAddress -notlike "0.0.0.0") -and ($_.RemoteAddress -notlike "::*") -and ($_.RemoteAddress -notlike "127.0.0.1")} |
Select-Object LocalAddress, LocalPort, RemoteAddress, RemotePort, State, @{Name='ProcessName';Expression={$("["+$_.OwningProcess+"] "+(Get-Process -Id $_.OwningProcess).Name)}} |
Format-Table -AutoSize
Tento příkaz filtruje připojení, která mají vzdálenou adresu jinou než localhost nebo 0.0.0.0.