PowerShell: Get Network Adapter Data Transfer Statistics

Need to check how much data has been sent and received over a network adapter - for monitoring bandwidth usage or troubleshooting a connectivity issue? This one-liner pulls it straight from the system.

Prerequisites:

  • Privileges: None
  • Module: Built-in, no import needed

Quick Command:

Get-NetAdapterStatistics

Example Output:

Name                             ReceivedBytes ReceivedUnicastPackets       SentBytes SentUnicastPackets
----                             ------------- ----------------------       --------- ------------------
Wi-Fi                                        0                      0               0                  0
Ethernet                            1477526860                1202682       321192471             517366
📦
Want all of them at once?
Get every free one-liner from this blog in a single downloadable bundle organized by category, each with full comment-based help. No more copy-pasting one at a time.

How It Works:

  • Get-NetAdapterStatistics returns cumulative traffic counters for every network adapter, tracked since the adapter was last initialized (typically since the last reboot or reconnect).
  • ReceivedBytes/SentBytes show the total raw data transferred in bytes - large numbers here are normal for an active connection.
  • ReceivedUnicastPackets/SentUnicastPackets show the packet count for standard one-to-one network traffic (as opposed to broadcast or multicast packets).
  • An adapter showing all zeros (like Wi-Fi here) typically means it's inactive or disconnected - the machine is using a different adapter (Ethernet) for its actual network traffic.

Pro Tip:

To see the data in a more readable format (MB instead of raw bytes), convert it with a calculated property:

Get-NetAdapterStatistics | Select-Object Name, @{Name="ReceivedMB";Expression={[math]::Round($_.ReceivedBytes / 1MB, 2)}}, @{Name="SentMB";Expression={[math]::Round($_.SentBytes / 1MB, 2)}}