如何通过 Windows 命令行检测网络连接的速度(快速或千兆以太网)

如何通过 Windows 命令行检测网络连接的速度(快速或千兆以太网)

为了解决网络问题,我想查询给定网络适配器的实际网络“速度”,可以在 Windows 下打开网络连接的“状态”时看到: 速度设置

但是我想通过命令行或使用一个单独的小工具来查询,因为我需要为多个网络连接请求此信息,并且不相信用户能够正确获取信息。网卡“速度/双工”设置始终为“自动协商”,因此我无法从中知道我将获得什么“速度”。

答案1

尝试这个 WMI 查询:

wmic NIC where NetEnabled=true get Name,Speed

这应该会给你所有活动网络连接的速度。

编辑:正如已经指出的那样,此查询必须经过修改才能在 PowerShell 中工作(尽管它在 cmd.exe 中工作正常)。再说一次,在 PowerShell 中您根本不需要使用 WMI:

Get-NetAdapter | where Status -eq "Up" | select InterfaceDescription, LinkSpeed

作为奖励,这以一种美观、人性化、易于理解的格式(例如“1 Gbps”)给出了速度,而不是每秒的位数。

答案2

来自 Indrek 的回答:

wmic NIC 其中 NetEnabled=true 获取名称、速度

将在命令提示符中工作。对于 PowerShell 使用:

wmic NIC where "NetEnabled='true'" get "Name,Speed"

(这在哪里条款,以及任何得到属性(如 Name 和 Speed),必须用双引号括起来并用逗号分隔。

// 编辑 #1:GET 表达式 Name,Speed 必须用一组双引号括起来。Get 表达式之间不能有空格

答案3

我愿意为你的分享做出贡献。如果你需要在 Windows 中运行 sed,你可以下载 UnxUtils,然后将 sed.exe 解压到 c:\Windows\System32

然后,当您按照建议使用 sed 进行管道传输时,它就可以工作了。(Windows 8.1)

谢谢。

wmic NIC where NetEnabled=true get Name, Speed | sed -e s/000000000/Gbit/ | sed -e s/000000\b/Mbit/

答案4

您还可以使用:

cat /sys/class/net/enp6s0/speed

或者当它是 eth0 时,确定你的连接速度(100 或 1000):

cat /sys/class/net/eth0/speed

相关内容