What is the PowerShell script to get the speed a specific Windows machine's network card is running at?
I know this can be done with a WMI query based statement and will post an answer once I work it out.
A basic command is
Get-WmiObject -ComputerName 'servername' -Class Win32_NetworkAdapter | `
Where-Object { $_.Speed -ne $null -and $_.MACAddress -ne $null } | `
Format-Table -Property SystemName,Name,NetConnectionID,Speed
Note that the ComputerName parameter takes an array so you can run this against multiple computers provided you have rights. Replace the Format-Table property list with ***** to get a more comprehensive list of available properties. You might want to filter on these properties to get rid of entries you aren't interested in.
Using the built in byte Multiplier suffixes (MB, GB etc) would also make the speed more readable depending on your needs. You could specify this as a HashTable entry on the Format-Table -Property array e.g.
Format-Table -Property NetConnectionID,@{Label='Speed(GB)'; Expression = {$_.Speed/1GB}}
Starting with Windows 8/Server 2012, you can try Get-NetAdapter
and several more specialized commands like Get-NetAdapterAdvancedProperty
:
https://learn.microsoft.com/en-us/powershell/module/netadapter/get-netadapter
You can also use the more comprehensive WMI class MSFT_NetAdapter
to create customized output. MSFT_NetAdapter
is described here:
https://msdn.microsoft.com/en-us/library/Hh968170(v=VS.85).aspx
Here's a command to list the speed and other properties of enabled (State 2), connected (OperationalStatusDownMediaDisconnected $false), 802.3 wired (NdisPhysicalMedium 14), non-virtual adapters on the local computer:
Get-WmiObject -Namespace Root\StandardCimv2 -Class MSFT_NetAdapter | `
Where-Object { $_.State -eq 2 -and $_.OperationalStatusDownMediaDisconnected -eq $false -and `
$_.NdisPhysicalMedium -eq 14 -and $_.Virtual -eq $false } | `
Format-Table Name,Virtual,State,NdisPhysicalMedium, `
@{Label='Connected'; Expression={-not $_.OperationalStatusDownMediaDisconnected}}, `
@{Label='Speed(MB)'; Expression = {$_.Speed/1000000}}, `
FullDuplex,InterfaceDescription
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With