netshコマンドを使ってコマンドラインで無線LAN(Wi-Fi)の操作を行う【Windows 10/11】:Tech TIPS
無線LANの設定は、[設定]アプリなどのグラフィカルユーザーインタフェース(GUI)で行えるが、実は優先順位など設定できない項目もある。こうした項目を設定するには、netshコマンドを使う必要がある。その方法を紹介しよう。
対象:Windows 10/11
netshコマンドを使ってコマンドラインで無線LANの操作を行う
無線LAN(Wi-Fi)の設定は、[Windowsの設定](Windows 10)/[設定](Windows 11)の[ネットワークとインターネット]画面で行える。しかし、接続の優先順位などの一部の項目は、この設定画面で行うことはできない。こうした項目を設定するには、netshコマンドを使う必要がある。その方法を紹介する。
セキュリティのためSSIDを非公開に設定しているような場合、Windows 10/11の無線LAN(Wi-Fi)の設定を通知領域(インジケーター領域)のネットワーク設定や[設定]アプリなどで行うのは意外と面倒だ。
また、複数のアクセスポイントがある場合、接続したいアクセスポイントとは異なるアクセスポイントに自動でつながるのを修正したいということもあるだろう。このような場合、[設定]アプリでは変更できない。
このような場合、コマンドプロンプトを開き、netshコマンドを使うとよい。そこで、本Tech TIPSではnetshコマンドで、主な無線LANの設定を行う方法を紹介する。
netshコマンドを実行するには
netshコマンドは、Windowsターミナルかコマンドプロンプトを管理者権限で開いて実行する。
Windowsターミナルの場合、[Windows]+[R]キーで[ファイル名を指定して実行]ダイアログを開き、「wt」と入力、[Ctrl]+[Shift]+[Enter]キーを押して、管理者権限で起動すればよい。Windows 11ならば、[Windows]+[X]キー(もしくは[スタート]ボタンの右クリック)でクイックスタートメニューを開き、[ターミナル(管理者)]を選択してもよい。
netshコマンドを使うには
netshコマンドを使うには、Windowsターミナルかコマンドプロンプトを起動する必要がある。[Windows]+[X]キー(もしくは[スタート]ボタンの右クリック)でクイックスタートメニューから起動することもできるが、[ファイル名を指定して実行]ダイアログを使うという方法もある。
コマンドプロンプトの場合、同様に[Windows]+[R]キーで[ファイル名を指定して実行]ダイアログを開き、「cmd」と入力、[Ctrl]+[Shift]+[Enter]キーを押す。Windows 10ならば[Windows]+[X]キー(もしくは[スタート]ボタンの右クリック)でクイックスタートメニューを開き、[コマンドプロンプト(管理者)]を選択してもよい。
ここではWindowsターミナルを起動したとして説明する。なお、netshコマンドは、WindowsターミナルのコマンドプロンプトでもPowerShellでも実行可能だ。
接続している無線LANを確認する
現在、PCが接続している無線LANの情報を表示するには、以下のコマンドを実行する。
netsh wlan show interface
すると、以下のように、表示される。
これを見ると、使用している無線LANのチャネルや送受信の速度などが確認できる。複数のアクセスポイントがある場合、接続先を変更して実行すれば、どちらが高い性能なのかが確認できるだろう。
なお、有線LANで接続していたり、無線LANを搭載していなかったりする場合、「ホストされたネットワークの状態: 利用不可」や「ワイヤレス自動構成サービス (wlansvc) が実行されていません。」といったように表示される。
接続したことのあるSSIDの一覧を表示する
過去に接続し、SSIDやパスワードなどの設定(プロファイル)が保存されている場合、そのプロファイルの一覧を以下のコマンドで表示できる。
netsh wlan show profiles
このプロファイル名を使って、パスワードを調べたり、プロファイルの優先順位を変更したりするので、netshコマンドで無線LANを操作する際は、「show profiles」を実行して、プロファイルの一覧を取得しておくとよい。
異なるプロファイル(SSID)に接続する
自席に戻っても、会議室のアクセスポイントに接続したままになっており、接続先を変更したい、といったような場合、以下のコマンドを使って、プロファイル(SSID)を自席に近いアクセスポイントのものに切り替えるとよい。
netsh wlan connect name="<プロファイル名>"
「接続要求が正常に完了しました。」と表示されれば、指定したSSIDに接続が切り替わるはずだ。切り替えまで少し時間がかかることがあるので、その間、ネットワークが切断される点に注意してほしい。
なお、SSIDを非公開(ブロードキャストしない)に設定している場合、事前に後述の「SSIDの非表示設定に対応する」の設定を行っておく必要があるので注意してほしい。
異なるプロファイルに接続する
別のSSIDに接続したい場合、このコマンドを実行する。「接続要求が正常に完了しました」と表示されれば、切り替えに成功している。しばらくすると、切り替えが完了し、インターネットへの接続が復帰するはずだ。
不要なプロファイルを削除する
公衆無線LANを利用した場合など、不要なプロファイルが保存されたままになることがある。こうした不要なプロファイルは削除しておくとよい。それには、以下のコマンドを実行する。「name="<プロファイル名>"」で指定したプロファイルが削除できる。
netsh wlan delete profile name="<プロファイル名>"
不要なプロファイルを削除する(1)
ここでは分かりやすいように[設定]アプリの[既知のネットワークを管理]画面で示しているが、プロファイルの一覧で確認してもよい。プロファイルの削除は、この画面を開いて、不要なプロファイル名の右側にある[削除]ボタンでも行える。
プロファイル内に保存されているパスワードを確認する
SSIDを選択しても、無線LANに接続できない場合、プロファイルに保存されているパスワードが正しくない(アクセスポイント側のパスワード変更に対応していない)ことがある。このような場合、プロファイルに保存されているパスワードを表示して、正しいものが設定されているか確認するとよい。
それには、以下のコマンドを使ってプロファイルを表示させると、「主要なコンテンツ」欄にパスワードが表示される。
netsh wlan show profiles name="<プロファイル名>" key=clear
プロファイル内に保存されているパスワードを確認する
上記のnetshコマンドを実行すると、プロファイルの内容が表示される。「key=clear」オプションを付けると、パスワード(「主要なコンテンツ」)が平文で表示される。
プロファイルの優先度を変更する
複数のSSIDを接続可能にしていると、意図していない方のアクセスポイントに接続されてしまうことがある。例えば、自席に近いアクセスポイントと会議室のアクセスポイントのそれぞれを接続可能にしていると、自席にいるにもかかわらず、少し遠い会議室のアクセスポイントに接続してしまうといったケースだ。
これは、会議室のプロファイルの優先順位が、自席よりも高いために起こる。そこで、以下のコマンドで優先的に接続したいプロファイルを設定しておくと、そのプロファイルが接続可能であれば、優先的に接続されるようになる。
netsh wlan set profileorder name="<プロファイル名>" interface="<インタフェース名>" priority=1
<インタフェース名>は、「show profiles」オプションで表示される「インターフェイス <インタフェース名> プロファイル:」に記載されているものを指定する。
プロファイルの優先度を変更する
前述の通り、プロファイル一覧で表示される順番で無線LANの接続の優先順位が決まっている。複数のSSIDが圏内にあると、この優先順位が高い方に接続される。そのため、意図しない方に接続してしまうことがある。このnetshコマンドを使って、優先順位を1番にすれば、優先的に接続が行われるようになる。
SSIDの非表示設定に対応する
セキュリティなどのため、SSIDを非表示(ブロードキャストを行わない設定)にすることがある。この際、非表示にしたことで無線LANに接続できなくなるというトラブルが発生する。
新規に設定する場合、通知領域の[ネットワーク]アイコンをクリックして、[非公開のネットワーク]を選択、SSIDとパスワードを正確に入力しなければならず、意外と面倒だ。
SSIDの非表示設定に対応する(1)
SSIDを非表示(ブロードキャストしない)に設定してあるアクセスポイントに接続するには、SSIDの一覧を表示し、[非公開のネットワーク]を開き、[接続]ボタンをクリックする。
既にプロファイルが存在する場合、以下のコマンドを実行することで、SSIDが非公開でも接続できるようになる。
netsh wlan set profileparameter name="<プロファイル名>" nonBroadcast=yes
プロファイルに保存されているパスワードを変更する
SSIDに対するパスワードが変更された場合、通常は、何度が接続を試みて、パスワードでエラーが生じていると、正しいパスワードの入力を促す入力ボックスが表示される。ただ、この入力ボックスがなかなか表示されないことがある。
そうなると、グラフィカルユーザーインタファース(GUI)で設定する場合、[設定]アプリの[ネットワークとインターネット]−[Wi-Fi]−[既知のネットワークの管理]画面を開き、該当するプロファイルをいったん削除してから、再度、SSIDを選択して、パスワードを入力しなければならない。
このような場合、以下のコマンドを使ってプロファイル内に保存されているパスワードを変更するという方法もある。既存のプロファイルのパスワードが変更できるため、いちいちプロファイルを削除して、再設定する必要がない。
netsh wlan set profileparameter name="<プロファイル名>" keymaterial=<パスワード>
プロファイルをエクスポート/インポートする
複数のPCに対して同じ無線LANの設定を行う場合、設定済みのPCでエクスポートしたプロファイルを配布して、それを別のPCにインポートするのが楽だ。
既にパスワードなどが設定済みのプロファイルを、以下のコマンドでXMLファイルに出力しておく。指定したフォルダに「<インタフェース名>-<プロファイル名>.xml」のファイル名で保存される。
「key=clear」オプションを設定することで、xmlファイル内に保存されるパスワードを平文(暗号化しない状態)で出力できる。このオプションを指定しないと、パスワードが暗号化されてしまい、出力したWindows 10/11でインポートする分には問題ないが、他のWindows 10/11でインポートすると、再びパスワードの入力が求められてしまう。
ただし、パスワードが平文で保存されるため、このxmlファイルの扱いには注意が必要だ。
netsh wlan export profile name="<プロファイル名>" folder="<フォルダ名>" key=clear
<?xml version="1.0"?>
<WLANProfile xmlns="http://www.microsoft.com/networking/WLAN/profile/v1">
<name>SSID_name</name>
<SSIDConfig>
<SSID>
<hex>535349445F6E616D65</hex>
<name>SSID_name</name>
</SSID>
</SSIDConfig>
<connectionType>ESS</connectionType>
<connectionMode>auto</connectionMode>
<MSM>
<security>
<authEncryption>
<authentication>WPA2PSK</authentication>
<encryption>AES</encryption>
<useOneX>false</useOneX>
</authEncryption>
<sharedKey>
<keyType>passPhrase</keyType>
<protected>false</protected>
<keyMaterial>password</keyMaterial>
</sharedKey>
</security>
</MSM>
<MacRandomization xmlns="http://www.microsoft.com/networking/WLAN/profile/v3">
<enableRandomization>false</enableRandomization>
<randomizationSeed>2708092870</randomizationSeed>
</MacRandomization>
</WLANProfile>
「<name>」タグにはSSIDが、「<keyMaterial>」にはパスワードが、それぞれ記載されている。「key=clear」オプションを指定すると、「<keyMaterial>」で示されるパスワードが平文となるので注意が必要だ。
これをUSBメモリに保存したり、社内のサーバに保存したりして、以下のコマンドでインポートすればよい。ユーザーに作業してもらうのであれば、バッチファイルにしておくとよいだろう。
netsh wlan add profile filename="<エクスポートしたXMLファイル名>"
Copyright© Digital Advantage Corp. All Rights Reserved.