インターネット回線速度をWindows PCで定期的に自動計測する

Windows全般
スポンサーリンク

家のインターネット回線速度が22時頃に遅い気がするので、

毎日22時頃の回線速度のデータを調べたい

毎日手動で計測するのは面倒なので、Windows PCで自動的に計測できないかな。

測定結果はファイルに保存して、後で確認できるようにしたいんだ。

インターネット回線速度は、Speedtest などの速度計測サイトで確認できます。しかし、毎日決まった時刻の計測データを確認したい場合には向きません。

上の男性のケースでは、問題の22時頃とそれ以外の時間の回線速度データを一定期間毎日計測することで、実際に22時に遅くなっているかどうか数値で確かめることができます。また、回線事業者に問い合せる際に、測定したデータを提示すれば問題を認識してもらいやすいでしょう。

本記事ではWindows PCのタスクスケジューラと、測定用ツールを使って上の要件を実現する方法を紹介します。なおタスクスケジューラは1から設定すると煩雑で間違いやすいため、インポートしてすぐに使えるサンプルタスクも公開しています。

概要

この例では、タスクスケジューラと「SPEEDTEST CLIというツールを使います。

タスクスケジューラはWindows標準のツールです。「SPEEDTEST CLI」は、回線速度計測サービスなどを提供するOokla社が無償で公開しているツールです。

タスクスケジューラのタスクで、毎日指定時刻にSPEEDTEST CLIでインターネットの回線速度を計測し、結果をテキストファイルとして保存します(下図はその例)。後述のサンプルでは、毎日12時、19時、22時の3回計測します(PCにログオンしている場合のみ)。

サンプルタスクのダウンロード

タスクスケジューラの設定を1から行うと面倒なので、サンプルタスクファイルを用意しました。以下からダウンロードできます(要ZIP解凍)。インポート方法などは、次項で説明します。

サンプルタスクの条件
  • SPEEDTEST CLIを使って次のタイミングで速度計測を行う
    • 毎日 12:0019:0022:00 (1日3回)
    • 上記時刻にPCの電源がOFFの場合、またはログオンしていない場合は実行しない
  • 事前にSPEEDTEST CLIをダウンロードし、実行ファイルを C:\SpeedTest\speedtest.exe として配置している必要あり
  • 測定結果はテキストファイルとして C:\SpeedTest に保存する。測定日時ごとに1つのファイルとし、実行日時をファイル名に記録する(例:result_20230930-220000.txt)
  • 速度計測に使うサーバーは自動選択とする(固定しない)
  • その他の詳細条件
    • ログオン中のWindowsユーザー権限で実行(ログオフ状態では実行しない)
    • 指定タイミングにスリープ中の場合計測はしない(スリープの自動解除はしない)
    • 電源コンセント接続状態は不問(AC電源/バッテリモードのどちらでも実行)
測定結果をグラフにするには

上記のサンプルでは1回の測定ごとに1ファイルとなるので、測定結果を時系列で並べたい場合や、グラフで表したい場合には向きません。

それらの方法は、本記事「[別方式]測定結果をCSV形式で保存する」で補足しています。ただし、判読性が悪く、データ加工の手間がかかるという難点があります。

設定方法

SPEEDTEST CLIのダウンロードと配置

前項のサンプルタスクは単体では動作せず、SPEEDTEST CLIが必要です。

SPEEDTEST CLIは、公式のダウンロードページにアクセスし、以下の箇所をクリックしてWindows版をダウンロードします。

ダウンロードしたらZIPファイルを解凍します。サンプルタスクではSPEEDTEST CLIのパスを C:\SpeedTest\speedtest.exe と定義しているので、解凍したフォルダをCドライブ直下に置き、フォルダ名を「SpeedTest」に変更します。下の階層になるように配置して下さい。

別のパスに置く場合は、タスク設定の編集が必要

C:\SpeedTest\speedtest.exe と異なるパスに配置することも可能です。その場合、後述のタスクスケジューラのタスク設定でもそれに合わせて編集する必要があります。

SPEEDTEST CLIのライセンス同意(重要)

SPEEDTEST CLIを使うには初回のみライセンス同意の操作が必要です。前項で配置した speedtest.exe を実行すると下図の画面が表示されるので、「YES」と入力しEnterキーを入力します。

その後、初回の回線速度チェックが実行され、自動的にウィンドウが閉じられます。この操作は1回のみ行えばOKです。

この操作をしないと、後述のタスク設定を行っても結果が出力されません

タスクのインポート

ここからはタスクスケジューラ側の設定です。まず「サンプルタスクのダウンロード」でダウンロードしたファイルをデスクトップなどの任意の場所に解凍します。

次に、タスクスケジューラを起動します(起動方法)。

タスクスケジューラの画面で、右側の操作ウィンドウで「タスクのインポート」をクリックします。(もしくは、メニューの[操作]>[タスクのインポート]でもOK)

ダイアログで、先ほど解凍したXMLファイルを指定します。

