如何使用 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 属性中都显示了一条警告消息。


相关文章