自動化厨のプログラミングメモブログ │ CODE:LIFE

Python/ExcelVBA/JavaScript/Raspberry Piなどで色んなことを自動化

WindowsのSSIDごとにWi-Fi接続先の優先順位を設定するにはnetshコマンド

Wi-Fi接続して使っているときたまにあるのが「そっちじゃなくてこっちのアクセスポイントに接続して欲しいんですけど!」ってやつ。

過去の接続回数とかから自動的に優先順位を決めて接続しているらしいけどそれを設定画面上から操作する手段がない。

どうやるのか調べたところ netsh コマンドで出来るらしいのでメモ。

今の優先順位設定を確認する

これは実は設定画面で確認が可能。

Wi-Fiの設定画面の中にある「既知のネットワーク管理」を選択。

f:id:maru0014:20200918230432p:plain
既知のネットワークの管理

この画面では過去に接続したことがあるものを一覧で表示しており、並べ替え:優先順位 となっている状態で 上に来ているのがより優先順位の高いアクセスポイントということ。

この例だと「archer」と「archer_5G1」があって「archer」に優先して接続されることになります。

f:id:maru0014:20200918230455p:plain
上に表示されているSSIDが優先される

Wi-Fi接続先の優先順位変更方法

PowerShell または コマンドプロンプトを起動。以下のコマンドで設定変更可能です。

name には優先順位を変更したいSSID、 interface にはアダプター名(デフォルトだとWi-Fiとなっていることが多いかな?)。

netsh wlan set profileorder name={SSID} interface={インターフェース名} priority=1

今回の例で言うと、より高速な「archer_5G1」を優先にしたい場合このようになります。

netsh wlan set profileorder name=archer_5G1 interface=Wi-Fi priority=1

このように実行するとすぐに設定画面の順番も入れ替わっていることが確認できます。

f:id:maru0014:20200918230522p:plain
設定画面にも即反映されて分かりやすい

優先順位の値 priority は1から設定可能で数字の小さいものが優先されます。

同様のコマンドで数値を変えれば再変更も可能。

f:id:maru0014:20200918230548p:plain
同じコマンドで優先度を上書き可能

netshコマンドは廃止予定なの?

今回netsh コマンドについて調べていると「近々廃止される予定」とか「将来廃止になるのでPowerShellで実行した方が」とか書かれているところを複数見つけましたが、netsh に変わるPowerShellコマンドレットについては情報が見当たりませんでした。

特にMicrosoft Docsを見ても言及されていないし、あまり気にしなくても良いのかなと思ったり。

何か情報あれば教えていただけると嬉しいです。

参考になったページ

inakadaisuki.com

mylife8.net