Windows komut satırı üzerinden bir ağ bağlantısının hızı (hızlı veya gigabit ethernet) nasıl algılanır


40

Bir ağ sorununu gidermek için, belirli bir ağ bağdaştırıcısının gerçek ağ "hız" ını, Windows altında bir ağ bağlantısının "durumunu" açarken görebileceğim bir soru sormak istiyorum: Hız ayarı

Ancak bunu komut satırı üzerinden veya küçük, ayrı bir araçla sormak istiyorum, çünkü bunu birden fazla ağ bağlantısı için istemeliyim ve kullanıcının bilgileri doğru şekilde almasına güvenmemeliyim. Ağ kartı "Speed ​​/ Duplux" ayarı her zaman "Auto Negotiate" (Otomatik Pazarlık) ayarıdır, bu yüzden ne "Speed" alacağımı söyleyemem.

Yanıtlar:


61

Bu WMI sorgusunu deneyin:

wmic NIC where NetEnabled=true get Name, Speed

Bu size tüm aktif ağ bağlantılarının hızını vermelidir.

Düzenleme: belirtildiği gibi, bu sorgu PowerShell'de çalışacak şekilde değiştirilmelidir (cmd.exe'de düzgün çalışır). Sonra tekrar, PowerShell'de WMI kullanmanıza hiç gerek yok:

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

Bir bonus olarak, bu hızı saniyede bit sayısı yerine insan tarafından okunabilir bir formatta (örn. "1 Gbps") verir.


1
ve eğer sed wmic NIC'niz varsa NetEnabled = true olsun Ad, Hız | sed -es / 000000000 / Gbit / | sed -es / 000000 \ b / Mbit /
Jamie Cook

2
Bu WMI sorgusu Windows 8 cmd'de çalıştı, ancak Windows 7'de bunu kullanmak zorunda kaldım: "NetEnabled = 'true" "wmic NIC'i kullandım" Name, Speed ​​"cmd kabuğunun', ' boşluk veya komut ayırıcı olarak. PowerShell'de de bu sorun var. Beni doğru yola koyduğun için teşekkürler!
Dostum

Tam ihtiyacım olan şey! Sen harika bir insansın; +1 (PS, saniyedeki bit sayısı nedir?)
Kardinal Sistem

1
@CardinalSystem Evet, saniye başına bit.
Indrek

6

Indrek'in cevabından:

NetEnabled = true olsun Ad, Hız

Komut İstemi'nde çalışacaktır. PowerShell kullanımı için:

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

( Burada fıkra ve herhangi olsun özniteliği (Adı ve Speed gibi), çift tırnak içine ve virgülle ayrılmış olmalıdır).

// Düzenleme # 1: İfade Alın GET, Adı tek bir çift tırnak işareti içine alınmalıdır. İfadeleri al, aralarında boşluk olmayabilir


Bu garip. Burada tırnak olmadan çalışıyor.
DavidPostill

@DavidPostill PS'de GET ifadesini keser (ikinci bir öğe eklediğinizde).
Louis

1
Ah. Onaylandı. Cevabınıza, alıntıların PowerShell için gerekli olduğunu ve bir cmd kabuğunda gerekmediğini eklemelisiniz.
DavidPostill

2

Payınıza katkıda bulunmak isterim. Windows'ta sed çalıştırmanız gerekirse, UnxUtils'i indirebilir, daha sonra sed.exe'yi c: \ Windows \ System32 içine alabilirsiniz.

Sonra önerdiğin gibi sed ile pipetlediğinde, işe yarıyor. (Windows 8.1)

Teşekkürler.

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

\bsedCygwin'de çalışmaz . Benim için çalışan şey [^0]. Veya tamamlanacak:s/000000[^0]/Mbit/
pepoluan

Bunun dışında, 000000'den sonraki ilk sıfır olmayan karakteri yutacak, istediğiniz şey olmayabilir.
Wodin

-1

Ayrıca kullanabilirsiniz:

cat /sys/class/net/enp6s0/speed

Veya eth0 olduğunda, hız bağlantınızı belirlemek için (100 veya 1000):

cat /sys/class/net/eth0/speed


Öyleyse cevap neden indirildi?
Yeşil Ağaç

1
Bilmiyorum, burada hala sıfır görünüyor: S. Ow mabye çünkü bu sadece Linux ..
Melroy
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.