使用 Get-NetTCPConnection 和 Get-NetUDPEndpoint 查看 TCP 和 UDP 会话。 使用 Get-SmbSession 查看 SMB 网络共享会话。 通过 netstat 获取更详细的网络连接信息。 这些命令可以帮助您在 PowerShell 中查看和管理网络会话信息。
Get-NetTCPConnection (NetTCPIP) | Microsoft Learn
Get-NetUDPEndpoint (NetTCPIP) | Microsoft Learn
NetTCPIP Module | Microsoft Learn
在 Windows 系统中,网络会话数 通常指的是与计算机建立连接的网络会话的数量。相关的英文全称和简称如下:
| 英文全称 | 简称 |
|---|---|
| Network Sessions | Net Sessions |
| Network Connections | Net Connections |
| Active Network Sessions | Active Net Sessions |
| Remote Desktop Sessions | RDS (Remote Desktop Services) |
| TCP/IP Network Sessions | TCP Sessions |
| User Sessions | User Sessions |
| Session Control | Session Ctrl |
常见命令:
- 查看网络会话数
netstat:显示当前网络连接信息。net session:显示当前计算机的网络会话。query user:显示用户会话信息,通常用于查看远程桌面会话。
总结:
- Network Sessions 或 Net Sessions 是网络会话的常见称呼。
- Netstat 和 Net Session 是命令行工具中常用来查看和管理网络会话的命令。
在 PowerShell 中,您可以使用多个命令来查看当前的网络会话数和连接情况。以下是一些常用的 PowerShell 命令,用于查看和管理网络会话:
1. 查看当前网络连接
使用 Get-NetTCPConnection 可以查看系统的所有 TCP 连接:
Get-NetTCPConnection
这将列出所有活动的 TCP 连接,包括本地和远程的 IP 地址以及端口号。可以通过 -State 参数进一步过滤,例如:
Get-NetTCPConnection -State Established
此命令将仅显示已经建立连接的 TCP 会话。
2. 查看网络会话数量
您可以通过管道将连接数统计信息输出,例如:
(Get-NetTCPConnection).Count
这将显示当前系统上的 TCP 网络连接数。
3. 查看所有网络会话(包括 UDP)
如果您还想查看 UDP 连接,您可以使用 Get-NetUDPEndpoint 来列出所有 UDP 会话:
Get-NetUDPEndpoint
然后,您可以结合 Count 进行统计:
(Get-NetUDPEndpoint).Count
4. 查看所有网络会话(包括 TCP 和 UDP)
如果您想查看所有的网络会话(包括 TCP 和 UDP),可以结合 Get-NetTCPConnection 和 Get-NetUDPEndpoint:
($tcp = Get-NetTCPConnection).Count + ($udp = Get-NetUDPEndpoint).Count
这将显示所有 TCP 和 UDP 连接的总数。
5. 查看远程桌面会话
如果您特别关注远程桌面会话(例如 RDP),可以使用以下命令:
Get-WmiObject -Class Win32_ComputerSystem | Select-Object NumberOfUsers
这将显示当前系统上正在登录的用户数,间接反映了远程会话的数量。
6. 查看所有网络共享会话
如果您想查看所有共享的会话(例如通过 SMB),可以使用以下命令:
Get-SmbSession
这将列出所有通过 SMB 协议的连接(共享会话)。
7. 使用 netstat 查看网络会话
虽然 netstat 是一个命令行工具,但您也可以在 PowerShell 中运行它来查看网络会话:
netstat -an
这将列出所有网络连接和监听端口的详细信息。
总结:
- 使用
Get-NetTCPConnection和Get-NetUDPEndpoint查看 TCP 和 UDP 会话。 - 使用
Get-SmbSession查看 SMB 网络共享会话。 - 通过
netstat获取更详细的网络连接信息。
这些命令可以帮助您在 PowerShell 中查看和管理网络会话信息。
Get-NetTCPConnection 与 Get-NetUDPEndpoint 两个命令的对比表:
| 特性 | Get-NetTCPConnection | Get-NetUDPEndpoint |
|---|---|---|
| 功能 | 获取系统中的所有 TCP 连接信息 | 获取系统中的所有 UDP 端点信息 |
| 协议类型 | TCP (Transmission Control Protocol) | UDP (User Datagram Protocol) |
| 连接类型 | 提供与远程主机的连接状态、端口等详细信息 | 提供本地和远程端口信息,但不涉及连接的状态(UDP 是无连接的) |
| 常见用途 | - 网络连接状态监控 | - UDP 服务的监控和分析 |
| - 排查 TCP 连接问题 | - 分析和管理 UDP 端点 | |
| - 性能监控和网络流量分析 | - 诊断 UDP 应用程序的通信问题 | |
| 连接状态 | 提供连接的状态信息,如 Established、Listen 等状态 |
不提供连接状态,因为 UDP 是无连接的协议 |
| 支持的协议 | TCP 协议 | UDP 协议 |
| 用途示例 | - 检查是否有大量的未关闭连接 | - 检查系统中使用 UDP 协议的端点,如 DNS、DHCP 服务等 |
| 输出字段 | - 本地地址和端口 | - 本地地址和端口 |
| - 远程地址和端口 | - 远程地址和端口 | |
- 连接状态(如 Established、TimeWait 等) |
- 仅提供端口信息,不包含连接状态 |
主要区别总结:
- 协议类型:
Get-NetTCPConnection针对 TCP 连接,提供连接的详细状态信息;而Get-NetUDPEndpoint针对 UDP 端点,无法提供连接状态,因为 UDP 是无连接的。 - 连接状态:TCP 连接有明确的连接状态(如
Established、Listen等),而 UDP 端点没有连接状态。 - 用途:
Get-NetTCPConnection主要用于监控 TCP 连接的健康状况和排查问题,Get-NetUDPEndpoint主要用于监控使用 UDP 协议的服务,尤其是那些实时通信和无连接协议的应用。
这个对比表可以帮助你更好地理解两个命令的使用场景和区别。
这两个命令是 PowerShell 命令,分别用于统计当前系统中 TCP 连接和 UDP 端点的数量。它们可以在 Windows 操作系统的 PowerShell 环境中使用,用来监控和诊断网络连接的状态。
1. Get-NetTCPConnection | Measure-Object | Select-Object -ExpandProperty Count
-
用途:此命令用于获取系统中的所有 TCP 连接数量。
-
命令详细解释:
Get-NetTCPConnection:列出系统中所有的 TCP 连接,包括本地端口、远程端口、连接状态等信息。Measure-Object:用于计算对象的数量、总和、平均值等统计数据。它会统计传入的对象数量。Select-Object -ExpandProperty Count:提取Measure-Object输出结果中的Count属性,即连接数量。
-
应用场景:
- 网络故障排查:帮助网络管理员快速了解系统的 TCP 连接数量,判断是否有异常连接,或是否存在大量未关闭的连接。
- 性能监控:系统性能和网络性能的监控时,通过查看连接数量,评估网络流量和负载。
- 安全性审计:可以检查是否有不正常的 TCP 连接,可能存在恶意活动或安全漏洞。
2. Get-NetUDPEndpoint | Measure-Object | Select-Object -ExpandProperty Count
-
用途:此命令用于获取系统中的所有 UDP 端点数量。
-
命令详细解释:
Get-NetUDPEndpoint:列出系统中所有的 UDP 端点信息,包括本地端口、远程端口等数据。Measure-Object:对传入的 UDP 端点对象进行统计,计算数量。Select-Object -ExpandProperty Count:提取Measure-Object输出中的Count属性,显示 UDP 端点的数量。
-
应用场景:
- 监控服务状态:UDP 通常用于实时通信协议,如 DNS、DHCP 和视频流等。此命令可以帮助管理员监控这些服务的端点数量。
- 网络分析:网络管理员可以通过查看 UDP 端点的数量,分析系统中哪些应用程序正在使用 UDP 协议,帮助进行性能优化或故障排查。
- 安全监控:由于 UDP 无连接特性,它较容易被滥用来进行攻击,如 DoS 攻击。此命令可以帮助检测是否有异常的 UDP 端点,及时识别潜在的安全威胁。
总结:
- 这两个命令都利用
Measure-Object来统计网络连接的数量,分别统计 TCP 连接和 UDP 端点的数量。 - 通过这些命令,系统管理员可以更好地了解网络连接的状态,进行故障排查、性能监控和安全审计。
NetTCPIP 模块中的 cmdlet 描述及语法的中文翻译表格:
| Cmdlet | 描述 |
|---|---|
| Find-NetRoute | 查找最佳的本地 IP 地址和通往远程地址的最佳路由。 |
| Get-NetCompartment | 获取协议栈中的所有网络区隔。 |
| Get-NetIPAddress | 获取 IP 地址配置。 |
| Get-NetIPConfiguration | 获取 IP 网络配置。 |
| Get-NetIPInterface | 获取 IP 接口信息。 |
| Get-NetIPv4Protocol | 获取 IPv4 协议的配置。 |
| Get-NetIPv6Protocol | 获取 IPv6 协议的配置。 |
| Get-NetNeighbor | 获取邻居缓存条目。 |
| Get-NetOffloadGlobalSetting | 获取全局 TCP/IP 卸载设置。 |
| Get-NetPrefixPolicy | 获取前缀策略。 |
| Get-NetRoute | 获取来自 IP 路由表的 IP 路由信息。 |
| Get-NetTCPConnection | 获取 TCP 连接信息。 |
| Get-NetTCPSetting | 获取 TCP 设置和配置信息。 |
| Get-NetTransportFilter | 获取传输过滤器信息。 |
| Get-NetUDPEndpoint | 获取当前 UDP 端点统计信息。 |
| Get-NetUDPSetting | 获取 UDP 设置。 |
| New-NetIPAddress | 创建和配置一个 IP 地址。 |
| New-NetNeighbor | 创建一个邻居缓存条目。 |
| New-NetRoute | 在 IP 路由表中创建一个路由。 |
| New-NetTransportFilter | 创建一个传输过滤器。 |
| Remove-NetIPAddress | 移除一个 IP 地址及其配置。 |
| Remove-NetNeighbor | 移除邻居缓存条目。 |
| Remove-NetRoute | 移除 IP 路由表中的 IP 路由。 |
| Remove-NetTransportFilter | 移除传输过滤器。 |
| Set-NetIPAddress | 修改 IP 地址的配置。 |
| Set-NetIPInterface | 修改 IP 接口的配置。 |
| Set-NetIPv4Protocol | 修改 IPv4 协议配置的信息。 |
| Set-NetIPv6Protocol | 修改 IPv6 协议的配置。 |
| Set-NetNeighbor | 修改邻居缓存条目。 |
| Set-NetOffloadGlobalSetting | 修改全局 TCP/IP 卸载设置。 |
| Set-NetRoute | 修改 IP 路由表中的一条或多条路由。 |
| Set-NetTCPSetting | 修改 TCP 设置。 |
| Set-NetUDPSetting | 修改 UDP 设置。 |
| Test-NetConnection | 显示连接的诊断信息。 |
总结:
- 这些 cmdlet 都属于
NetTCPIP模块,用于配置和管理与 TCP/IP 协议相关的网络设置,包括 IP 地址、路由、连接、协议设置等。 - 各个命令的功能从查询、修改到创建和删除网络配置,覆盖了 TCP、UDP 协议和 IP 配置的方方面面。
- 适用于网络管理员在管理和故障排查网络时使用。

浙公网安备 33010602011771号