विंडोज कमांड लाइन पर नेटवर्क कनेक्शन की गति (तेज या गीगाबिट ईथरनेट) का पता कैसे लगाएं


39

एक नेटवर्क समस्या का निवारण करने के लिए, मैं किसी दिए गए नेटवर्क एडाप्टर के लिए वास्तविक नेटवर्क "स्पीड" की पूछताछ करना चाहूंगा, जिसे विंडोज के तहत नेटवर्क कनेक्शन की "स्थिति" खोलते समय देखा जा सकता है: गति सेटिंग

हालाँकि, मैं इसे कमांड लाइन पर या एक छोटे, अलग उपकरण के साथ पूछताछ करना चाहता हूं क्योंकि मुझे कई नेटवर्क कनेक्शन के लिए यह अनुरोध करने की आवश्यकता है और उपयोगकर्ता को ठीक से जानकारी प्राप्त करने के लिए विश्वास नहीं करना चाहिए। नेटवर्क कार्ड "स्पीड / डुप्लक्स" सेटिंग हमेशा "ऑटो नेगोशिएट" होती है, इसलिए मैं इससे नहीं बता सकता कि मुझे "स्पीड" क्या मिलेगा।

जवाबों:


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
और अगर आपके पास sed wmic NIC है जहाँ NetEnabled = true get Name, Speed ​​| sed -es / 000000000 / Gbit / | sed -es / 000000 / b / Mbit /
जेमी कुक

1
उस WMI क्वेरी ने विंडोज 8 cmd में काम किया, लेकिन विंडोज 7 में, मुझे इसका उपयोग करना पड़ा: wmic NIC जहाँ "NetEnabled = 'true'" get "नाम, गति" ऐसा लगता है कि cmd शेल 'की व्याख्या करने की कोशिश कर रहा था' एक अंतरिक्ष या कमांड विभाजक के रूप में। PowerShell में यह समस्या भी है। मुझे सही रास्ते पर लाने के लिए धन्यवाद!
ड्यूड

मुझे जिस चीज की जरूरत थी! आप एक महान व्यक्ति हैं; +1 (PS वह बिट्स-प्रति सेकंड?)
कार्डिनल सिस्टम

@CardinalSystem हाँ, यह प्रति सेकंड बिट्स है।
Indrek

6

Indrek के उत्तर से:

wmic NIC जहां NetEnabled = true को नाम, गति मिलती है

कमांड प्रॉम्प्ट में काम करेंगे। PowerShell उपयोग के लिए:

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

(दॅ जहां खंड, और किसी भी प्राप्त विशेषता (नाम और स्पीड की तरह), डबल उद्धरण में संलग्न किया जाना चाहिए और अल्पविराम-प्रतिबंधित)।

// # 1 संपादित करें: अभिव्यक्ति का नाम प्राप्त करें, गति को दोहरे उद्धरण चिह्नों के एक सेट के भीतर संलग्न किया जाना है। हो सकता है कि अभिव्यक्तियों में उनके बीच जगह न हो


वह अजीब है। यह यहां उद्धरणों के बिना काम करता है।
डेविडपोस्टिल

@DavidPostill यह PS में GET अभिव्यक्ति को तोड़ता है (एक बार जब आप एक दूसरी वस्तु जोड़ते हैं)।
लुई

1
आह। की पुष्टि। आपको अपने उत्तर में यह जोड़ना चाहिए कि उद्धरण PowerShell के लिए आवश्यक हैं और किसी cmd शेल में आवश्यक नहीं हैं।
DavidPostill

2

मैं आपके हिस्से में योगदान देना चाहूंगा। अगर आपको विंडोज में सेड चलाने की जरूरत है, तो आप UnxUtils डाउनलोड कर सकते हैं, फिर sed.exe को c: \ Windows \ System32 में निकालें

फिर जब आप सुझाए गए सेड के साथ पाइप करते हैं, तो यह काम करता है। (विंडोज 8.1)

धन्यवाद।

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

\bsedCygwin में साथ काम नहीं करता है। क्या मेरे लिए काम करता है [^0]। या, पूरा होने के लिए:s/000000[^0]/Mbit/
pepoluan

सिवाय इसके कि 000000 के बाद पहला गैर-शून्य चरित्र निगल जाएगा, जो वह नहीं हो सकता जो आप चाहते हैं।
वोडिन

-1

आप भी उपयोग कर सकते हैं:

cat /sys/class/net/enp6s0/speed

या जब यह eth0 हो, तो अपनी गति कनेक्शन (100 या 1000) निर्धारित करने के लिए:

cat /sys/class/net/eth0/speed


तो उत्तर को क्यों नकारा गया है।?
ग्रीन ट्री

मुझे नहीं पता, यह अभी भी शून्य लगता है: एस। Ow mabye क्योंकि यह केवल Linux है ..
Melroy
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.