Home > Blockchain >  How to make netstat output's headings show properly in out-gridview?
How to make netstat output's headings show properly in out-gridview?

Time:11-05

enter image description here

when I use:

netstat -f | out-gridview

in PowerShell 7.3, I get the window but it has only one column which is a string. I don't know why it's not properly creating a column for each of the headings like Proto, Local Address etc. how can I fix this?

CodePudding user response:

While commenter Toni makes a good point to use Get-NetTCPConnection | Out-GridView instead, this answer addresses the question as asked.

To be able to show output of netstat in grid view, we have to parse its textual output into objects.

$headers = @()

# Skip first 3 lines of output which we don't need
netstat -f | Select-Object -skip 3 | ForEach-Object {
   
    # Split each line into columns
    $columns = $_.Trim() -split '\s{2,}'
   
    if( -not $headers ) {
        # First line is the header row
        $headers = $columns
    }
    else {
        # Create an ordered hashtable
        $objectProperties = [ordered] @{}
        $i = 0
        # Loop over the columns and use the header columns as property names
        foreach( $key in $headers ) {
            $objectProperties[ $key ] = $columns[ $i   ]
        }
        # Convert the hashtable into an object that can be shown by Out-GridView
        [PSCustomObject] $objectProperties
    }
} | Out-GridView
  • Related