derwowusste
Goto Top

Powershellskript gesucht, das ausgibt, welcher User derzeit am meisten Daten empfängt

Moin.

Ich will folgenden Vorgang automatisieren:
resmon (resource monitor) öffnen - Network activity - ordnen nach receive (Bytes/s) - Prozess ID ablesen - im Taskmanager (Detail-Tab) den zugehörigen Usernamen zu dieser PID ablesen

Das übersteigt meine Powershellskriptingfähigkeiten. Kann mir jemand helfen?

Grüße
DWW

Content-Key: 319140

Url: https://administrator.de/contentid/319140

Printed on: April 25, 2024 at 12:04 o'clock

Mitglied: 131301
Solution 131301 Oct 26, 2016 updated at 12:14:07 (UTC)
Goto Top
Hi,
Folgendes Tool laden
http://www.nirsoft.net/utils/network_traffic_view.html
Dann folgenden Code nutzen:
$netview = "W:\NetworkTrafficView.exe"  
$datafile = "$env:TEMP\datatraffic.csv"  
del $datafile -Force -EA SilentlyContinue
.$netview /sort "~Data Speed" /scomma $datafile /CaptureTime 3  
while(!(Test-Path $datafile)){sleep 1}
while((get-item $datafile).Length -eq 0){sleep .2}
$data = Import-CSV $datafile -Delimiter ","  
$ppid = $data.'Process ID'  
if ($ppid){
    gwmi win32_process | ?{$_.ProcessId -eq $ppid} | select Name,@{n='Username';e={$_.GetOwner().User}},@{n='Speed';e={$data.'Data Speed'}}  
}
Pfad zum Programm anpassen.

Gruß
Member: DerWoWusste
DerWoWusste Oct 26, 2016 at 11:55:56 (UTC)
Goto Top
Hi.

Als nirsoft-Fan wäre ich damit hochzufrieden, jedoch produziert es aus der ISE heraus keinen Output. Es endet nach ein paar Sekunden ohne Fehler.
Mitglied: 131301
131301 Oct 26, 2016 updated at 12:03:59 (UTC)
Goto Top
Hier geht es problemlos. Vielleicht musst du bei dir noch ein zusätzliches sleep zwischen Zeile 6 und 7 einsetzen, falls die Daten vom Utility noch nicht komplett im File gelandet sind.
Member: rudeboy
rudeboy Oct 26, 2016 at 12:02:54 (UTC)
Goto Top
Hi,

hab es auch getestet und funktioniert.
Pfade passen?

Output kann in Excel importiert werden:
Ethernet Type,IP Protocol,Source Address,Destination Address,Source Port,Destination Port,Service Name,Status,Packets Count,Total Packets Size,Total Data Size,Data Speed,Maximum Data Speed,Average Packet Size,Maximum Packet Size,First Packet Time,Last Packet Time,Duration,Latency,Process ID,Process Filename,TCP Ack,TCP Push,TCP Reset,TCP Syn,TCP Fin,Source Country,Destination Country
IPv4,ICMP,google.com [xxx.xxx.xxx.xxx],xxx.xxx.xxx.xxx,,,,,13,780,520,,0.00 MB/Sec,60.0,60,26.10.2016 12:03:40,26.10.2016 12:03:49,00:00:09.180,,,,0,0,0,0,0,,
Member: DerWoWusste
DerWoWusste Oct 26, 2016 at 12:03:54 (UTC)
Goto Top
Correcto - nun kommt was. Ich habe ein
sleep 5
hinter Zeile 6 eingefügt.

Danke, ich werde damit testen und "backfeeden" um mal zu denglishen.
Member: DerWoWusste
DerWoWusste Oct 26, 2016 at 12:34:22 (UTC)
Goto Top
Darf ich fragen, wie Ihr captured? Raw Sockets oder winPCcap (Version?) oder...? Und auf welchem OS?
Während es auf Win10 mit Winpccap ging (so leidlich, manchmal), kam es auf Server 2012 R2 mittels raw Sockets nach wenigen Sekunden zum Bluescreen (Testmaschine face-smile ).
Mitglied: 131301
131301 Oct 26, 2016 updated at 13:39:42 (UTC)
Goto Top
Zitat von @DerWoWusste:
Darf ich fragen, wie Ihr captured? Raw Sockets oder winPCcap (Version?) oder...?
Nur pcap getestet
Und auf welchem OS?
Windows 10 1607 / WIN 7 jeweils mit pcap Treiber
Während es auf Win10 mit Winpccap ging (so leidlich, manchmal)
Ging hier ohne Probleme.
, kam es auf Server 2012 R2 mittels raw Sockets nach wenigen Sekunden zum Bluescreen (Testmaschine face-smile ).
Werde ich gleich mal testen.
-edit- mit RAW Sockets hier auf SRV2012R2 keine Probleme.
Member: DerWoWusste
DerWoWusste Oct 26, 2016 at 15:45:36 (UTC)
Goto Top
Tja, danke, aber ich werde auf dem Server vermutlich dieses Skript nicht einsetzen, wenn es beim Capturing Probleme machen kann.
Der Bluescreen hatte als aufgezeichneten Verursacher nsiproxy.sys (Microsoft). Dieser Server ist eine Kopie des produktiven Servers und soll als Host für remoteApps dienen, speziell für Browsing - und da wird ein Proxy verwendet - vielleicht würde es ja ohne ganz anders aussehen, aber so ist es nun einmal.

Wenn jemand also über Powershell ein natives Capturing ansprechen könnte, so wie es resmon macht, dann hätte ich weitaus mehr Vertrauen dazu.
Mit get-counter wird das sicherlich gehen, aber übersteigt leider mein Können.
Mitglied: 131301
131301 Oct 26, 2016 at 21:15:08 (UTC)
Goto Top
Mit get-counter wird das sicherlich gehen
Das geht damit nicht. Damit lässt sich das nur kummulativ für alle Prozesse Abfragen.
Resmon macht das meines Erachtens auch über Raw Sockets.
Member: DerWoWusste
DerWoWusste Oct 27, 2016 at 07:05:11 (UTC)
Goto Top
Okeydokey. Sieht wirklich so aus, auch meine Recherchen ergaben nichts anderes.
Dann ist das das Beste, was man kriegen kann. Vielen Dank!