Windows10からWPA-PSK(TKIP)に接続する

# 前提：WPAは安全ではありません。
古いアクセスポイントで使われていたWPA-PSK(TKIP)は、安全ではないことが分かっており使用するべきではありません。
しかし、特別な検証環境などでWindows10からどうしても使用したい場合があります。
Windows10では通常は「Windowsの設定」－「ネットワークとインターネット」－「Wi-Fi」から設定を追加しますが、Windows8.1以降はセキュリティの選択肢にWPAがありません。
<img src="https://qiita-image-store.s3.amazonaws.com/0/142577/2a77cc32-b763-032d-0b21-1b6453cfb1b9.jpeg" width=25%>


そこで、接続プロファイルのXMLファイルを使ってWPA-PSK(TKIP)を使った接続を追加します。

# 記述例

- 以下、コマンドプロンプトで入力する際に「\」と書かれている部分は「&yen;」に読み替えてください。
- プロファイル名(＝SSID)は「MYSSID」、インタフェース名は「Wi-Fi」で書いていますので、自分の環境に合わせて書き換えてください。
 - インタフェース名が分からない場合は、コマンドプロンプトから「```netsh wlan show all```」で調べられます。ネットワークアダプタを新たに追加した場合は、「Wi-Fi 2」となっているかもしれません。

- コマンドプロンプトは、管理者権限を持つユーザで実行する必要があります。


# 接続プロファイルの作成

## (方法A)既存のPCから接続プロファイルをエクスポートする

既に接続できているWindowsのPCがあれば、そこから接続プロファイルをXML形式でエクスポートします。

- コマンドプロンプトを開き、以下を入力します。

```
netsh wlan export profile folder=C:\
```

 - 末尾に「key=clear」を付けると、パスワードが平文で保存されます。
 - 「folder=C:&yen;」で、出力先フォルダを指定できます。
 - 出力ファイル名は「インタフェース名-プロファイル名.xml」です。

## (方法B)既存のPCが無い場合は、下記をコピペして編集する

既に接続できているPCが無い場合は、下記をコピペして★の部分を書き換えて保存し、接続プロファイルを作成します。

- 「Wi-Fi-MYSSID.xml」のように、exportで作成した場合と同じ名前で保存すると分かりやすいです。

```
<?xml version="1.0"?>
<WLANProfile xmlns="http://www.microsoft.com/networking/WLAN/profile/v1">
	<name>★MYSSID</name>
	<SSIDConfig>
		<SSID>
			<hex>★SSIDをASCIIコードで16進数にしたもの。"0"なら31、"A"なら41です。</hex>
			<name>★MYSSID</name>
		</SSID>
	</SSIDConfig>
	<connectionType>ESS</connectionType>
	<connectionMode>auto</connectionMode>
	<MSM>
		<security>
			<authEncryption>
				<authentication>open</authentication>
				<encryption>WEP</encryption>
				<useOneX>false</useOneX>
			</authEncryption>
			<sharedKey>
				<keyType>networkKey</keyType>
				<protected>★false(trueをfalseに書き換えます)</protected>
				<keyMaterial>★パスワード(平文)</keyMaterial>
			</sharedKey>
		</security>
	</MSM>
	<MacRandomization xmlns="http://www.microsoft.com/networking/WLAN/profile/v3">
		<enableRandomization>false</enableRandomization>
	</MacRandomization>
</WLANProfile>
```


# 対象PCに接続プロファイルを追加する


## 新たに設定するPCで、接続プロファイルを追加する

- USBメモリなどで、新たに設定するPCにコピーします。
- コマンドプロンプトを開き、以下を入力します。

```
netsh wlan add profile filename="ファイル名.xml" interface="Wi-Fiのインタフェース名"
```
例えば、「```netsh wlan add profile filename="E:\Wi-Fi-MYSSID.xml" interface="Wi-Fi"```」です。


  - 成功すると「プロファイル MYSSID がインタフェイス Wi-Fi に追加されます。」と表示されます。
 
 - ファイル名が間違っている場合は「指定されたファイルが見つかりません。」と表示されます。

 - インタフェース名が間違っている場合は「該当するワイヤレス インタフェイスがシステムにありません。」と表示されます。


## 非公開のネットワークに接続する場合は手動で設定する
```
netsh wlan set profileparameter name=MYSSID nonBroadcast=yes
```


## パスワードが間違っている場合は手動で設定する
```
netsh wlan set profileparameter name=MYSSID keyType=networkKey keyMaterial=パスワード
```


# 設定を反映させる
## PCを再起動する

## 接続できるか確認する
- 「Windowsの設定」－「ネットワークとインターネット」－「Wi-Fi」からWi-Fiをオンにして、接続できるか確認します。


## 使用したXMLファイルを削除する
## 検証作業が終わったら、環境を元に戻す
- 忘れずに。

# 余談
SONY VAIO PCG-71B11N VPCEH29FJ (Windows7プリインストールモデル)では、Windows10をクリーンインストールしたところ上記の手順でも接続できませんでした。
搭載されているのは、Qualcomm Athreros AR9285 Wireless Network Adapter です。
デバイスドライバをWindows10(64bit)に対応しているバージョン(10.0.3.456)に入れ替えてもだめで、別なPCで実績のあった無線LANアダプタをUSBにさしたらあっけなく接続できました。
接続できない場合は、ネットワークアダプタがちゃんと動いているのか疑ったほうがいいかもしれません。


# 参考
- [Windows/コマンド/netsh wlan - 無線LANプロファイル設定 - yanor.net/wiki](http://yanor.net/wiki/?Windows%2F%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%2Fnetsh%20wlan%20-%20%E7%84%A1%E7%B7%9ALAN%E3%83%97%E3%83%AD%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E8%A8%AD%E5%AE%9A)
- [アクセスポインタ（AP）のプロファイルを研究してみましょう - 2刀流のプログラムのblog](http://hudson.doorblog.jp/archives/2015-02-03.html)