2016-12-20 2 views
0

J'essaie d'obtenir tous les ports locaux qui sont en l'écoute état. En utilisantObtenez les numéros de port local dans Windows 7

netstat -a -n 

Je reçois la sortie suivante:

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

Mais je ne wan't pour obtenir les numéros de port.

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

Dans Windows 10, je peux utiliser

Get-NetTCPConnection -State Listen | group localport -NoElement 

Ce qui fonctionne, mais cette commande n'est pas disponible sur Windows 7

Répondre

2

Je ne sais pas s'il y a une applet de commande Windows 7 disponible mais vous pouvez analyser le résultat 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]} 
     } 
    } 

Ensuite, vous pouvez récupérer les ports en utilisant quelque chose comme ceci:

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