前回に引き続き、SSIDを設定するバッチファイルについてのご報告です。
前回、症状からいくつか切り分けて「keyMaterial」の要因だというところまでは分かりました。
ここまでで、状況をまとめると
- 管理者として実行したコマンドプロンプトで直接バッチファイルに記述しているnetshコマンド実行でならSSID登録から接続までがうまくいく。
- 同じ書式をバッチファイルに記述するとうまくいかない。
- 既存の.xmlファイルを手動で書き直してもうまくいかない。
という状況です。
.xmlファイル再生成
ふと思ったのは、「.xmlファイルを再生成したほうがいいんじゃないか?」と思ったことです。
.xmlファイルを作ったのはWindowsXPから7に移行したときの時代で、結構古い、さらにオプションを付けずにエクスポートしたのですが、現状対象のWiFiに接続可能なPCからエクスポートしてnetshコマンドで読み込ませてやればなにか分かるかもしれない、と考えました。
と、いうわけで、さっそく実行。
書式:
netsh wlan export profile name=%ProfileName% folder=%XMLファイルの格納先% key=clear"
という書式で保存します。今回の場合、
-------------------------------------------------------
netsh wlan export profile name=WiSSID folder="%USERPROFILE%\Documents" key=clear
-------------------------------------------------------
と実行して「Wi-Fi-WiSSID.xml」を生成しました。
新旧の.xmlファイルを比較
ちょっと気になったので、前の.xmlファイルと新たに生成した.xmlファイルを見比べて見ることにしました。
比べると、
おや?
手動で入力したセキュリティキーの部分では
-------------------------------------------------------
<keyMaterial>ABC.acb<k@g;,0</keyMaterial>
-------------------------------------------------------
とある箇所が、エクスポートコマンドでエクスポートした.xmlファイルでは
-------------------------------------------------------
<keyMaterial>ABC.acb<k@g;,0</keyMaterial>
-------------------------------------------------------
と記載されています。
つまりセキュリティキーの[<]とある部分が、エクスポートした.xmlファイルでは[<]に置き換わっています。
これが、エラーの要因だったのか、と思ったので、さっそくエクスポートした.xmlファイルを使用して、バッチファイルを実行してみることにしました。
…実行後。
今回バッチファイルでうまくいかなかった原因がセキュリティキーの部分[<]とある箇所が要因になっていたことが確定しました。
つまりエクスポートした.xmlファイルに記述ある[<]という記述でなければ上手くいかないんだな、ということが分かりました。
ちなみに、コマンド実行の際に[<]とある部分を[<]に書き換えて実行してもうまくSSIDには接続できるようになりませんでしたので、.xmlファイル限定の記述なんだと思われます。
SSIDのセキュリティキーには記号なんて使わないほうがいいですね。きっと。