使用80端口查找进程
Find process using port 80
我有一个 Windows 服务,它使用 OWIN 自托管 (WebApp.Start) 在端口 80 上侦听。我想使用 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,我会得到更多的结果,但是列出的所有进程都是系统进程(不是我的)或者当我包含 -b
时有 "Can not obtain ownership information"
选项
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 侦听器的方式。
有什么方法可以可靠地确定 process/service 使用的端口?
通常这是 HTTP.sys、
的标志
我在这里回答了类似的问题:
但总结是你可以使用
弄清楚为什么会出现这种情况的最佳方法是 运行 从提升的命令提示符下执行以下命令,它将列出所有注册,包括使用它们的进程 ID:
netsh http show servicestate view=requestq verbose=yes
Request queue name: Request queue is unnamed.
Version: 2.0
State: Active
Request queue 503 verbosity level: Basic
Max requests: 1000
Number of active processes attached: 1
**Process IDs**:
1120
URL groups:...
并在其中找到正确的预订,可能类似于:HTTP :// LOCALHOST:80/ 或 LOCALHOST:80,或 *:80
IIS 将使用应用程序池名称向请求队列名称注册预留,这让您可以轻松找出谁在使用它。
我有一个 Windows 服务,它使用 OWIN 自托管 (WebApp.Start) 在端口 80 上侦听。我想使用 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,我会得到更多的结果,但是列出的所有进程都是系统进程(不是我的)或者当我包含 -b
时有 "Can not obtain ownership information"
选项
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 侦听器的方式。
有什么方法可以可靠地确定 process/service 使用的端口?
通常这是 HTTP.sys、
的标志我在这里回答了类似的问题:
但总结是你可以使用 弄清楚为什么会出现这种情况的最佳方法是 运行 从提升的命令提示符下执行以下命令,它将列出所有注册,包括使用它们的进程 ID:
netsh http show servicestate view=requestq verbose=yes
Request queue name: Request queue is unnamed.
Version: 2.0
State: Active
Request queue 503 verbosity level: Basic
Max requests: 1000
Number of active processes attached: 1
**Process IDs**:
1120
URL groups:...
并在其中找到正确的预订,可能类似于:HTTP :// LOCALHOST:80/ 或 LOCALHOST:80,或 *:80
IIS 将使用应用程序池名称向请求队列名称注册预留,这让您可以轻松找出谁在使用它。