Ich möchte die Gesamtmenge der Bytes erhalten, die von einem bestimmten Programm gesendet und empfangen werden.
Ich weiß, dass ich Gesamtwerte für die gesamte Maschine erhalte, wenn ich „Status“ aus dem Kontextmenü der Netzwerkkarte auswähle, aber nicht pro App.
Ist das möglich?
Antwort1
Mit diesemMark RussinovichMicrosoft-Tool
https://docs.microsoft.com/en-us/sysinternals/downloads/procmon
Sie können einen Filter für Ihren Prozessnamen oder Ihre PID erstellen inFilterMenü. Gehen Sie dann zuWerkzeugeMenü undNetzwerkübersicht.
Oder mit
https://docs.microsoft.com/en-us/sysinternals/downloads/tcpview
Wenn Sie mit Powershell vertraut sind und Ihr eigenes Tool schreiben möchten:
Französisch:
get-counter "\Processus(firefox*)\Nombre d’octets lus/s" -Continuous | foreach {
[math]::round((($_.countersamples.cookedvalue | measure -sum).sum / 1KB), 2)
}
Englisch
get-counter "\Process(firefox*)\IO Read Bytes/sec" -Continuous | foreach {
[math]::round((($_.countersamples.cookedvalue | measure -sum).sum / 1KB), 2)
}
Arbeiten Sie mit diesem Code und dieser Schleife. Erstellen Sie eine Gesamtvariable und weisen Sie in jeder Iteration die berechnete Summe zu. Passen Sie KB an, es kann MB, GB sein ...
Speichern Sie dieses Skript in einer Datei .ps1, öffnenEingabeaufforderungund führen Sie dieses Skript aus (STRG+C zum Stoppen)
$process="firefox"
$totalKB = 0
while($true){
get-counter "\Process($process*)\IO Read Bytes/sec" | foreach {
$totalKB += [math]::round((($_.countersamples.cookedvalue | measure -sum).sum / 1KB), 2)
}
Write-Host -NoNewline -ForegroundColor Yellow ("`r"+$process.ToUpper()+": "+([string]$totalKB)+" KB ")
Start-Sleep -Milliseconds 500
}
write-host
ERGEBNIS (LIVE, wie z. B. Linux Watch)
FIREFOX: 3256 KB
Referenz: