2

我正在尝试使用这个小型 powershell 脚本每五秒查找一次 netstat -ano 输出,然后仅过滤任何 IP 地址上端口 80 上的传出连接,并捕获打开套接字的相关进程。我认为这里的问题是如果输出中有多个条目,那么它就无法处理数组。这里缺少什么?有更好的方法吗?

while(1) {netstat -ano | ? {$_ -like "*10.10.10.10:* *:80 *"} |
  % {
  $_ -match "\d+$";
$matches | ForEach-Object {
   Get-Process -id $matches[0] | Format-List *;
   (Get-Process -id $matches[0]).WaitForExit()
}
  Start-Sleep -s 5;
  }
}
4

1 回答 1

1

Shay Levy编写了一个处理netstat信息的函数,它可以帮助您过滤信息并以更容易过滤的方式输出信息:如何查找正在运行的进程及其端口号

注意:我知道大多数人可能会说如果页面丢失,请在此处发布代码。Shay 会随着事情的变化或改进(例如添加对 IPv6 连接的支持)更新此页面,所以我怀疑他会很快将其删除。

请参阅Get-NetworkStatistics

> Get-NetworkStatistics | where Localport -eq 8000


ComputerName  : DESKTOP-JL59SC6
Protocol      : TCP
LocalAddress  : 0.0.0.0
LocalPort     : 8000
RemoteAddress : 0.0.0.0
RemotePort    : 0
State         : LISTENING
ProcessName   : node
PID           : 11552
于 2012-08-12T03:55:19.277 回答