如何透過 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"

(這在哪裡條款,以及任何得到屬性(如名稱和速度),必須用雙引號括起來並以逗號分隔)。

// 編輯#1:GET 表達式名稱、速度必須括在一組雙引號內。 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

相關內容