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-ID: 310975

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

Ausgedruckt am: 08.11.2024 um 13:11 Uhr

atze187
Lösung atze187 27.07.2016 aktualisiert um 08:51:08 Uhr
Goto Top
Moin,

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

oder über alle Adapter

Get-NetAdapterStatistics

Gruß,
André
rudeboy
rudeboy 27.07.2016 um 09:01:15 Uhr
Goto Top
Schade, geht nicht für W7.
narthan
Lösung narthan 27.07.2016 um 09:07:31 Uhr
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
atze187
atze187 27.07.2016 um 09:08:42 Uhr
Goto Top
Stimmt, ab Windows 8. Das hier sollte unter Windows 7 klappen:

netstat -e
rudeboy
rudeboy 27.07.2016 aktualisiert um 09:55:04 Uhr
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...
narthan
narthan 27.07.2016 um 10:03:01 Uhr
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
rudeboy
rudeboy 27.07.2016 um 10:07:05 Uhr
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".
129813
Lösung 129813 27.07.2016 aktualisiert um 10:25:56 Uhr
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
colinardo
Lösung colinardo 27.07.2016 aktualisiert um 13:06:18 Uhr
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
rudeboy
rudeboy 27.07.2016 um 15:50:35 Uhr
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
colinardo
Lösung colinardo 27.07.2016 aktualisiert um 16:03:51 Uhr
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'  
rudeboy
rudeboy 27.07.2016 um 16:18:53 Uhr
Goto Top
Sehr geil, danke!!!
colinardo
colinardo 27.07.2016 um 18:31:25 Uhr
Goto Top
Schön face-smile
Wenns das dann war, den Beitrag bitte noch auf gelöst setzen. Merci.