วิธีตรวจสอบความเร็ว (fast หรือ gigabit ethernet) ของการเชื่อมต่อเครือข่ายผ่านทางบรรทัดคำสั่งของ Windows


40

เมื่อต้องการแก้ไขปัญหาเครือข่ายฉันต้องการสอบถาม "ความเร็ว" เครือข่ายจริงสำหรับอะแดปเตอร์เครือข่ายที่กำหนดซึ่งสามารถเห็นได้เมื่อเปิด "สถานะ" ของการเชื่อมต่อเครือข่ายภายใต้ Windows: การตั้งค่าความเร็ว

อย่างไรก็ตามฉันต้องการสอบถามเรื่องนี้ผ่านทางบรรทัดคำสั่งหรือด้วยเครื่องมือแยกชิ้นเล็ก ๆ เพราะฉันต้องขอสิ่งนี้สำหรับการเชื่อมต่อเครือข่ายหลายครั้งและไม่เชื่อใจผู้ใช้ในการดึงข้อมูลอย่างถูกต้อง การตั้งค่า "Speed ​​/ Duplux" ของการ์ดเครือข่ายนั้นเป็น "Auto Negotiate" เสมอดังนั้นฉันจึงไม่สามารถบอกได้ว่า "Speed" ฉันจะได้รับอะไร

คำตอบ:


61

ลองใช้แบบสอบถาม 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") แทนที่จะเป็นจำนวนบิตต่อวินาที


1
และถ้าคุณมีปัญหากับ WIC NIC โดยที่ NetEnabled = true ได้รับชื่อ, ความเร็ว | sed -es / 000000000 / Gbit / | sed -es / 000000 \ b / Mbit /
Jamie Cook

2
แบบสอบถาม WMI นั้นทำงานใน Windows 8 cmd แต่ใน Windows 7 ฉันต้องใช้สิ่งนี้: wmic NIC โดยที่ "NetEnabled = 'true'" รับ "ชื่อ" ความเร็ว "ดูเหมือนว่า cmd shell พยายามตีความ ',' เป็นช่องว่างหรือตัวคั่นคำสั่ง PowerShell มีปัญหานี้เช่นกัน ขอบคุณที่วางฉันบนเส้นทางที่ถูกต้อง!
Dude

สิ่งที่ฉันต้องการ! คุณเป็นคนดีมาก n; +1 (PS คือบิตต่อวินาทีใช่ไหม)
ระบบพระคาร์ดินัล

1
@ CardinalSystem ใช่มันเป็นบิตต่อวินาที
Indrek

6

จากคำตอบของ Indrek:

wmic NIC โดยที่ NetEnabled = true รับชื่อ, ความเร็ว

จะทำงานใน Command Prompt สำหรับ PowerShell ใช้:

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

(ในที่ข้อและใด ๆ ที่ได้รับแอตทริบิวต์ (เช่นชื่อและที่ความเร็ว) ต้องอยู่ในเครื่องหมายคำพูดคู่และคั่นด้วยจุลภาค)

// แก้ไข # 1: ชื่อนิพจน์ GET, ความเร็วจะต้องอยู่ในเครื่องหมายคำพูดคู่เดียว รับนิพจน์อาจไม่มีช่องว่างระหว่างกัน


มันแปลกมาก มันทำงานโดยไม่มีคำพูดที่นี่
DavidPostill

@DavidPostill มันแบ่งการแสดงออกของ GET ใน PS (เมื่อคุณเพิ่มรายการที่สอง)
หลุยส์

1
อา ได้รับการยืนยัน คุณควรเพิ่มคำตอบของคุณว่าจำเป็นต้องใช้เครื่องหมายคำพูดสำหรับ PowerShell และไม่จำเป็นในเชลล์ cmd
DavidPostill

2

ฉันต้องการมีส่วนร่วมในการแบ่งปันของคุณ หากคุณต้องการเรียกใช้งาน sed ใน Windows คุณสามารถดาวน์โหลด UnxUtils แล้วแยก sed.exe ลงใน c: \ Windows \ System32

จากนั้นเมื่อคุณพูดจาดุดันเหมือนที่คุณแนะนำ (Windows 8.1)

ขอบคุณ

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

\bไม่ทำงานกับsedใน Cygwin [^0]สิ่งที่ทำงานสำหรับฉันก็คือ หรือจะเสร็จสมบูรณ์:s/000000[^0]/Mbit/
pepoluan

ยกเว้นว่าจะกลืนอักขระที่ไม่ใช่ศูนย์แรกหลัง 000000 ซึ่งอาจไม่ใช่สิ่งที่คุณต้องการ
Wodin

-1

คุณยังสามารถใช้:

cat /sys/class/net/enp6s0/speed

หรือเมื่อเป็น eth0 เพื่อกำหนดการเชื่อมต่อความเร็วของคุณ (100 หรือ 1,000):

cat /sys/class/net/eth0/speed


ดังนั้นทำไมคำตอบคือ downvoted
Green Tree

1
ฉันไม่รู้เหมือนกันว่ามันยังคงเป็นศูนย์อยู่ที่นี่: เอส เป็นเพราะเขาแค่ Linux เท่านั้น ..
Melroy
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.