netstatコマンドの-oオプションで接続に関連付けられたプロセスIDが表示されますが、プロセス名を別途調べる必要があるため、プロセス名も一緒に表示するスクリプトです。
netstat_extenction.ps1
# netstat プロセス名も表示
#
# コマンドプロンプトで実行
# CMD> powershell -NoProfile -ExecutionPolicy Unrestricted .\netstat_extension.ps1
# [D] 実行しない(D) [R] 一度だけ実行する(R) [S] 中断(S) [?] ヘルプ (既定値は "D"): r
#
# PowerShellで実行
# 1. 実行ポリシーを変更
# PS> Set-ExecutionPolicy RemoteSigned⇒yes
# 2. 実行
# PS> .\netstat_extenstion.ps1
# 3. 実行ポリシーを戻します
# PS> Set-ExecutionPolicy Restricted⇒yes
$netstat = netstat -aon | Select-String -Pattern "(TCP|UDP)"
$ProcessList = Get-Process
foreach ($data in $netstat)
{
$SpltArry = $data -split " "
$PD = $spltArry[$spltarry.length - 1]
$pn = $ProcessList | Where-Object {$_.id -eq $pd } | select processname
$SpltArry[$SpltArry.length - 1] = $PD + " " + $PN.processname
$SpltArry -join " "
}