使用 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

常见命令:

  1. 查看网络会话数
    • netstat:显示当前网络连接信息。
    • net session:显示当前计算机的网络会话。
    • query user:显示用户会话信息,通常用于查看远程桌面会话。

总结:

  • Network Sessions 或 Net Sessions 是网络会话的常见称呼。
  • Netstat 和 Net Session 是命令行工具中常用来查看和管理网络会话的命令。

PowerShell 中,您可以使用多个命令来查看当前的网络会话数和连接情况。以下是一些常用的 PowerShell 命令,用于查看和管理网络会话:

1. 查看当前网络连接

使用 Get-NetTCPConnection 可以查看系统的所有 TCP 连接:

powershellCopy Code
Get-NetTCPConnection

这将列出所有活动的 TCP 连接,包括本地和远程的 IP 地址以及端口号。可以通过 -State 参数进一步过滤,例如:

powershellCopy Code
Get-NetTCPConnection -State Established

此命令将仅显示已经建立连接的 TCP 会话。

2. 查看网络会话数量

您可以通过管道将连接数统计信息输出,例如:

powershellCopy Code
(Get-NetTCPConnection).Count

这将显示当前系统上的 TCP 网络连接数。

3. 查看所有网络会话(包括 UDP)

如果您还想查看 UDP 连接,您可以使用 Get-NetUDPEndpoint 来列出所有 UDP 会话:

powershellCopy Code
Get-NetUDPEndpoint

然后,您可以结合 Count 进行统计:

powershellCopy Code
(Get-NetUDPEndpoint).Count

4. 查看所有网络会话(包括 TCP 和 UDP)

如果您想查看所有的网络会话(包括 TCP 和 UDP),可以结合 Get-NetTCPConnectionGet-NetUDPEndpoint

powershellCopy Code
($tcp = Get-NetTCPConnection).Count + ($udp = Get-NetUDPEndpoint).Count

这将显示所有 TCP 和 UDP 连接的总数。

5. 查看远程桌面会话

如果您特别关注远程桌面会话(例如 RDP),可以使用以下命令:

powershellCopy Code
Get-WmiObject -Class Win32_ComputerSystem | Select-Object NumberOfUsers

这将显示当前系统上正在登录的用户数,间接反映了远程会话的数量。

6. 查看所有网络共享会话

如果您想查看所有共享的会话(例如通过 SMB),可以使用以下命令:

powershellCopy Code
Get-SmbSession

这将列出所有通过 SMB 协议的连接(共享会话)。

7. 使用 netstat 查看网络会话

虽然 netstat 是一个命令行工具,但您也可以在 PowerShell 中运行它来查看网络会话:

powershellCopy Code
netstat -an

这将列出所有网络连接和监听端口的详细信息。

总结:

  • 使用 Get-NetTCPConnection 和 Get-NetUDPEndpoint 查看 TCP 和 UDP 会话。
  • 使用 Get-SmbSession 查看 SMB 网络共享会话。
  • 通过 netstat 获取更详细的网络连接信息。

这些命令可以帮助您在 PowerShell 中查看和管理网络会话信息。


Get-NetTCPConnectionGet-NetUDPEndpoint 两个命令的对比表:

特性 Get-NetTCPConnection Get-NetUDPEndpoint
功能 获取系统中的所有 TCP 连接信息 获取系统中的所有 UDP 端点信息
协议类型 TCP (Transmission Control Protocol) UDP (User Datagram Protocol)
连接类型 提供与远程主机的连接状态、端口等详细信息 提供本地和远程端口信息,但不涉及连接的状态(UDP 是无连接的)
常见用途 - 网络连接状态监控 - UDP 服务的监控和分析
  - 排查 TCP 连接问题 - 分析和管理 UDP 端点
  - 性能监控和网络流量分析 - 诊断 UDP 应用程序的通信问题
连接状态 提供连接的状态信息,如 EstablishedListen 等状态 不提供连接状态,因为 UDP 是无连接的协议
支持的协议 TCP 协议 UDP 协议
用途示例 - 检查是否有大量的未关闭连接 - 检查系统中使用 UDP 协议的端点,如 DNS、DHCP 服务等
输出字段 - 本地地址和端口 - 本地地址和端口
  - 远程地址和端口 - 远程地址和端口
  - 连接状态(如 EstablishedTimeWait 等) - 仅提供端口信息,不包含连接状态

主要区别总结:

  1. 协议类型Get-NetTCPConnection 针对 TCP 连接,提供连接的详细状态信息;而 Get-NetUDPEndpoint 针对 UDP 端点,无法提供连接状态,因为 UDP 是无连接的。
  2. 连接状态:TCP 连接有明确的连接状态(如 EstablishedListen 等),而 UDP 端点没有连接状态。
  3. 用途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 配置的方方面面。
  • 适用于网络管理员在管理和故障排查网络时使用。

 

posted @ 2025-01-10 05:09  suv789  阅读(299)  评论(0)    收藏  举报