如何使用 PowerShell 检查远程端口是否打开?
powershellmicrosoft technologiessoftware & coding更新于 2026/2/11 6:52:17
以前我们使用 telnet 客户端来检查远程端口连接,实际上,我们仍然使用 cmd 和 PowerShell 来使用它,但此功能并非操作系统默认安装的,而且一些公司对安装包括 telnet 在内的新功能有所限制。
我们可以利用 PowerShell 来测试远程端口连接,而无需安装 telnet,只需使用 Test-NetConnection 命令即可。此命令对于其他诊断也非常有用,但我们这里重点介绍远程端口检查。
要检查远程端口是否打开,我们可以使用 Test-NetConnection 命令,该命令需要 -ComputerName 参数和 -Port 参数来检查远程端口状态。
Test-NetConnection -ComputerName Test1-Win2k12 -Port 80
输出
ComputerName : Test1-Win2k12 RemoteAddress : 192.168.0.107 RemotePort : 80 InterfaceAlias : Ethernet0 SourceAddress : : 192.168.0.106 TcpTestSucceeded : True
以上示例将检查端口号 80 的连接性
远程服务器 Test1-Win2k12 上的连接性。您可以看到 TcpTestSucceeded 属性为 true,因此端口已打开。下面再举一个 WInRM https 端口 5986 的示例。
Test-NetConnection -ComputerName Test1-Win2k12 -Port 5986
输出
WARNING: TCP connect to Test1-Win2k12:5986 failed ComputerName : Test1-Win2k12 RemoteAddress : 192.168.0.107 RemotePort : 5986 InterfaceAlias : Ethernet0 SourceAddress : 192.168.0.106 PingSucceeded : True PingReplyDetails (RTT) : 0 ms TcpTestSucceeded : False
您可以看到远程服务器上的 WinRM SSL 端口未打开,并且第一行以及 TcpTestSucceeded 属性中都显示了一条警告消息。

