Bra*_*son 2317
Get-Process -Id (Get-NetTCPConnection -LocalPort portNumber).OwningProcess
Run Code Online (Sandbox Code Playgroud)
C:\> netstat -a -b
Run Code Online (Sandbox Code Playgroud)
(添加-n以阻止它尝试解析主机名,这将使其更快)
注意Dane对TCPView的建议.看起来很有用!
-a 显示所有连接和侦听端口.
-b 显示创建每个连接或侦听端口所涉及的可执行文件.在某些情况下,众所周知的可执行文件承载多个独立组件,在这些情况下,将显示创建连接或侦听端口所涉及的组件序列.在这种情况下,可执行文件名在底部的[]中,顶部是它调用的组件,依此类推,直到达到TCP/IP.请注意,此选项可能非常耗时,并且除非您具有足够的权限,否则将失败.
-n 以数字形式显示地址和端口号.
-o 显示与每个连接关联的拥有进程ID.
bco*_*rso 2049
有一个Windows的原生GUI:
或运行 resmon.exe
,或从TaskManager性能选项卡
aku*_*aku 191
netstat -aon | find /i "listening"
Run Code Online (Sandbox Code Playgroud)
Ram*_*rma 110
大多数答案中提到的-b开关要求您拥有计算机的管理权限.您并不需要提升权限来获取进程名称!
找到在端口号中运行的进程的pid(例如,8080)
netstat -ano | findStr "8080"
Run Code Online (Sandbox Code Playgroud)
通过pid查找进程名称
tasklist /fi "pid eq 2216"
Run Code Online (Sandbox Code Playgroud)
Nat*_*n24 76
如果运行以下命令,则可以获取更多信息:
netstat -aon | find /i "listening" |find "port"
Run Code Online (Sandbox Code Playgroud)
使用"查找"命令可以过滤结果.find/i"listening"将只显示"Listening"的端口.注意,您需要/ i忽略Case,否则您将键入find"LISTENING".| find"port"将结果限制为仅包含特定端口号的结果.注意,在此基础上它还将过滤在响应字符串中的任何位置具有端口号的结果.
Cyb*_*org 69
打开命令提示符窗口(以管理员身份)从"开始\搜索框"输入"cmd",然后右键单击"cmd.exe"并选择"以管理员身份运行"
输入以下文本,然后按Enter键.
netstat -abno
-a 显示所有连接和侦听端口.
-b 显示创建每个连接或侦听端口所涉及的可执行文件.在某些情况下,众所周知的可执行文件承载多个独立组件,在这些情况下,将显示创建连接或侦听端口所涉及的组件序列.在这种情况下,可执行文件名在底部的[]中,顶部是它调用的组件,依此类推,直到达到TCP/IP.请注意,此选项可能非常耗时,并且除非您具有足够的权限,否则将失败.
-n 以数字形式显示地址和端口号.
-o 显示与每个连接关联的拥有进程ID.
在"本地地址"下找到您正在侦听的端口
直接查看进程名称.
注意:在任务管理器下查找过程
请注意您正在查看的端口旁边的PID(进程标识符).
打开Windows任务管理器.
选择"进程"选项卡.
查找在步骤1中执行netstat时记下的PID.
如果没有看到PID列,请单击"查看/选择列".选择PID.
确保选中"显示所有用户的进程".
ROM*_*eer 50
仅使用一个命令:
for /f "tokens=5" %a in ('netstat -aon ^| findstr 9000') do tasklist /FI "PID eq %a"
Run Code Online (Sandbox Code Playgroud)
其中,9000
应该由你的端口号来代替.
该输出将包含类似这样:
Image Name PID Session Name Session# Mem Usage
========================= ======== ================ =========== ============
java.exe 5312 Services 0 130,768 K
Run Code Online (Sandbox Code Playgroud)
说明:
它遍历以下命令输出中的每一行:
netstat -aon | findstr 9000
Run Code Online (Sandbox Code Playgroud)从每一行开始,%a
提取PID(这里名称不重要)(PID是该行中的5
第th个元素)并传递给以下命令
tasklist /FI "PID eq 5312"
Run Code Online (Sandbox Code Playgroud)如果你想跳过的头部和返回命令提示符下,你可以使用:
echo off & (for /f "tokens=5" %a in ('netstat -aon ^| findstr 9000') do tasklist /NH /FI "PID eq %a") & echo on
Run Code Online (Sandbox Code Playgroud)
输出:
java.exe 5312 Services 0 130,768 K
Run Code Online (Sandbox Code Playgroud)
小智 44
首先,我们找到我们需要消除的特定任务的进程ID,以便获得端口空闲
输入
netstat -n -a -o
在Windows命令行提示符(cmd)中执行此命令后,选择pid,我认为最后一列假设这是3312
现在输入
taskkill/F/PID 3312
您现在可以通过键入netstat命令进行交叉检查.
注意:有时Windows不允许您直接在CMD上运行此命令,因此首先需要从start->命令提示符处执行此步骤(右键单击命令提示符,然后以管理员身份运行)
Mon*_*eed 27
要获取与每个连接关联的所有拥有进程ID的列表:
netstat -ao |find /i "listening"
Run Code Online (Sandbox Code Playgroud)
如果要杀死任何进程都有id并使用此命令,那么该端口将变为空闲
Taskkill /F /IM PID of a process
Run Code Online (Sandbox Code Playgroud)
Nis*_*ani 24
从windows中的pid获取端口号非常简单.
以下是步骤:
1)转到运行 - >键入cmd - >按回车键.
2)写下面的命令......
netstat -aon | findstr [port number]
Run Code Online (Sandbox Code Playgroud)
(注意:不要包括方括号.)
3)按下输入...
4)然后cmd将为您提供在该端口上运行的服务的详细信息以及pid.
5)打开任务管理器并点击服务选项卡,将pid与cmd的pid匹配,就是这样.
Oli*_*ida 22
如果你想有一个很好的概述,你可以使用这个:
Get-NetTCPConnection -State Listen | Select-Object -Property *, `
@{'Name' = 'ProcessName';'Expression'={(Get-Process -Id $_.OwningProcess).Name}} `
| select ProcessName,LocalAddress,LocalPort
Run Code Online (Sandbox Code Playgroud)
然后你会得到一个像这样的表:
ProcessName LocalAddress LocalPort
----------- ------------ ---------
services :: 49755
jhi_service ::1 49673
svchost :: 135
services 0.0.0.0 49755
spoolsv 0.0.0.0 49672
Run Code Online (Sandbox Code Playgroud)
对于UDP来说,它是:
Get-NetUDPEndpoint | Select-Object -Property *, `
@{'Name' = 'ProcessName';'Expression'={(Get-Process -Id $_.OwningProcess).Name}} `
| select ProcessName,LocalAddress,LocalPort
Run Code Online (Sandbox Code Playgroud)
小智 17
只需打开一个命令shell并输入:(说你的端口是123456)
netstat -a -n -o | find "123456"
Run Code Online (Sandbox Code Playgroud)
你会看到你需要的一切
标题是:
Proto Local Address Foreign Address State PID
TCP 0.0.0.0:37 0.0.0.0:0 LISTENING 1111
Run Code Online (Sandbox Code Playgroud)
这就像这里提到的那样
bah*_*rep 13
使用Windows 10或Windows Server 2016上的PowerShell 5,运行Get-NetTCPConnection
cmdlet.我想它应该适用于较旧的Windows版本.
由于Get-NetTCPConnection
某种原因,默认输出不包括进程ID,这有点令人困惑.但是,您始终可以通过格式化输出来获取它.您正在寻找的房产是OwningProcess
.
如果要查找正在侦听端口443的进程的ID,请运行以下命令:
PS C:\> Get-NetTCPConnection -LocalPort 443 | Format-List
LocalAddress : ::
LocalPort : 443
RemoteAddress : ::
RemotePort : 0
State : Listen
AppliedSetting :
OwningProcess : 4572
CreationTime : 02.11.2016 21:55:43
OffloadState : InHost
Run Code Online (Sandbox Code Playgroud)将输出格式化为具有您查找的属性的表:
PS C:\> Get-NetTCPConnection -LocalPort 443 | Format-Table -Property LocalAddress, LocalPort, State, OwningProcess
LocalAddress LocalPort State OwningProcess
------------ --------- ----- -------------
:: 443 Listen 4572
0.0.0.0 443 Listen 4572
Run Code Online (Sandbox Code Playgroud)如果要查找进程的名称,请运行以下命令:
PS C:\> Get-Process -Id (Get-NetTCPConnection -LocalPort 443).OwningProcess
Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName
------- ------ ----- ----- ------ -- -- -----------
143 15 3448 11024 4572 0 VisualSVNServer
Run Code Online (Sandbox Code Playgroud)Tal*_*mam 12
要找出哪个特定进程(PID)正在使用哪个端口:
netstat -anon | findstr 1234
Run Code Online (Sandbox Code Playgroud)
其中1234是您的过程的PID.[转到任务管理器 - >服务/进程选项卡以查找应用程序的PID]
Blu*_*uds 11
Netstat -a显示所有连接和侦听端口-b显示可执行文件-n stop resolve hostnames(数字形式)-o拥有进程
netstat -bano | findstr "7002"
netstat -ano > ano.txt
Run Code Online (Sandbox Code Playgroud)
Currports有助于搜索和过滤
Ton*_*roy 10
netstat -ao
并netstat -ab
告诉你应用程序,但如果你不是管理员,你会得到"请求的操作需要提升".
这不是理想的,但如果您使用sysinternals Process Explorer,您可以转到特定进程的属性并查看TCP选项卡,看看他们是否正在使用您感兴趣的端口.有点针和干草堆的东西,但也许它会帮助某人......
您还可以使用以下命令检查保留的端口。例如,Hyper-V保留了一些端口。
netsh int ipv4 show excludedportrange protocol=tcp
Run Code Online (Sandbox Code Playgroud)
小智 7
查找使用端口 8000 的 pid
netstat -aon | findstr '8000'
Run Code Online (Sandbox Code Playgroud)
在 Windows 中杀死该进程
taskkill /pid pid /f
Run Code Online (Sandbox Code Playgroud)
其中pid是您从第一个命令中获得的进程ID
小智 6
请遵循以下工具: - 从cmd: - C:\> netstat -anob
具有管理员权限.
http://technet.microsoft.com/en-us/sysinternals/bb896653 - Process Explorer
http://technet.microsoft.com/en-us/sysinternals/bb896645 - 流程转储
http://technet.microsoft.com/en-us/sysinternals/bb896644 - 端口监视器
全部来自sysinternals.com
如果您只是想知道每个进程下的进程运行和线程,我建议您了解一下wmic
.精彩的cmd线工具,为您提供比您所知更多的东西.
例如: -
c:\> wmic process list brief /every:5
Run Code Online (Sandbox Code Playgroud)
上面的命令将每5秒简要显示所有进程列表.要了解更多信息,您可以使用/?
Windows的命令,例如,
c:\> wmic /?
c:\> wmic process /?
c:\> wmic prcess list /?
Run Code Online (Sandbox Code Playgroud)
等等等等.:)
netstat -a -o显示在特定端口上运行的进程的PID.
请记住进程ID并转到任务管理器和服务或详细信息选项卡,然后结束具有相同PID的进程.
因此,您可以终止在Windows中的特定端口上运行的进程.
对于那些使用Powershell的人,请尝试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
Run Code Online (Sandbox Code Playgroud)
打开命令提示符-开始→ 运行 → cmd
或开始菜单→ 所有程序 → 附件 → 命令提示符。
类型
netstat -aon | findstr '[port_number]'
Run Code Online (Sandbox Code Playgroud)将替换为[port_number]
要检查并点击的实际端口号Enter。
类型
tasklist | findstr '[PID]'
Run Code Online (Sandbox Code Playgroud)将其替换为[PID]
上述步骤中的数字,然后按Enter。
使用PowerShell ... ...这将是您的朋友(将8080替换为您的端口号):
netstat -abno | Select-String -Context 0,1 -Pattern 8080
Run Code Online (Sandbox Code Playgroud)
样品输出
> TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 2920
[tnslsnr.exe]
> TCP [::]:8080 [::]:0 LISTENING 2920
[tnslsnr.exe]
Run Code Online (Sandbox Code Playgroud)
因此,在此示例中,tnslsnr.exe(OracleXE数据库)正在侦听端口8080。
快速说明
Select-String
用于过滤netstat
相关行的冗长输出。-Pattern
根据正则表达式测试每一行。-Context 0,1
对于每个模式匹配,将输出0条前线和1条尾线。一个对我有帮助的单线解决方案就是这个。只需将3000替换为您的端口即可:
$P = Get-Process -Id (Get-NetTCPConnection -LocalPort 3000).OwningProcess; kill $P.Id
Run Code Online (Sandbox Code Playgroud)