我正在努力让所有本地端口处于侦听状态。使用
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
但我只是不想得到端口号码。
1111 //for ex, this is in listening state.
在Windows 10中,我可以使用
Get-NetTCPConnection -State Listen | group localport -NoElement
哪个有效,但此命令在Windows 7上不可用
答案 0 :(得分:3)
不确定是否有可用的Windows 7 cmdlet,但您可以解析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'
}