Step1.創(chuàng)建配置文件
導出已有配置文件
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可以不同(最好設為一致),name是配置文件名稱,SSID是要連接的wifi名;
connectionMode可以為手動連接的manual或者自動連接的auto;
keyMaterial處填寫密碼,無密碼狀態(tài)如下:
<security>
<authEncryption>
<authentication>open</authentication>
<encryption>none</encryption>
<useOneX>false</useOneX>
</authEncryption>
</security>
Step2.添加配置文件
- 檢查配置文件是否已經(jīng)存在:
netsh wlan show profile
比較奇葩的是當有兩個SSID相同但name不同的配置時,這兩個wifi會同時出現(xiàn)在當前可連接的wifi列表中,而且顯示的是name名:

所以應當盡量避免這種情況
- 刪除配置文件:
netsh wlan delete profile name="MI 6 2"
netsh wlan delete profile name="MI 6" - 添加配置文件:
netsh wlan add profile filename="wifi.xml"
注意這里面參數(shù)是文件名,默認路徑為當前目錄,添加成功后提示:已將配置文件 MI 6添加到接口 WLAN。
Step3.進行連接
netsh wlan connect name="MI 6"
重要的事情說三遍:這里的name是剛剛添加過的配置文件中的name,而不是配置文件名!而不是配置文件名!而不是配置文件名!因為我剛開始就是栽在這里頭了,老是連不上。
連接成功的提示信息為已成功完成連接請求。
常用netsh命令總結(jié):
- 列出配置文件:
netsh wlan show profile - 導出配置文件:
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詳細信息:
netsh wlan show networks mode=bssid - 為cmd/powershell設置代理
netsh winhttp set proxy 127.0.0.1:1080 - 取消代理
netsh winhttp reset proxy - 查看代理
netsh winhttp show proxy
使用命令行加配置文件的方式連接wifi看似沒什么卵用,實際用處非常大,比如可以直接在C#中通過此方式取得可連接wifi列表,相比封裝的ManagedWifi要簡潔得多
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();
}
}
}
