Um ein Netzwerkproblem zu beheben, möchte ich die tatsächliche Netzwerkgeschwindigkeit für einen bestimmten Netzwerkadapter abfragen, die angezeigt wird, wenn man den „Status“ einer Netzwerkverbindung unter Windows öffnet:
Ich möchte dies jedoch über die Befehlszeile oder mit einem kleinen, separaten Tool abfragen, da ich dies für mehrere Netzwerkverbindungen anfordern muss und nicht darauf vertraue, dass der Benutzer die Informationen ordnungsgemäß abruft. Die Einstellung „Geschwindigkeit/Duplux“ der Netzwerkkarte ist immer „Auto Negotiate“, daher kann ich daraus nicht ableiten, welche „Geschwindigkeit“ ich erhalten werde.
Antwort1
Versuchen Sie diese WMI-Abfrage:
wmic NIC where NetEnabled=true get Name,Speed
Damit sollten Sie die Geschwindigkeit aller aktiven Netzwerkverbindungen ermitteln können.
Bearbeiten: Wie bereits erwähnt, muss diese Abfrage geändert werden, damit sie in PowerShell funktioniert (in cmd.exe funktioniert sie jedoch einwandfrei). Andererseits müssen Sie in PowerShell WMI überhaupt nicht verwenden:
Get-NetAdapter | where Status -eq "Up" | select InterfaceDescription, LinkSpeed
Als Bonus wird dadurch die Geschwindigkeit in einem schönen, für Menschen lesbaren Format (z. B. „1 Gbit/s“) und nicht die Anzahl der Bits pro Sekunde angegeben.
Antwort2
Aus Indreks Antwort:
wmic NIC, wobei NetEnabled=true Name, Geschwindigkeit abruft
funktioniert in der Eingabeaufforderung. Für PowerShell verwenden Sie:
wmic NIC where "NetEnabled='true'" get "Name,Speed"
(DerWoKlausel und alleerhaltenAttribut (wie Name und Geschwindigkeit) muss in Anführungszeichen eingeschlossen und durch Kommas getrennt sein).
// Edit #1: GET-Ausdrücke Name,Speed müssen in einfache Anführungszeichen eingeschlossen werden. Zwischen GET-Ausdrücken dürfen keine Leerzeichen stehen.
Antwort3
Ich möchte gerne zu Ihrem Beitrag beitragen. Wenn Sie sed unter Windows ausführen müssen, können Sie UnxUtils herunterladen und dann sed.exe in c:\Windows\System32 extrahieren.
Wenn Sie dann wie vorgeschlagen eine Pipe mit sed verwenden, funktioniert es. (Windows 8.1)
Danke.
wmic NIC where NetEnabled=true get Name, Speed | sed -e s/000000000/Gbit/ | sed -e s/000000\b/Mbit/
Antwort4
Sie können auch Folgendes verwenden:
cat /sys/class/net/enp6s0/speed
Oder wenn es eth0 ist, um Ihre Verbindungsgeschwindigkeit zu bestimmen (100 oder 1000):
cat /sys/class/net/eth0/speed