Network troubleshooting is part any System Administrator’s life. Maybe you need to check the IP address of a machine or test if its networking connection is working. Maybe you need to see if DNS is properly configured or check the latency between two hosts.
If you have been in this field long enough, you probably have a few favorite commands that you learned years ago and use on a regular basis, like IPCONFIG or PING.
There are literally hundreds of networking-related PowerShell cmdlets in Windows these days. Just try out this command on your machine: Get-Command -Module Net* | Group Module
But more important than knowing every one of them, is to know the most useful cmdlets that have the potential to replace those old commands that you can’t live without.
And it’s when you combine the many networking cmdlets in ways that only PowerShell can do that you’ll find amazing new troubleshooting abilities…
Name: IPCONFIG
Description: This command has many options, but the most common usage is just to show the IP address, subnet mask and default gateway for each network adapter in a machine.
PowerShell: Get-NetIPAddress
Sample command lines:
- Get-NetIPAddress | Sort InterfaceIndex | FT InterfaceIndex, InterfaceAlias, AddressFamily, IPAddress, PrefixLength
- Get-NetIPAddress | ? AddressFamily -eq IPv4 | FT –AutoSize
- Get-NetAdapter Wi-Fi | Get-NetIPAddress | FT -AutoSize
Name: PING
Description: Checks connectivity to a specific host. Commonly used to check for liveliness, but also used to measure network latency.
PowerShell: Test-NetConnection
Sample command lines:
- Test-NetConnection www.microsoft.com
- Test-NetConnection -ComputerName www.microsoft.com -InformationLevel Detailed
- Test-NetConnection -ComputerName www.microsoft.com | Select -ExpandProperty PingReplyDetails | FT Address, Status, RoundTripTime
- 1..10 | % { Test-NetConnection -ComputerName www.microsoft.com -RemotePort 80 } | FT -AutoSize
Name: NSLOOKUP
Description: Name server lookup. Mostly used to find the IP address for a given DNS name (or vice-versa). Has many, many options.
PowerShell: Resolve-DnsName
Sample command lines:
- Resolve-DnsName www.microsoft.com
- Resolve-DnsName microsoft.com -type SOA
- Resolve-DnsName microsoft.com -Server 8.8.8.8 –Type A
Name: ROUTE
Description: Shows the IP routes in a given system (also used to add and delete routes)
PowerShell: Get-NetRoute (also New-NetRoute and Remove-NetRoute)
Sample command lines:
- Get-NetRoute -Protocol Local -DestinationPrefix 192.168*
- Get-NetAdapter Wi-Fi | Get-NetRoute
Name: TRACERT
Description: Trace route. Shows the IP route to a host, including all the hops between your computer and that host.
PowerShell: Test-NetConnection –TraceRoute
Sample command lines:
- Test-NetConnection www.microsoft.com –TraceRoute
- Test-NetConnection outlook.com -TraceRoute | Select -ExpandProperty TraceRoute | % { Resolve-DnsName $_ -type PTR -ErrorAction SilentlyContinue }
Command: NETSTAT
Description: Shows current TCP/IP network connections.
PowerShell: Get-NetTCPConnection
Sample command lines:
- Get-NetTCPConnection | Group State, RemotePort | Sort Count | FT Count, Name
- Get-NetTCPConnection | ? RemotePort -eq 443 | % { $_; Resolve-DnsName $_.RemoteAddress -type PTR -ErrorAction SilentlyContinue }
- Get-NetTCPConnection | ? RemotePort -eq 443 | % { $_; Get-Process -Id $_.OwningProcess | FT }









