rudeboy
Goto Top

Batch oder PS um Datenvolumen zu ermitteln

Guten Morgen zusammen,

ist es möglich mit Hilfe von Batch oder PS-Skript die über die Netzwerkschnittstelle übertragene Datenmenge zB in einer .txt festzuhalten?

Danke und Gruß
Thomas

Content-Key: 310975

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

Printed on: April 26, 2024 at 18:04 o'clock

Member: atze187
Solution atze187 Jul 27, 2016 updated at 06:51:08 (UTC)
Goto Top
Moin,

Get-NetAdapterStatistics -Name <NAME-DES-NETZWERK-ADAPTERS>

oder über alle Adapter

Get-NetAdapterStatistics

Gruß,
André
Member: rudeboy
rudeboy Jul 27, 2016 at 07:01:15 (UTC)
Goto Top
Schade, geht nicht für W7.
Member: narthan
Solution narthan Jul 27, 2016 at 07:07:31 (UTC)
Goto Top
Moin Thomas,

ich kenne nur "netstat", für eine detailliertere Übersicht der Protokollstatistiken

netstat -s

und für eine einfache Übersicht

netstat -e

Gruß,
narthan
Member: atze187
atze187 Jul 27, 2016 at 07:08:42 (UTC)
Goto Top
Stimmt, ab Windows 8. Das hier sollte unter Windows 7 klappen:

netstat -e
Member: rudeboy
rudeboy Jul 27, 2016 updated at 07:55:04 (UTC)
Goto Top
Jo, sieht schon mal gut aus von den Werten! Danke
Wie bekomme ich das jetzt am besten in eine Excel-Tabelle mit den entsprechenden Rechnernamen und evtl Datum dabei?
Könnte man dann als Abmeldescript starten...
Member: narthan
narthan Jul 27, 2016 at 08:03:01 (UTC)
Goto Top
Den Rechnernamen bekommst du über
hostname
und das aktuelle Datum z.B. über
echo %DATE%
und weiterleiten kannst du alles z.B. in eine csv Datei mit Semikolon als Trennzeichen, die du ohne Probleme in Excel öffnen kannst.

Gruß,
narthan
Member: rudeboy
rudeboy Jul 27, 2016 at 08:07:05 (UTC)
Goto Top
Die Variablen meinte ich jetzt nicht, eher den Syntax.
Wollte dann ich nicht die ganze Tabelle schreiben sondern zB nur das Zahlenpaar von "Bytes gesendet und empfangen".
Mitglied: 129813
Solution 129813 Jul 27, 2016 updated at 08:25:56 (UTC)
Goto Top
Powershell:
netstat -e | ?{$_ -match '^Bytes\s+(\d+)\s+(\d+)'} | %{"$($matches[1]);$($matches[2])"}  
Batch
for /f "tokens=2,3" %%a in ('netstat -e ^| findstr /i "Bytes"') do (  
   set IN=%%a
   set OUT=%%b
)
echo %IN%
echo %OUT%
Regards
Member: colinardo
Solution colinardo Jul 27, 2016 updated at 11:06:18 (UTC)
Goto Top
Hallo zusammen,
Zitat von @rudeboy:
Schade, geht nicht für W7.
Geht dort auch, aber eben nur manuell über die NET-Framework Klassen face-smile

PS-Einzeiler für einen "Append" in eine CSV
[System.Net.NetworkInformation.NetworkInterface]::GetAllNetworkInterfaces() | ?{$_.OperationalStatus -eq 'Up' -and $_.NetworkInterfaceType -eq "Ethernet"} | %{$_ | Add-Member -MemberType NoteProperty "IPStatistics" -Value $_.GetIPStatistics() -PassThru} | select @{n='Computer';e={$env:COMPUTERNAME}},@{n="Datum";e={get-date -F d}},Description,@{n='IN';e={"{0:N2} MB" -f ($_.IPStatistics.BytesReceived / 1MB)}},@{n='OUT';e={"{0:N2} MB" -f ($_.IPStatistics.BytesSent / 1MB)}} | export-csv 'C:\info.txt' -NoTypeInformation -Delimiter ";" -Append  
"Computer";"Datum";"Description";"IN";"OUT"
"COMPUTERXYZ";"27.06.2016";"Realtek PCIe GBE Family Controller";"200,34 MB";"40,99 MB"
Grüße Uwe
Member: rudeboy
rudeboy Jul 27, 2016 at 13:50:35 (UTC)
Goto Top
Export-Csv : Es wurde kein Parameter gefunden, der dem Parameternamen "Append" entspricht.
Bei Zeile:1 Zeichen:544

back-to-top[System.Net.NetworkInformation.NetworkInterface]::GetAllNetworkInterfaces() | ?{$_.OperationalStatus -eq 'Up' -and $_.NetworkInterfaceType -eq "Ethernet"} |

%{$_ | Add-Member -MemberType NoteProperty "IPStatistics" -Value $_.GetIPStatistics() -PassThru} | select @{n='Computer';e={$env:COMPUTERNAME}},@{n="Datum";e={
get-date -F d}},Description,@{n='IN';e={"{0:N2} MB" -f ($_.IPStatistics.BytesReceived / 1MB)}},@{n='OUT';e={"{0:N2} MB" -f ($_.IPStatistics.BytesSent / 1MB)}}
| export-csv 'C:\info.txt' -NoTypeInformation -Delimiter ";" -Append <<<<
+ CategoryInfo : InvalidArgument: (face-smile [Export-Csv], ParameterBindingException
+ FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.ExportCsvCommand
Member: colinardo
Solution colinardo Jul 27, 2016 updated at 14:03:51 (UTC)
Goto Top
Dann vewendest du noch eine veraltete PS 2.0 face-smile Installiere mindestens PS 3.0

Oder benutze convertto-csv und schreibe es mit add-content in eine Textdatei face-wink
PS2.0 compatible:
[System.Net.NetworkInformation.NetworkInterface]::GetAllNetworkInterfaces() | ?{$_.OperationalStatus -eq 'Up' -and $_.NetworkInterfaceType -eq "Ethernet"} | %{$_ | Add-Member -MemberType NoteProperty "IPStatistics" -Value $_.GetIPStatistics() -PassThru} | select @{n='Computer';e={$env:COMPUTERNAME}},@{n="Datum";e={get-date -F d}},Description,@{n='IN';e={"{0:N2} MB" -f ($_.IPStatistics.BytesReceived / 1MB)}},@{n='OUT';e={"{0:N2} MB" -f ($_.IPStatistics.BytesSent / 1MB)}} | convertto-csv -NoType -Delimiter ";" | select -skip 1 | Add-Content 'C:\info.txt'  
Member: rudeboy
rudeboy Jul 27, 2016 at 14:18:53 (UTC)
Goto Top
Sehr geil, danke!!!
Member: colinardo
colinardo Jul 27, 2016 at 16:31:25 (UTC)
Goto Top
Schön face-smile
Wenns das dann war, den Beitrag bitte noch auf gelöst setzen. Merci.