下の画面で、必要に応じて赤枠部分のタスクの名前を分かりやすいように設定します(そのままでもいいですが、名前だけは何故か後で変更できません)。ここで実行タイミングなどを修正してもいいですが、次項で改めて解説しますので、とりあえず「OK」ボタンを押します。

下のように「タスクスケジューラ ライブラリ」という位置に、新しいタスクが追加されれば、タスクのインポートは完了です。なお、タスクが表示されていない場合、メニューの[操作]>[最新の情報に更新]などで、表示を更新して下さい。

「作成者」は気にしないで

サンプルファイルをインポートすると、タスクの「作成者」が「COMPUTER1\user1」などと表示されます。これは変更できませんが、動作に影響はありません。

測定タイミングの変更

インポートしたタスクの測定タイミングを変更するには、タスクスケジューラの「タスクスケジューラライブラリ」に追加されているタスク(表示されていない場合は、画面表示を更新)を右クリックして「プロパティ」を選択します。

サンプルでは、毎日12:00、19:00、22:00の3回測定するよう設定されています。一般的にインターネット回線速度は時刻によって変動するためです。特に22時頃はトラフィックが多くなり遅くなりやすいと言われています。

測定タイミングを変更したい場合は、[トリガー]タブを表示します。変更したい時刻の行をダブルクリックします。

詳細設定画面が開きます。下の赤枠の部分を編集すればOKです。

また、例えば「12:00の測定はいらない」という場合は、トリガーの一覧から12:00の行を選択して「削除」ボタンで消せばOKです。反対に測定タイミングを増やすには、「新規」ボタンから同様のトリガーを追加します。

テスト実行

タスクが正しく実行されるかを確認するには、下のようにタスクを右クリックして「実行する」を選び、テスト実行してみます。

設定に問題がなければ、数十秒程度した後、C:\SpeedTest フォルダに下記のような測定結果のファイルが出力されます。

ファイルを開くと、次のような測定結果が記載されています。下のように、ダウンロード速度やレイテンシを見ると良いでしょう。

ファイルが空になる場合はライセンス同意を

ファイルは出力されるものの中身が空(0バイト)になる場合は、SPEEDTEST CLIのライセンス同意を行っていない可能性が高いです。「SPEEDTEST CLIのライセンス同意」を参照して、初回のライセンス同意を行ってから再実行してみて下さい。

複数回実行すると、測定日時ごとの結果ファイルが増えていきます。自動削除はされないので、不要なものは手動で削除して下さい(PCのストレージを圧迫するようなサイズではありませんが)。

サンプルタスクの中身

参考までに、前項のタスクスケジューラのサンプルタスクの設定は次のようになっています。ダウンロードしたXMLを使わずに手動でタスク設定する場合は、参考にして下さい。

プログラム/スクリプト:
powershell

引数:
./speedtest.exe | Out-File ('result_' + (Get-Date -Format 'yyyyMMdd-HHmmss') + '.txt')

オプション:
C:\SpeedTest

[別方式]測定結果をCSV形式で保存する

ここからは参考情報です。上で紹介したサンプルタスクは、1回の測定ごとに1ファイルとして出力されるので、結果を時系列に並べたり、グラフにするには向きません。

難点はありますが、結果をCSVファイルとして蓄積することも一応可能です。参考までに以下のサンプルタスクをダウンロードし、前項と同じ要領で設定することで使えます。

この方式での測定結果はresult.csvというCSVファイルに蓄積されます。イメージは次のようになります。

CSV形式の補足
  • 測定結果にはCSVのヘッダーが出力されません。そのため、付属のresult.csvをあらかじめC:\SpeedTest に配置しておきます。あるいは、result.csvの内容を測定結果の1行目に手動でコピーしてください。
  • 上の図に記載の通り、ダウンロード・アップロード速度は「Mbps」ではなく「バイト/秒」で表示されます。「Mbps」にするには、125,000で割って変換する必要があります。
  • 測定結果のCSVファイルをExcelで開くと、項目がセルで区切られないようです。その場合、Excelで全行を選択した状態でメニューから「区切り位置」をクリックし、区切り位置指定ウィザードで調整します。

参考:タスクスケジューラ関連記事

そのほか、タスクスケジューラの使用例や、起こりがちなトラブルの対処方法、その他知っておくと便利なことなどを以下の記事にまとめています。併せてご覧下さい。

おわりに

今回の記事は以上です。

当サイトでは、ITインフラ関連の知識やノウハウをメインに紹介しています。下の関連記事にも役立つ情報があるかもしれませんので、ぜひご覧下さい。

また、知識やノウハウを効率的に学ぶ方法として、Udemy の「ながらセミナーもおすすめです。三日坊主にならず、普段の生活の中でスキルアップする方法です。これについては下の記事で紹介していますので、良ければご覧下さい。

もとだて
もとだて

最後まで読んでいただき、ありがとうございました。

フィードバック

コメント

タイトルとURLをコピーしました