Jul 092012
 

Making netstat.exe Object-Oriented with PowerShell

Netstat.exe is a useful tool, like many other console-based applications. Take a look how relatively easy it is for PowerShell to take the text-based output and convert it into real objects:

netstat-an|

    ForEach-Object {

       $i=$_|Select-Object-PropertyProtocol , Source , Destination , Mode

       $null, $i.Protocol, $i.Source, $i.Destination, $i.Mode=

                ($_-split‘\s{2,}’)

       if ($i.Protocol.length-eq 3) { $i }

    }

Since the result is converted to objects, you can now easily use other PowerShell cmdlets to sort or filter the results. This slight variation would i.e. show all listening connections:

netstat-an|

    ForEach-Object {

       $i=$_|Select-Object-PropertyProtocol , Source , Destination , Mode

       $null, $i.Protocol, $i.Source, $i.Destination, $i.Mode=

                ($_-split‘\s{2,}’)

       if ($i.Protocol.length-eq 3) { $i }

    } |

    Where-Object { $_.Mode-eq‘LISTENING’ }

Like always with console applications, the data may be localized and different on different UI cultures.

Leave a Reply