Sei sulla pagina 1di 4

10 PowerShell cmdlets to speed network troubleshooting

techrepublic.com/article/10-powershell-commands-for-network-troubleshooting

Jesus Vigo

Image: iStock/gorodenkoff

As Microsoft releases newer versions of its Windows client and


server OSes, it continues to double down on PowerShell (PS),
More about Windows
the framework developed for managing systems and
automation. With its ever-expanding list of commands, called
cmdlets, PS is poised to aid in configuring just about any settings found within Windows.

While PS boasts a vast number of cmdlets, thankfully most are grouped based on
functionality or the service they manage. For the purposes of this article, the cmdlets that
pertain to managing network-based settings are all found within the base PowerShell
framework.

SEE: Windows administrator's PowerShell script kit (Tech Pro Research)


Before diving into the cmdlets, there are a few requirements that must be met to ensure
that all cmdlets are available and fully supported:

PC with Windows Vista installed (or newer)


Windows Management Framework 3.0 (or newer)
Switched network (required for most cmdlets to function properly)
Broadband internet access (optional, but recommended)

1. Ping devices locally or remotely


Test-NetConnection -ComputerName "Hostname or IP"
1/4
The Test-NetConnection cmdlet offers a number of ways to test network connectivity on the
LAN and WAN. Enter the command as typed above and the computer will essentially
perform a ping to determine if network connectivity between the local device and the target
computer or domain exists.

2. Check connectivity based on port or service


Test-NetConnection "Hostname" -Port #

Another feature of the Test-NetConnection cmdlet is the ability to test the connectivity
between the local device and the target host by specifying a port number. This is extremely
useful for testing services between devices and the ports they communicate on specifically.

3. Trace route communications


Test-NetConnection "Hostname" -traceroute

Performing a trace route to determine how many hops (or steps) a packet must go through
to get from the source to its destination is an important tool, as it allows you to see where
the transmission is going, and more important, whether it was successful. If it wasn't, trace
route will indicate where the packet failed along the path.

SEE: IT pro's guide to saving time with PowerShell (free TechRepublic PDF)

4. Obtain IP configuration details


Get-NetIPConfiguration

Similar to the ipconfig command, the Get-NetIPConfiguration cmdlet provides a holistic


view of the network configuration(s) set on the network adapters of a computer. IP, DNS,
and Gateway addresses are displayed and sorted by adapter name.

5. Perform DNS lookups


Resolve-DnsName -Name "Hostname"

Arguably, the backbone of a network is the DNS service. Without it, users would be forced
to know the IP addresses for all websites and services. And yet when connectivity issues
arise, DNS is often the culprit after ruling out IP-related errors. By appending the "-server"
switch, followed by a DNS server's IP address, IT can perform a DNS resolve request
against a specific server to verify resolution is working properly.

6. View current TCP connections


Get-NetTCPConnection

2/4
Just like netstat before it, the Get-NetTCPConnection cmdlet allows for viewing of the
current TCP connections that have been made to/from a device, as well as open or
listening connections. This helps you troubleshoot issues that pertain to IPs and ports,
specifically those bound to certain network services.

7. View & Set DNS information


Get-DnsClient
Set-DnsClientServer Address

This cmdlet lets you check the DNS client information for a device. It will indicate what DNS
server(s) are being used by the device to perform address resolutions as configured on
multiple adapters. The Set-DnsClientServerAddress cmdlet allows for specified DNS
servers to be added to the network configuration.

8. Flush DNS cache


Clear-DnsClientCache

The DNS cache helps keep often used DNS resolution records stored locally on a device,
allowing it to read that record instead of performing a lookup every time a record is
requested. This helps speed up the already fast resolution process. If stale records—or
those that haven't been updated—are present, this could lead to poor network
performance, denial of service, or security issues that seek to exploit incorrect records that
point user requests to the wrong server/service.

9. Release and renew DHCP leases


Invoke-Command -ComputerName -ScriptBlock {ipconfig /release}
Invoke-Command -ComputerName -ScriptBlock {ipconfig /renew}

While PowerShell includes many cmdlets to manage network settings, there is no direct
way to release/renew DHCP leases without referencing another cmdlet first, then piping the
results to a second or third cmdlet to be able to modify the DHCP setting. However, by
leveraging the Invoke-Command, you can remotely (or via script) perform a release and/or
renew by calling upon the ipconfig command.

10. Disable and enable network adapters


Disable-NetAdapter -Name "Adapter Name"
Enable-NetAdapter -Name "Adapter Name"

Last but certainly not least is the cmdlet for disabling/enabling network adapters on a
device. While not as fancy a method for troubleshooting network problems as the cmdlets
listed above, as any IT professional will tell you, sometimes the only thing you have to do to
resolve a network-based problem is turn it off and on again.

Also read...
3/4
Other options?
What PowerShell cmdlets have worked best for your network troubleshooting tasks? Share
your experiences and advice with fellow TechRepublic members in the discussion below.

Related Topics:
Microsoft Enterprise Software Developer Open Source Software Mobility

About Jesus Vigo


Jesus Vigo is a Network Administrator by day and owner of Mac|Jesus, LLC, specializing in
Mac and Windows integration and providing solutions to small- and medium-size
businesses. He brings 19 years of experience and multiple certifications from seve...

4/4

Potrebbero piacerti anche