Thor Logo dbatools

Get-DbaNetworkActivity

View Source
Klaas Vandenberghe (@PowerDBAKlaas)
Windows, Linux, macOS

Synopsis

Retrieves real-time network traffic statistics for all network interfaces on SQL Server host computers.

Description

Retrieves current network activity metrics including bytes received, sent, and total throughput per second for every network interface on target computers. This function helps DBAs monitor network performance and identify bandwidth bottlenecks that could impact SQL Server performance, especially during large data transfers, backup operations, or heavy replication traffic.

The function queries Windows performance counters via CIM/WMI and displays bandwidth utilization alongside interface capacity (10Gb, 1Gb, 100Mb, etc.) to quickly identify saturated network links. Essential for troubleshooting connectivity issues, monitoring backup network performance, or validating network capacity before major data migration operations.

Requires Local Admin rights on destination computer(s).

Syntax

Get-DbaNetworkActivity
    [[-ComputerName] <String[]>]
    [[-Credential] <PSCredential>]
    [-EnableException]
    [<CommonParameters>]

 

Examples

 

Example: 1
PS C:\> Get-DbaNetworkActivity -ComputerName sqlserver2014a

Gets the Current traffic on every Network Interface on computer sqlserver2014a.

Example: 2
PS C:\> 'sql1','sql2','sql3' | Get-DbaNetworkActivity

Gets the Current traffic on every Network Interface on computers sql1, sql2 and sql3.

Example: 3
PS C:\> Get-DbaNetworkActivity -ComputerName sql1,sql2

Gets the Current traffic on every Network Interface on computers sql1 and sql2.

Optional Parameters

-ComputerName

Specifies the computer names or SQL Server instances to monitor network activity.
Function extracts the computer name from full instance names and resolves them to fully qualified domain names.
Defaults to the local computer when not specified.

PropertyValue
Aliascn,host,Server
RequiredFalse
Pipelinetrue (ByValue)
Default Value$env:COMPUTERNAME
-Credential

Credential object used to connect to the computer as a different user.

PropertyValue
Alias
RequiredFalse
Pipelinefalse
Default Value
-EnableException

By default, when something goes wrong we try to catch it, interpret it and give you a friendly warning message.
This avoids overwhelming you with “sea of red” exceptions, but is inconvenient because it basically disables advanced scripting.
Using this switch turns this “nice by default” feature off and enables you to catch exceptions with your own try/catch.

PropertyValue
Alias
RequiredFalse
Pipelinefalse
Default ValueFalse

Outputs

Win32_PerfFormattedData_Tcpip_NetworkInterface

Returns one object per network interface found on the target computer(s).

Default display properties (via Select-DefaultView):

  • ComputerName: The name of the computer containing the network interface
  • NIC: The name of the network interface (alias for Name property)
  • BytesReceivedPersec: Bytes received per second on this interface (numeric value)
  • BytesSentPersec: Bytes sent per second on this interface (numeric value)
  • BytesTotalPersec: Total bytes per second (received + sent) on this interface (numeric value)
  • Bandwidth: Human-readable interface bandwidth capacity (10Gb, 1Gb, 100Mb, 10Mb, 1Mb, 100Kb, or Low)

Additional properties available (from Win32_PerfFormattedData_Tcpip_NetworkInterface):

  • CurrentBandwidth: Numeric bandwidth in bits per second (used to calculate display Bandwidth)
  • OutputQueueLength: Queue length for outbound data
  • PacketsReceivedPersec: Number of packets received per second
  • PacketsSentPersec: Number of packets sent per second
  • PacketsOutboundErrors: Number of transmission errors
  • PacketsReceivedErrors: Number of receive errors
  • PacketsReceivedDiscarded: Number of received packets discarded
  • PacketsOutboundDiscarded: Number of transmitted packets discarded All properties from the base WMI object are accessible using Select-Object *.