How to Traceroute in PowerShell
In Windows CMD, we can use either the
pathping commands to perform a traceroute. These two commands are also available in PowerShell; however, PowerShell has its own method for performing traceroutes.
In PowerShell, you can perform a traceroute with either
Test-NetConnection offers superior speed,
Test-Connection provides more detailed information.
Using Test-Connection to Traceroute
Here's the command syntax in PowerShell for using
Test-Connection to perform a traceroute:
Test-Connection -TargetName <Computer-Name/IP-Address> -Traceroute
Specify the target to trace with the
-TargetName parameter. This can be either the IP address or the domain name of the remote computer. For example, the following command traces the
example.local domain name:
Test-Connection -TargetName example.local -Traceroute
The result will be a detailed table showing the route taken by the packets:
Each hop is listed three times as
Test-Connection sends three echo request packets to each device for reliable connection verification.
It is also possible to traceroute more than one address at once. Simply separate the addresses with commas. For example, the following command traces the route to IP addresses
192.168.1.10 at once:
Test-Connection -TargetName 192.168.1.1, 192.168.1.10 -Traceroute
While tracert automatically resolves hostnames, Test-Connection doesn't by default. However, you can enable name resolution by adding the
Test-Connection -TargetName example.local -Traceroute -ResolveDestination
You can also change the output format by redirecting the output to the
Test-Connection -TargetName 192.168.1.1 | Format-List
Using Test-NetConnection to Traceroute
To perform a traceroute using the
Test-NetConnection command, use the following command syntax:
Test-NetConnection -ComputerName <Computer-Name/IP-Address> -TraceRoute
This example maps the network path to the
example.local domain using
Test-NetConnection -ComputerName example.local -TraceRoute
You will see an output similar to the following, where
Test-NetConnection lists all the hops it traverses on its way to reach the remote server.
Not only is the response significantly faster than
Test-Connection, but it also shows the IP address of the local interface that data is flowing out from. This can be very useful if your computer has multiple network interfaces.