Я хотел бы получить общее количество байтов, отправленных и полученных конкретной программой.
Я знаю, что получаю итоги по всей машине, выбрав «Состояние» в контекстном меню сетевой карты, но не для каждого приложения.
Это возможно?
Я хотел бы получить общее количество байтов, отправленных и полученных конкретной программой.
Я знаю, что получаю итоги по всей машине, выбрав «Состояние» в контекстном меню сетевой карты, но не для каждого приложения.
Это возможно?
С этим инструментом Марк Руссинович Microsoft
https://docs.microsoft.com/en-us/sysinternals/downloads/procmon
Вы можете создать фильтр для вашего имени процесса или PID в меню « Фильтр». Затем перейдите в меню « Сервис» и « Обзор сети».
Или с
https://docs.microsoft.com/en-us/sysinternals/downloads/tcpview
Если у вас есть понятие PowerShell, и вы хотите написать свой собственный инструмент:
Французский:
get-counter "\Processus(firefox*)\Nombre d’octets lus/s" -Continuous | foreach {
[math]::round((($_.countersamples.cookedvalue | measure -sum).sum / 1KB), 2)
}
английский
get-counter "\Process(firefox*)\IO Read Bytes/sec" -Continuous | foreach {
[math]::round((($_.countersamples.cookedvalue | measure -sum).sum / 1KB), 2)
}
Работайте с этим кодом и этим циклом.Создайте итоговую переменную и назначьте вычисленную сумму в каждой итерации. Отрегулируйте КБ, можно МБ, ГБ ...
Сохраните этот сценарий в файл .ps1, откройте командную строку и выполните этот сценарий (CTRL+C для остановки).
$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
РЕЗУЛЬТАТ (LIVE такой же, как Linux Watch, например)
FIREFOX: 3256 КБ
Ref: