PoshCode Logo PowerShell Code Repository

Get-Netstat 1,0 by Forrest 36 months ago
diff | embed code: <script type="text/javascript" src="http://PoshCode.org/embed/884"></script>download | new post

It would really be sweet if I could get-netstat -sate CLOSE_WAIT

I have a server issue I’m trying to track down after it hangs upon a sudden plethora of CLOSE_WAIT s I plan to modify it to log or email every few minutes all the close_waits so I can try and narrow down the first client that seems to get there to help pinpoint.

Very helpful script though…

  1. $null, $null, $null, $null, $netstat = netstat -a -n -o
  2. [regex]$regexTCP = '(?<Protocol>\S+)\s+(?<LocalAddress>\S+)\s+(?<RemoteAddress>\S+)\s+(?<State>\S+)\s+(?<PID>\S+)'
  3. [regex]$regexUDP = '(?<Protocol>\S+)\s+(?<LocalAddress>\S+)\s+(?<RemoteAddress>\S+)\s+(?<PID>\S+)'
  4. foreach ($net in $netstat)
  5. {
  6.     switch -regex ($net.Trim())
  7.     {
  8.         $regexTCP
  9.         {                      
  10.             $process = "" | Select-Object Protocol, LocalAddress, RemoteAddress, State, PID, ProcessName
  11.             $process.Protocol = $matches.Protocol
  12.             $process.LocalAddress = $matches.LocalAddress
  13.             $process.RemoteAddress = $matches.RemoteAddress
  14.             $process.State = $matches.State
  15.             $process.PID = $matches.PID
  16.             $process.ProcessName = ( Get-Process -Id $matches.PID ).ProcessName
  17.             $process
  18.             continue
  19.         }
  20.         $regexUDP
  21.         {
  22.             $process = "" | Select-Object Protocol, LocalAddress, RemoteAddress, State, PID, ProcessName
  23.             $process.Protocol = $matches.Protocol
  24.             $process.LocalAddress = $matches.LocalAddress
  25.             $process.PID = $matches.PID
  26.            $process.ProcessName = ( Get-Process -Id $matches.PID ).ProcessName
  27.             $process
  28.             continue
  29.         }
  30.     }
  31. }

Submit a correction or amendment below (
click here to make a fresh posting)
After submitting an amendment, you'll be able to view the differences between the old and new posts easily.

Syntax highlighting:


Remember me