Step1.創(chuàng)建配置文件
導(dǎo)出已有配置文件
netsh wlan export profile key=clear
(clear表示以明文方式顯示密碼)修改文件
<?xml version="1.0"?>
<WLANProfile xmlns="http://www.microsoft.com/networking/WLAN/profile/v1">
<name>MI 6</name>
<SSIDConfig>
<SSID>
<name>MI 6</name>
</SSID>
</SSIDConfig>
<connectionType>ESS</connectionType>
<connectionMode>manual</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>
</MacRandomization>
</WLANProfile>
name和SSID可以不同(最好設(shè)為一致)即供,name是配置文件名稱垫释,SSID是要連接的wifi名;
connectionMode可以為手動(dòng)連接的manual或者自動(dòng)連接的auto哎垦;
keyMaterial處填寫密碼镜雨,無密碼狀態(tài)如下:
<security>
<authEncryption>
<authentication>open</authentication>
<encryption>none</encryption>
<useOneX>false</useOneX>
</authEncryption>
</security>
Step2.添加配置文件
- 檢查配置文件是否已經(jīng)存在:
netsh wlan show profile
比較奇葩的是當(dāng)有兩個(gè)SSID相同但name不同的配置時(shí)嫂侍,這兩個(gè)wifi會(huì)同時(shí)出現(xiàn)在當(dāng)前可連接的wifi列表中,而且顯示的是name名:
所以應(yīng)當(dāng)盡量避免這種情況
- 刪除配置文件:
netsh wlan delete profile name="MI 6 2"
netsh wlan delete profile name="MI 6"
- 添加配置文件:
netsh wlan add profile filename="wifi.xml"
注意這里面參數(shù)是文件名,默認(rèn)路徑為當(dāng)前目錄吵冒,添加成功后提示:已將配置文件 MI 6添加到接口 WLAN纯命。
Step3.進(jìn)行連接
netsh wlan connect name="MI 6"
重要的事情說三遍:這里的name是剛剛添加過的配置文件中的name,而不是配置文件名痹栖!而不是配置文件名亿汞!而不是配置文件名!因?yàn)槲覄傞_始就是栽在這里頭了揪阿,老是連不上疗我。
連接成功的提示信息為已成功完成連接請(qǐng)求。
常用netsh命令總結(jié):
- 列出配置文件:
netsh wlan show profile
- 導(dǎo)出配置文件:
netsh wlan export profile key=clear
- 刪除配置文件:
netsh wlan delete profile name=""
- 添加配置文件:
netsh wlan add profile filename=""
- 連接wifi:
netsh wlan connect name=""
- 列出接口:
netsh wlan show interface
- 開啟接口:
netsh interface set interface "Interface Name" enabled
- 列出所有可連接wifi詳細(xì)信息:
netsh wlan show networks mode=bssid
- 為cmd/powershell設(shè)置代理
netsh winhttp set proxy 127.0.0.1:1080
- 取消代理
netsh winhttp reset proxy
- 查看代理
netsh winhttp show proxy
使用命令行加配置文件的方式連接wifi看似沒什么卵用南捂,實(shí)際用處非常大吴裤,比如可以直接在C#中通過此方式取得可連接wifi列表,相比封裝的ManagedWifi要簡(jiǎn)潔得多
using System;
using System.Diagnostics;
namespace WifiTest
{
class Program
{
static void Main(string[] args)
{
Process proc = new Process();
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.FileName = "netsh";
proc.StartInfo.Arguments = "wlan show networks mode=bssid";
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.UseShellExecute = false;
proc.Start();
string output = proc.StandardOutput.ReadToEnd();
proc.WaitForExit();
Console.WriteLine(output);
Console.Read();
}
}
}