在批处理文件中连接到无线网络(一个还不是您的配置文件之一)

Connecting to Wireless Network in Batch file (One that isn't already one of your profiles)

所以,我目前正在尝试创建一个批处理文件来连接到无线网络。到目前为止,我有以下...

@echo off
netsh wlan connect ssid="My SSID" name="My Name"
pause

它工作正常,但问题是它只能连接到我的个人资料中已有的网络。有没有什么方法可以连接到无线网络,使用密码作为参数,但我的配置文件中没有密码?

不是使用单个 netsh 命令。您需要有一个网络配置文件。如果您知道要连接的网络的安全设置,您的批处理文件可以使用 netsh 导入包含您要连接的 SSID/password 的配置文件,然后使用 netsh 连接到该配置文件。您的批处理文件必须 assemble 配置文件 xml。但是,这种方法非常脆弱,因为如果网络与您生成的配置文件中的安全设置不匹配,连接将不会成功。

您可以尝试使用 netsh 的其他命令来推断安全设置并尝试拼凑一个配置文件以匹配任意网络,但这会打开一个全新的蠕虫病毒库。

我真的不能推荐任何一种方法,但如果你想 export/import 配置文件,命令是

netsh wlan export profile "<profile name here>"
netsh wlan add profile <xml filename here>

您需要一个包含 SSID 和密码的 xml 文件。

<?xml version="1.0"?>
<WLANProfile xmlns="http://www.microsoft.com/networking/WLAN/profile/v1">
    <name>{example}</name>
    <SSIDConfig>
        <SSID>
            <hex>{6578616d706c65}</hex>
            <name>{example}</name>
        </SSID>
    </SSIDConfig>
    <connectionType>ESS</connectionType>
    <connectionMode>auto</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>

{6578616d706c65}{example}{example}{password} 中填写您自己的信息。 {6578616d706c65}example 的 Hex,点击 here 将 ASCII 转换为 HEX。

请确保您使用的格式正确,windows 将不会接受,即使最后还有一个 space。

单击 here 下载 example.xml 和其他文件。




如果您想使用纯cmd连接(无需手动更改{password}),请继续阅读


为此,您需要 36 个 xml 文件,其中包含 a-z 和 0-9(不可能同时具有大写和小写。)

点击here下载36个文件和example.xml。

首先你需要把example.xml分成三部分,第一部分是从<?xml version="1.0"?><keyMaterial>。 将其命名为 T.xml.

第二部分是密码。

第三部分是从</keyMaterial>到最后(</WLANProfile>)一定不要忘记</WLANProfile>后面的换行符。 将其命名为 B.xml.

然后您将使用复制命令合并文件。

代码应该如下所示

copy /y C:\T.xml + C:\keyMaterial\p.xml + C:\keyMaterial\a.xml + C:\keyMaterial\s.xml + C:\keyMaterial\s.xml + C:\keyMaterial\w.xml + C:\keyMaterial\o.xml + C:\keyMaterial\r.xml + C:\keyMaterial\d.xml + C:\B.xml C:\example.xml /B
netsh wlan add profile filename="C:\example.xml" user=all
netsh wlan connect example

最后,您可以通过 运行 ping google.com 查看您是否已连接。