2016-12-20 7 views
0

Я пытаюсь найти все local ports, которые находятся в прослушать состояние. ИспользованиеПолучить местные номера портов в окнах 7

netstat -a -n 

я получаю следующий результат:

Proto Local Address   Foreign Address  State 
TCP 0.0.0.0:8080    0.0.0.0:0    LISTENING //for example, demo data is given 

Но я только wan't, чтобы получить номера портов.

1111 //for ex, this is in listening state. 

В Windows 10, я могу использовать

Get-NetTCPConnection -State Listen | group localport -NoElement 

который работает, но эта команда не доступна на Windows 7

ответ

2

Не уверен, есть ли Windows 7 Командлет доступен, но вы могли бы проанализируйте результат netstat:

$objects = netstat -a -n | 
    select -Skip 4 | 
    ForEach-Object { 
     $line = $_ -split ' ' | Where-Object {$_ -ne ''} 
     if ($line.Count -eq 4) 
     { 
      New-Object -TypeName psobject -Property @{ 
      'Protocol'=$line[0] 
      'LocalAddress'=$line[1] 
      'ForeignAddress'=$line[2] 
      'State'=$line[3]} 
     } 
    } 

Затем вы можете получить порты, используя примерно следующее:

$objects | Where State -eq LISTENING | Select LocalAddress | Foreach { 
    $_ -replace '.*:(\d+).*', '$1' 
}