Me gustaría obtener una cantidad total de bytes enviados y recibidos por un programa específico.
Sé que obtengo totales para toda la máquina seleccionando Estado en el menú contextual de la Tarjeta de red, pero no por aplicación.
es posible?
Respuesta1
Con esteMarcos Russinovichherramienta de microsoft
https://docs.microsoft.com/en-us/sysinternals/downloads/procmon
Puede crear un filtro para el nombre de su proceso o PID enFiltrarmenú. Luego ve aHerramientasmenú yResumen de red.
O con
https://docs.microsoft.com/en-us/sysinternals/downloads/tcpview
Si tienes nociones de PowerShell y quieres escribir tu propia herramienta:
Francés:
get-counter "\Processus(firefox*)\Nombre d’octets lus/s" -Continuous | foreach {
[math]::round((($_.countersamples.cookedvalue | measure -sum).sum / 1KB), 2)
}
Inglés
get-counter "\Process(firefox*)\IO Read Bytes/sec" -Continuous | foreach {
[math]::round((($_.countersamples.cookedvalue | measure -sum).sum / 1KB), 2)
}
Trabaje con este código y este bucle. Cree una variable total y asigne la suma calculada en cada iteración. Ajustar KB, puede ser MB, GB...
Guarde este script en un archivo .ps1, ábralosímbolo del sistemay ejecute este script, (CTRL+C para detener)
$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
RESULTADO (EN VIVO igual que Linux Watch, por ejemplo)
FIREFOX: 3256 KB
Árbitro: