[玩转系统] 使用 PowerShell 检查打开(侦听)端口
作者:精品下载站 日期:2024-12-14 20:03:06 浏览:18 分类:玩电脑
使用 PowerShell 检查打开(侦听)端口
在 PowerShell 中,您可以使用 Test-NetConnection cmdlet 检查远程计算机上的端口是否可用(打开)。您可以使用此 cmdlet 检查远程服务器或网络服务的响应和可用性、测试 TCP 端口是否被防火墙阻止、检查 ICMP 可用性和路由。实际上,
Test-NetConnection
取代了几种流行的网络管理工具,例如
ping
,
tracert
,
telnet
,
pathping
、TCP端口扫描器等
使用 Test-NetConnection 检查打开的 TCP 端口
您可以使用 Test-NetConnection cmdlet 仅检查 TCP 端口。例如,要检查远程邮件服务器上的 TCP 端口 25(SMTP 协议)是否打开:
Test-NetConnection -ComputerName ny-msg01 -Port 25
注意。您可以使用 Test-NetConnection cmdlet 仅测试 TCP 端口连接。但是,您无法使用 cmdlet 检查远程 UDP 端口的可用性。
Test-NetConnection 命令的别名为 TNC。同一命令的简化版本如下所示:
TNC ny-msg01 -Port 25
我们看一下命令的结果:
ComputerName : ny-msg01
RemoteAddress : 10.20.1.7
RemotePort : 25
InterfaceAlias : CORP
SourceAddress : 10.20.1.79
PingSucceeded : True
PingReplyDetails (RTT) : 0 ms
TcpTestSucceeded : True
如您所见,cmdlet 将服务器名称解析为 IP 地址,检查 ICMP 响应(类似于
ping
),并检查来自 TCP 端口的响应(端口可用性)。指定的服务器通过 ICMP 响应(
PingSucceeded = True
)并且 TCP 端口 25 已打开(
RemotePort=25, TcpTestSucceeded= True
)。
注意。如果命令返回 PingSucceeded=False 和 TcpTestSucceeded= True,这很可能意味着 ICMP Echo 请求 (ping) 在远程计算机上被禁用。
如果您运行不带参数的Test-NetConnection,它将检查计算机是否已连接到互联网(检查网络的可用性)
internetbeacon.msedge.net
主持人)。
您可以添加 -InformationLevelDetailed 选项来在检查远程 TCP 端口时显示详细信息:
TNC 192.168.32.101 -Port 3389 -InformationLevel Detailed
该 cmdlet 有一个特殊参数 -CommonTCPPort,它允许您指定已知网络协议(HTTP、RDP、SMB、WINRM)的名称。
例如,要检查 HTTP Web 服务器的可用性,您可以使用以下命令:
Test-NetConnection -ComputerName a-d.site -CommonTCPPort HTTP
或者检查默认 RDP 端口 (TCP/3389) 的可用性:
Test-NetConnection ny-rds1 -CommonTCPPort RDP
您可以列出 Test-NetConnection cmdlet 返回的所有参数:
Test-NetConnection ny-man01 -port 445|Format-List *
如果您只需要查看端口是否可用,可以更快地检查:
TNC ny-msg1 -Port 25 -InformationLevel Quiet
该 cmdlet 返回
True
,这意味着远程 TCP 端口已打开。
提示。 在早期版本的 Windows PowerShell(版本 4.0 之前)中,您可以使用以下命令检查远程 TCP 端口的可用性:
(New-Object System.Net.Sockets.TcpClient).Connect('ny-msg01', 25)
您可以使用 Test-NetConnection cmdlet 通过使用 -TraceRoute 参数(类似于内置的
tracert
Windows 中的命令)。您可以使用-Hops参数限制路由检查期间的最大跳数。
Test-NetConnection ny-man01 -TraceRoute
Cmdlet 返回以毫秒为单位的网络访问延迟摘要(
PingReplyDetails (RTT): 41 ms
)以及通往目标主机途中的所有路由器的 IP 地址。
PowerShell:检查多个主机上的开放端口
您可以使用 PowerShell 检查多台远程计算机上特定端口的可用性。将主机名或 IP 地址列表保存在纯文本文件中,名称为
servers.txt
。
例如,您的任务是在服务器列表中查找 TCP/25 端口没有响应或关闭的主机:
Get-Content c:\PS\list_servers.txt | where { -NOT (Test-Netconnection $_ -Port 25 -InformationLevel Quiet)}| Format-Table -AutoSize
您可以使用简单的监视 PowerShell 脚本来检查远程服务器的可用性,并在任何服务器不可用时显示弹出通知。
例如,您可以在 AD 健康检查期间检查所有域控制器上基本服务的可用性(可以使用 Get-ADDomainController cmdlet 获取 DC 列表)。让我们检查 DC 上的以下服务(PortQry 工具中有类似的“域和信任”规则):
RPC - TCP/135
LDAP - TCP/389
LDAP - TCP/3268
DNS - TCP/53
Kerberos - TCP/88
中小企业-TCP/445
$Ports = "135","389","636","3268","53","88","445","3269", "80", "443"
$AllDCs = Get-ADDomainController -Filter * | Select-Object Hostname,Ipv4address
ForEach($DC in $AllDCs){
Foreach ($P in $Ports){
$check=Test-NetConnection $DC.Ipv4address -Port $P -WarningAction SilentlyContinue
If ($check.tcpTestSucceeded -eq $true)
{Write-Host $DC.hostname $P -ForegroundColor Green -Separator " => "}
else
{Write-Host $DC.hostname $P -Separator " => " -ForegroundColor Red}
}
}
该脚本会检查域控制器上指定的 TCP 端口,如果有任何端口不可用,则会以红色突出显示它们(您可以将此 PowerShell 脚本作为 Windows 服务运行)。
PowerShell 中的简单 TCP/IP 端口扫描器
您可以使用 PowerShell 实现简单的 IP 扫描器,扫描远程主机或 IP 子网以查找打开/关闭的 TCP 端口。
要扫描 192.168.1.100 和 192.168.1.150 之间的 IP 地址范围并显示打开端口 3389 的计算机:
foreach ($ip in 100..150) {Test-NetConnection -Port 3389 -InformationLevel "Detailed" 192.168.1.$ip}
扫描远程主机上的一系列 TCP 端口(从 1 到 1024):
foreach ($port in 1..1024) {If (($a=Test-NetConnection srvfs01 -Port $port -WarningAction SilentlyContinue).tcpTestSucceeded -eq $true){ "TCP port $port is open!"}}
如何使用 PowerShell 列出 Windows 上的开放端口
使用 Get-NetTCPConnection cmdlet 列出本地计算机上打开的端口(这相当于 PowerShell
NETSTAT
)。可以查看电脑上所有开放的TCP端口列表,如下:
Get-NetTcpConnection -State Listen | Select-Object LocalAddress,LocalPort| Sort-Object -Property LocalPort | Format-Table
您还可以使用 Get-NetTCPConnection cmdlet 列出活动的 TCP/IP 连接。
如果您想找出哪个程序(进程)正在侦听计算机上的特定端口,请使用以下命令(其中 443 是您要检查的端口号):
Get-Process -Id (Get-NetTCPConnection -LocalPort 443).OwningProcess | ft Id, ProcessName, UserName, Path
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[风口福利] 短视频红利新风口!炬焰创作者平台重磅激励来袭
[韩剧] 宝物岛/宝藏岛/金银岛(2025)【全16集】【朴炯植/悬疑】
[电影] 愤怒的牦牛 (2025) 国语中字 4k
[短剧合集] 2025年05月30日 精选+付费短剧推荐56部
[软件合集] 25年5月30日 精选软件26个
[软件合集] 25年5月29日 精选软件18个
[短剧合集] 2025年05月28日 精选+付费短剧推荐38部
[软件合集] 25年5月28日 精选软件37个
[软件合集] 25年5月27日 精选软件26个
[电影] 毒劫 Havoc(2025)【NF1080P超清】【汤姆·哈迪主演】
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[办公模版] office模板合集:包含word、Excel、PowerPoint、Access四类共计2000多个模板
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[音乐] 华语流行伤感情经典歌无损音乐合集(700多首)
[影视] 内地绝版高清录像带 [mpg]
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag