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 秒あたりのビット数ではなく、人間が読みやすい形式 (例: 「1 Gbps」) で表示されます。

答え2

Indrek の回答から:

wmic NIC where NetEnabled=true の名前と速度を取得します

コマンドプロンプトでは動作します。PowerShellの場合は以下を使用します。

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

どこ条項、および得る属性 (名前や速度など) は、二重引用符で囲み、カンマで区切る必要があります。

// 編集 #1: GET 式の名前、速度は、1 組の二重引用符で囲む必要があります。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

関連情報