1

Я хотел бы получить общее количество байтов, отправленных и полученных конкретной программой.

Я знаю, что получаю итоги по всей машине, выбрав «Состояние» в контекстном меню сетевой карты, но не для каждого приложения.

Это возможно?

1 ответ1

3

С этим инструментом Марк Руссинович 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:

https://blogs.technet.microsoft.com/heyscriptingguy/2011/01/31/use-powershell-to-simplify-collecting-performance-information/

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .