Netstat automatisiert auswerten?
Hallo,
ich stehe vielleicht ein bisschen auf dem Schlauch ...
ich benötige eine Liste der Prozesse eines Servers, die an Ports gebunden sind. Ziel ist eine Erfassung der zu berücksichtigen Firewallregeln und das entdecken unnützer offener Ports.
das habe ich jetzt an zwei Server wie folgt erledigt:
netstat -anob > c:\tmp\netstat.txt
die Liste habe ich dann manuell umformatiert, bis sie in eine Excel-Tabelle passte
dort habe ich eine Pivot-Tabelle erzeugt und habe eine nette Liste aller von netstat ausgegeben Prozesse.
Das ist etwas nervig. Außerdem werden nur die Prozesse erfasst, die gerade laufen. über einen längeren Zeitraum wird das ein wenig aufwändig.
Gibt es da ein Tool das so eine Liste schneller und effizienter erzeugt? TCPView kann ich zwar über einen längeren Zeitraum laufen lassen, die erzeugte Liste wird aber auch sehr lang.
Grüße
lcer
ich stehe vielleicht ein bisschen auf dem Schlauch ...
ich benötige eine Liste der Prozesse eines Servers, die an Ports gebunden sind. Ziel ist eine Erfassung der zu berücksichtigen Firewallregeln und das entdecken unnützer offener Ports.
das habe ich jetzt an zwei Server wie folgt erledigt:
netstat -anob > c:\tmp\netstat.txt
die Liste habe ich dann manuell umformatiert, bis sie in eine Excel-Tabelle passte
dort habe ich eine Pivot-Tabelle erzeugt und habe eine nette Liste aller von netstat ausgegeben Prozesse.
Das ist etwas nervig. Außerdem werden nur die Prozesse erfasst, die gerade laufen. über einen längeren Zeitraum wird das ein wenig aufwändig.
Gibt es da ein Tool das so eine Liste schneller und effizienter erzeugt? TCPView kann ich zwar über einen längeren Zeitraum laufen lassen, die erzeugte Liste wird aber auch sehr lang.
Grüße
lcer
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 351543
Url: https://administrator.de/forum/netstat-automatisiert-auswerten-351543.html
Ausgedruckt am: 11.04.2025 um 06:04 Uhr
5 Kommentare
Neuester Kommentar

Gibt's schon im NET-Framework als Funktion und damit als Objekt handlebar:
Powershell
Siehe auch Powershell Prozess überwachen und evtl. neu starten
Powershell
[System.Net.NetworkInformation.IPGlobalProperties]::GetIPGlobalProperties().GetActiveTcpListeners()
Siehe auch Powershell Prozess überwachen und evtl. neu starten
Servus Icer,
kein Problem.
Für modernere OS (ab Windows Server 2012 R2 und Windows 8.1) geht dies mit Powershell mit den dafür vorgesehenen CMDLets so:
oder für ältere OS mit Auswertung von Netstat:
Alles inkl. Umwandlung der PID in Prozessname. Da die Daten Objekte sind lassen sie sich nach Bedarf filtern auswerten oder wegschreiben, wie man es will. Du hast die Wahl.
Viel Spaß
Grüße Uwe
kein Problem.
Für modernere OS (ab Windows Server 2012 R2 und Windows 8.1) geht dies mit Powershell mit den dafür vorgesehenen CMDLets so:
# TCP Connections auflisten
Get-NetTCPConnection | ft LocalAddress,LocalPort,RemoteAddress,RemotePort,State,OwningProcess,@{n='ProcessName';e={(Get-Process -id $_.OwningProcess).Name}}
# UDP Endpoints auflisten
Get-NetUDPEndpoint | ft LocalAddress,LocalPort,OwningProcess,@{n='ProcessName';e={(Get-Process -id $_.OwningProcess).Name}}
function ConvertFrom-CP850([string[]]$string){
$cp850 = [System.Text.Encoding]::GetEncoding(850)
$string | %{$cp850.GetString([System.Console]::OutputEncoding.GetBytes($_))}
}
ConvertFrom-CP850 (netstat -ano) | ?{$_ -match '^\s*(TCP|UDP)'} | %{
$line = $_ -split '\s+'
[int]$pid = @{$true=$line[4];$false=$line[5]}[($line[4] -match '^\d')]
$procName = (Get-Process -id $pid).Name
[pscustomobject] @{'Protocol' = $line[1];'Source' = $line[2];'Destination' = $line[3];'Status' = @{$true="";$false=$line[4]}[($line[4] -match '^\d')] ;'PID' = $pid; "Process" = $procName}
} | ft
Viel Spaß
Grüße Uwe

Na dann auf gelöst setzen.