Windows コマンドプロンプト (PowerShell) を使用してインターネット速度をテストする方法

多くの人が、インターネット速度をリアルタイムで素早く確認するためにオンラインサービスを利用しています。しかし、接続品質を経時的に監視したり、自動レポートが必要な場合は、 OoklaのSpeedtestのようなCLIツールを使用すると画期的なツールになります。特に、ブラウザを操作せずにコマンドプロンプトやPowerShellでテストを実行したい場合はなおさらです。設定は、実行ファイルをダウンロードし、コマンドオプションを理解し、場合によってはテストスクリプトを作成する必要があるため、少し複雑になるかもしれません。しかし、一度設定してしまえば、安定した速度測定の取得、複数のサーバーのテスト、さらにはZabbixなどの監視システムとの統合など、驚くほど便利になります。そこで、Speedtestの設定方法とテスト実行方法を、ステップバイステップでわかりやすく解説します。

WindowsでSpeedtest CLIを使ってインターネット速度を測定する方法

Speedtest CLIツールをダウンロードしてセットアップする

  • これが出発点です。Windows版Speedtest CLIにアクセスして、最新の を入手してくださいspeedtest.exe。自動化したい場合は、 など、見つけやすい場所に保存することをお勧めしますC:\Tools\speedtest.exe
  • 解凍するか、speedtest.exe任意のディレクトリに移動してください。パスは後で必要になるので、必ず確認してください。

なぜわざわざ?手動のブラウザテストは簡単ですが、自動化されていません。CLIを使えば、テストをスクリプト化したり、スケジュールを設定したりできるので、監視や時間の節約に最適です。

コマンドプロンプトまたはPowerShellで基本的な速度テストを実行します

  • 管理者としてコマンド ラインを開くか、通常のユーザーとして開くかは、速度をテストするだけであればあまり重要ではありません。
  • (または実行ファイルを置いたディレクトリcd C:\Tools)に移動し、以下を実行します。
  • .\speedtest.exe

最寄りのサーバーとの簡単なチェックを行い、ダウンロード/アップロード速度とレイテンシを表示します。数秒かかる場合がありますが、非常に簡単です。設定によっては初回は失敗したり、時間がかかる場合がありますので、不安定な場合は再度実行してください。

より正確なテストやターゲットを絞ったテストのために特定のサーバーの場所を選択する方法

  • ISPのノード周辺でテストしたり、場所を比較したりしたい場合があります。利用可能なサーバーを一覧表示するには、次のコマンドを実行します。
  • .\speedtest.exe -L

このコマンドは、サーバーIDのリストと、場所とpingに関する情報を表示します。テスト対象のサーバーのID(例:11787)をコピーしてください。

  • 次を使用して、選択したサーバーでテストします。
  • .\speedtest.exe -s 11787

トラブルシューティングを行う場合や、通常のサーバーがボトルネックになっているかどうかを知りたい場合に非常に便利です。

結果を構造化された形式でエクスポートしてスクリプトやログに記録する

  • テスト結果をJSON(スクリプトでの解析に適しています)またはCSVで取得したい場合は、CLIがサポートしています。以下を実行してください。
  • .\speedtest.exe -s 12345 -f json

これはJSONオブジェクトを出力し、さらに処理することができます。例えば、ダウンロード速度とアップロード速度だけを人間が読める単位で取得してどこかに送信したい場合は、この出力を解析する必要があります。

PowerShellを使用してデータを自動化および抽出する

$speedtestCmd = & "C:\Tools\speedtest.exe" --accept-license -s 37149 -f json $speedtestResult = ConvertFrom-Json $speedtestCmd $result = [PSCustomObject]@{ Download = [math]::round($speedtestResult.download.bandwidth / 1MB, 2) * 8 Upload = [math]::round($speedtestResult.upload.bandwidth / 1MB, 2) * 8 } $result 

この小さなスクリプトは、テストを実行し、JSON を取得して値を抽出します。帯域幅はビット単位で返されるため、ビットを Mbps に変換します。100% 完璧ではありませんが、使い方に慣れればかなりうまく機能します。

設定によっては、最初の数回は失敗したり、ネットワークの混雑やDNSの速度が遅い場合に予期せぬ結果が出たりすることがあります。また、Windowsは設定にうるさい場合があるので、管理者として実行したり、ファイアウォールルールを調整したりする必要があるかもしれません。

スクリプトの作成が苦手な場合は、.\speedtest.exe定期的にスクリプトを実行して出力を記録するだけでも、スポット チェックや長期にわたる接続の安定性のログ記録に役立ちます。

言及する価値のあるもう 1 つのアプローチは、ローカル ネットワーク上で 2 台のマシン間の内部帯域幅をテストする必要がある場合、iperfなどのツールが役立ちますが、これは別の話です。