使用cmd连接wifi(netsh命令)

Step1.创建配置文件

  • 导出已有配置文件
    netsh wlan export profile key=clear(clear表示以明文方式显示密码)

  • 修改文件



    MI 6
    
        
            MI 6
        
    
    ESS
    manual
    
        
            
                WPA2PSK
                AES
                false
            
            
                passPhrase
                false
                {password}
            
        
    
    
        false
    

name和SSID可以不同(最好设为一致),name是配置文件名称,SSID是要连接的wifi名;
connectionMode可以为手动连接的manual或者自动连接的auto;
keyMaterial处填写密码,无密码状态如下:


    
        open
        none
        false
    

Step2.添加配置文件

  • 检查配置文件是否已经存在:
    netsh wlan show profile
    使用cmd连接wifi(netsh命令)_第1张图片

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


使用cmd连接wifi(netsh命令)_第2张图片

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

  • 删除配置文件:
    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();  
        }  
    }  
}  

参考资料:

  • How to connect, manage and delete Wi-Fi networks using Command Prompt
  • How to connect to a WiFi using CMD only?
  • How to connect to a Wireless WIFI Network from the Command line in Windows 7

你可能感兴趣的:(使用cmd连接wifi(netsh命令))