
124909
28.04.2016
Powershell: TCP und UDP Verbindungen loggen und duplicate bzw. ähnliche Einträge entfernen
Hallo Freunde,
ich möchte von einem PC die TCP/UDP verbindungen loggen und diese in einer .txt oder .csv speichern.
Das Skript soll öfter laufen und möglichst viele Verbindungen zu registrieren (Ich denke da an einen einfachen Task)
Nun stelle ich mir die Frage, wie man realisieren kann dass das Skript quasi die ganze Zeit "listened" und neue Verbindungen ins Log schreibt, wenn das Überhaupt möglich ist. Außerdem soll es halt die Verbindungen nur einmalig loggen und nicht zig tausend Proxy-Verbindungen auflisten.
Ich schwierigkeiten bei der Umsezung des Skripts, da ich nicht weiß, wie ich doppelte Einträge direkt verwerfen kann.
Das ganze habe ich mir bisher mit
bearbeitet.
Habt Ihr Vorschläge/Anregungen ?
ich möchte von einem PC die TCP/UDP verbindungen loggen und diese in einer .txt oder .csv speichern.
Das Skript soll öfter laufen und möglichst viele Verbindungen zu registrieren (Ich denke da an einen einfachen Task)
Nun stelle ich mir die Frage, wie man realisieren kann dass das Skript quasi die ganze Zeit "listened" und neue Verbindungen ins Log schreibt, wenn das Überhaupt möglich ist. Außerdem soll es halt die Verbindungen nur einmalig loggen und nicht zig tausend Proxy-Verbindungen auflisten.
Ich schwierigkeiten bei der Umsezung des Skripts, da ich nicht weiß, wie ich doppelte Einträge direkt verwerfen kann.
Das ganze habe ich mir bisher mit
netstat -ano
bearbeitet.
Habt Ihr Vorschläge/Anregungen ?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 303137
Url: https://administrator.de/forum/powershell-tcp-und-udp-verbindungen-loggen-und-duplicate-bzw-aehnliche-eintraege-entfernen-303137.html
Ausgedruckt am: 01.05.2025 um 02:05 Uhr
4 Kommentare
Neuester Kommentar

Moin.
Das ist eher eine Aufgabe für einen Syslog-Server, an den der Router die Verbindungsdaten pusht...
Liefert es dir frei haus, jetzt kannst du ja von mir aus mit Compare-Object die Duplicate aus der vorherigen Abfrage ausfiltern und die neuen mit Datum in ein Objekt schreiben und wegspeichern.
Aber das ist definitiv keine Aufgabe für einen Client.
Gruß jodel32
Das ist eher eine Aufgabe für einen Syslog-Server, an den der Router die Verbindungsdaten pusht...
Das ganze habe ich mir bisher mit
bearbeitet.
An die Daten kommst du wesentlich komfortabler...> netstat -ano
bearbeitet.
[System.Net.NetworkInformation.IPGlobalProperties]::GetIPGlobalProperties().GetActiveTcpConnections()
Aber das ist definitiv keine Aufgabe für einen Client.
Gruß jodel32

Ich hätts jetzt so gemacht:
Jetzt hier in der Demo ohne das wegschreiben in eine Datei, sondern nur zur Demo als Anzeige:
Jetzt hier in der Demo ohne das wegschreiben in eine Datei, sondern nur zur Demo als Anzeige:
# Funktion holt die aktuellen Verbindungsdaten ohne Localhost-Connections
function Get-RemoteConnections(){
return [System.Net.NetworkInformation.IPGlobalProperties]::GetIPGlobalProperties().GetActiveTcpConnections() | ?{$_.LocalEndPoint -notlike '127.0.0.1*' -and $_.RemoteEndPoint -notlike '127.0.0.1*'} | select LocalEndpoint,RemoteEndpoint
}
cls
# Aktuelle Verbindungen holen
$data = Get-RemoteConnections
while($true){
# Aktuelle Verbindungen holen
$current = Get-RemoteConnections
# Daten vergleichen und nur die Differenzen aufzeichnen (heißt neue Verbindungen)
$diff = compare $data $current -Property LocalEndPoint,RemoteEndPoint -PassThru | ?{$_.SideIndicator -eq '=>'}
# Neue Verbindungen zum Datenobjekt hinzufügen
$data += $diff
# Daten nur zur Info mal ausgeben
$data | ft LocalEndpoint,RemoteEndpoint
# Pause
sleep 2
cls
}