stefanmuc
Goto Top

In der Powershell Datenrate einer Netzwerkschnittstelle berechnen

Hallo,
ich will in der Powershell die ausgehende Datenrate einer Netzwerkschnittstelle (ETH2) berechnen.
Die Netzwerkkarte kann ich so abfragen:
Get-NetAdapter | Where-Object { $_.Name -eq "ETH2" }

Die absolut abgehend übertragenen Bytes werden als 4. Spalte hier dargestellt:
Get-NetAdapterStatistics ETH2

10s warten und nochmal abfragen
anschließend die Differenz in Mbit/s umrechnen

Gibt es eine einfachere Herangehensweise?

Content-ID: 669433

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

Ausgedruckt am: 21.11.2024 um 15:11 Uhr

MysticFoxDE
Lösung MysticFoxDE 12.11.2024 um 21:42:58 Uhr
Goto Top
Moin @StefanMUC,

Gibt es eine einfachere Herangehensweise?

$NIC = "Ethernet"   
$NICSendBytesA = Get-NetAdapterStatistics -Name $NIC | Select-Object -ExpandProperty "SentBytes"  
$NICReceivedBytesA = Get-NetAdapterStatistics -Name $NIC | Select-Object -ExpandProperty "ReceivedBytes"  
Start-Sleep -Seconds 10
$NICSendBytesB = Get-NetAdapterStatistics -Name $NIC | Select-Object -ExpandProperty "SentBytes"  
$NICReceivedBytesB = Get-NetAdapterStatistics -Name $NIC | Select-Object -ExpandProperty "ReceivedBytes"  

$Sendedurchsatz = ($NICSendBytesB - $NICSendBytesA) / 1024 / 1024 / 10
$Empfangsdurchsatz = ($NICReceivedBytesB - $NICReceivedBytesA) / 1024 / 1024 / 10

Write-Host ("Der Sendedurchsatz der NIC " + $NIC + " betrug in den letzten 10 Sekunden " + $Sendedurchsatz + " MB/s")  
Write-Host ("Der Empfangsdurchsatz der NIC " + $NIC + " betrug in den letzten 10 Sekunden " + $Empfangsdurchsatz + " MB/s")  
😉

Gruss Alex
catrell
catrell 12.11.2024 aktualisiert um 21:48:59 Uhr
Goto Top
Einfach mit Get-Counter die Performance Counter der Netzwerkschnittstelle abfragen dann muss man es nicht zu fuß tun 😉

Gruß catrell
MysticFoxDE
MysticFoxDE 12.11.2024 um 21:52:10 Uhr
Goto Top
Moin @catrell,

Einfach mit Get-Counter die Performance Counter der Netzwerkschnittstelle abfragen dann muss man es nicht zu fuß tun 😉

ja, aber damit siehst du nur den aktuellen Durchsatz und nicht den über die letzten 10 Sekunden. 😉

Gruss Alex
TwistedAir
TwistedAir 12.11.2024 um 22:28:02 Uhr
Goto Top
Moin.

Zitat von @MysticFoxDE:

Moin @catrell,

Einfach mit Get-Counter die Performance Counter der Netzwerkschnittstelle abfragen dann muss man es nicht zu fuß tun 😉

ja, aber damit siehst du nur den aktuellen Durchsatz und nicht den über die letzten 10 Sekunden. 😉

Er könnte es ja um ein Sample-Intervall erweitern:
$paths = (Get-Counter -ListSet netzwerkadapter).PathsWithInstances | Select-String "wi-fi" | Select-String "bytes"  
Get-Counter -Counter $paths -SampleInterval 10 -Continuous

  • -Continuous zur wiederholten Abfrage ist optional
  • Select-String "wi-fi" muss an den eigenen Adapter angepasst werden

Gruß
TA
StefanMUC
StefanMUC 12.11.2024 um 22:43:32 Uhr
Goto Top
Danke @MysticFoxDE, das war die beste Lösung!