2012-04-16 07:57:40 +0000 2012-04-16 07:57:40 +0000
40
40

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

为了解决网络问题,我想查询一个给定网络适配器的真实网络 “速度",在Windows下打开网络连接的 "状态 "时可以看到。

然而我想通过命令行或者一个单独的小工具来查询,因为我需要对多个网络连接进行查询,而且不相信用户能正确获取信息。网卡的 "Speed/Duplux "设置总是 "Auto Negotiate",所以我无法从中判断出我将得到的 "Speed"。

答案 (4)

63
63
63
2012-04-16 08:18:22 +0000

试试这个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"),而不是每秒的比特数。

6
6
6
2016-06-04 00:36:35 +0000

从Indrek的回答来看。

wmic NIC where NetEnabled=true get Name, Speed

将在命令提示符下工作. 在PowerShell中使用。

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

(where子句和任何get属性(如Name和Speed),必须用双引号和逗号分隔)。

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

2
2
2
2015-04-16 16:15:45 +0000

我想为你的分享做贡献。如果你需要在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/
-1
-1
-1
2018-09-26 20:55:48 +0000

你也可以使用

cat /sys/class/net/enp6s0/speed

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

cat /sys/class/net/eth0/speed