У меня есть служба Windows, которая прослушивает порт 80, используя самостоятельный хостинг OWIN (WebApp.Start). Я хочу найти эту службу программно, используя сценарий PowerShell. У меня есть следующий скрипт PowerShell:
netstat -noab | Select-String ":80 " -Context(1,0) `
| Where { $_.Context.PreContext[0].Trim().StartsWith("[") } `
| ForEach { ($_.Context.PreContext[0].Substring(2) -split ']')[0] }
Однако это дает только lsass.exe.
Если я запускаю netstat -noa, я получаю еще несколько результатов, но все перечисленные процессы являются системными процессами (не моими) или имеют "Can not obtain ownership information"
, когда я включаю параметр -b
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4
TCP 10.100.18.158:80 10.100.25.102:42967 ESTABLISHED 4
TCP 10.100.18.158:80 10.100.25.102:42968 ESTABLISHED 4
TCP 10.100.18.158:80 10.100.25.102:42974 ESTABLISHED 4
TCP 10.100.18.158:80 10.100.28.8:44763 ESTABLISHED 4
TCP 10.100.18.158:80 10.100.28.8:44764 ESTABLISHED 4
TCP 10.100.18.158:80 10.100.28.8:44765 ESTABLISHED 4
TCP 10.100.18.158:80 10.100.28.8:47400 ESTABLISHED 4
TCP [::]:80 [::]:0 LISTENING 4
Я понимаю, что это, вероятно, из-за того, как OWIN использует внутренний прослушиватель HTTP.
Есть ли способ надежно определить процесс/службу с использованием порта?