美文网首页
使用cmd连接wifi(netsh命令)

使用cmd连接wifi(netsh命令)

作者: 哆啦A梦没有毛 | 来源:发表于2018-02-09 19:05 被阅读3742次

Step1.创建配置文件

  • 导出已有配置文件
    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处填写密码,无密码状态如下:

<security>
    <authEncryption>
        <authentication>open</authentication>
        <encryption>none</encryption>
        <useOneX>false</useOneX>
    </authEncryption>
</security>

Step2.添加配置文件

  • 检查配置文件是否已经存在:
    netsh wlan show profile

比较奇葩的是当有两个SSID相同但name不同的配置时,这两个wifi会同时出现在当前可连接的wifi列表中,而且显示的是name名:



所以应当尽量避免这种情况

  • 删除配置文件:
    netsh wlan delete profile name="MI 6 2"
    netsh wlan delete profile name="MI 6"
  • 添加配置文件:
    netsh wlan add profile filename="wifi.xml"
    注意这里面参数是文件名,默认路径为当前目录,添加成功后提示:已将配置文件 MI 6添加到接口 WLAN。

Step3.进行连接

netsh wlan connect name="MI 6"
重要的事情说三遍:这里的name是刚刚添加过的配置文件中的name,而不是配置文件名!而不是配置文件名!而不是配置文件名!因为我刚开始就是栽在这里头了,老是连不上。
连接成功的提示信息为已成功完成连接请求。

常用netsh命令总结:

  • 列出配置文件: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

使用命令行加配置文件的方式连接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();  
        }  
    }  
}  

参考资料:

相关文章

网友评论

      本文标题:使用cmd连接wifi(netsh命令)

      本文链接:https://www.haomeiwen.com/subject/cokqtftx.html