WLAN 云解决方案提供商
WiFi 配置服务提供商提供在 Windows 设备上添加或删除 Wi-Fi 网络的功能。 配置服务提供程序接受 SyncML 输入,并将其转换为安装在设备上的网络配置文件。 此配置文件使设备能够在 Wi-Fi 网络处于范围内时连接到网络。
编程注意事项:
- 如果身份验证方法需要证书(例如,EAP-TLS 需要客户端证书),则必须通过 CertificateStore 配置服务提供程序对其进行配置。 WiFi 配置服务提供商不提供该功能;相反,Wi-Fi 配置文件可以指定要用于为该网络选择正确证书的证书的特征。 在部署 Wi-Fi 网络配置之前,服务器必须先成功注册证书。 例如,对于 EAP-TLS 配置文件,服务器必须在部署 Wi-Fi 配置文件之前成功配置和注册所需的客户端证书。 自签名证书适用于 EAP-TLS/PEAP-MSCHAPv2,但在 EAP-TLS 中不受支持。
- 对于基于 WEP、WPA 和 WPA2 的网络,请在网络配置中包含纯文本密钥。 密钥存储在设备上时会自动加密。
- LocURI 节点 Wi-Fi 网络部分的 SSID 必须是基于 RFC 2396 的有效 URI。 这种情况要求所有非 ASCII 字符都必须使用 %-character 进行转义。 不支持不需要转义的 Unicode 字符。
- 必须与
<name>name_goes_here</name>\<SSIDConfig>
匹配<SSID><name>name_goes_here</name></SSID>
。 - 对于 WiFi CSP,除非节点已存在,否则不能使用 Replace 命令。
- 在Windows 10客户端版本 (家庭版、专业版、企业版和教育版中使用 ProxyPacUrl 或 ProxyWPAD) 将导致失败。
以下列表显示了 WiFi 配置服务提供程序节点:
- ./Device/Vendor/MSFT/WiFi
- ./User/Vendor/MSFT/WiFi
设备/配置文件
范围 | 版本 | 适用的操作系统 |
---|---|---|
✅ 设备 ✅ 用户 |
✅ 专业版 ✅ 企业版 ✅ 教育版 ✅ Windows SE ✅ IoT 企业版/IoT 企业版 LTSC |
✅Windows 10版本 1511 [10.0.10586] 及更高版本 |
./Device/Vendor/MSFT/WiFi/Profile
标识 Wi-Fi 网络配置。 每个 Wi-Fi 网络配置都由配置文件对象表示。 此网络配置文件包括设备连接到该网络所需的所有信息-例如,SSID、身份验证和加密方法以及 WEP 或 WPA2 网络时的密码。
描述框架属性:
属性名 | 属性值 |
---|---|
格式 | node |
访问类型 | “获取” |
Device/Profile/{SSID}
范围 | 版本 | 适用的操作系统 |
---|---|---|
✅ 设备 ✅ 用户 |
✅ 专业版 ✅ 企业版 ✅ 教育版 ✅ Windows SE ✅ IoT 企业版/IoT 企业版 LTSC |
✅Windows 10版本 1511 [10.0.10586] 及更高版本 |
./Device/Vendor/MSFT/WiFi/Profile/{SSID}
Wi-Fi 网络的配置文件名称。 这是在添加 WlanXml 节点时添加的,在删除 WlanXml 时将其删除。
指定 Wi-Fi 网络的名称, (创建、配置、查询或删除的最大) 32 字节。 该名称区分大小写,可以用 ASCII 表示。
SSID 是连接到的网络的名称,而配置文件名称是包含 WiFi 设置信息的配置文件的名称。 如果根据 WiFi 设置 XML 中的信息,在 MDM SyncML 中未正确设置配置文件名称,则可能会导致一些意外错误。 例如,<LocURI>./Vendor/MSFT/WiFi/Profile/<MUST BE NAME OF PROFILE AS PER WIFI XML>/WlanXml</LocURI>
。
描述框架属性:
属性名 | 属性值 |
---|---|
格式 | node |
访问类型 | 添加、删除、获取、替换 |
动态节点命名 | ServerGeneratedUniqueIdentifier |
Device/Profile/{SSID}/ProfileSource
范围 | 版本 | 适用的操作系统 |
---|---|---|
✅ 设备 ✅ 用户 |
✅ 专业版 ✅ 企业版 ✅ 教育版 ✅ Windows SE ✅ IoT 企业版/IoT 企业版 LTSC |
✅Windows 11版本 22H2 [10.0.22621] 及更高版本 |
./Device/Vendor/MSFT/WiFi/Profile/{SSID}/ProfileSource
允许定义要设置此 Wi-Fi 配置文件的管理实体。 这当前可设置为 0=企业版或 1=移动运营商。
描述框架属性:
属性名 | 属性值 |
---|---|
格式 | int |
访问类型 | 获取、替换 |
默认值 | 0 |
允许的值:
值 | 说明 |
---|---|
0(默认值) | 企业。 |
1 | 移动运营商。 |
Device/Profile/{SSID}/Proxy
范围 | 版本 | 适用的操作系统 |
---|---|---|
✅ 设备 ✅ 用户 |
✅ 专业版 ✅ 企业版 ✅ 教育版 ✅ Windows SE ✅ IoT 企业版/IoT 企业版 LTSC |
✅Windows 10版本 1511 [10.0.10586] 及更高版本 |
./Device/Vendor/MSFT/WiFi/Profile/{SSID}/Proxy
可选节点。 格式为 url:port。 配置网络代理 ((如果有) )。
描述框架属性:
属性名 | 属性值 |
---|---|
格式 |
chr (字符串) |
访问类型 | 添加、删除、获取、替换 |
Device/Profile/{SSID}/ProxyPacUrl
范围 | 版本 | 适用的操作系统 |
---|---|---|
✅ 设备 ✅ 用户 |
✅ 专业版 ✅ 企业版 ✅ 教育版 ✅ Windows SE ✅ IoT 企业版/IoT 企业版 LTSC |
✅Windows 10版本 1607 [10.0.14393] 及更高版本 |
./Device/Vendor/MSFT/WiFi/Profile/{SSID}/ProxyPacUrl
可选节点。 PAC 文件位置的 URL。
注意
请勿使用。 在 Windows 10 客户端版本中使用此配置将导致失败。
描述框架属性:
属性名 | 属性值 |
---|---|
格式 |
chr (字符串) |
访问类型 | 添加、删除、获取、替换 |
Device/Profile/{SSID}/ProxyWPAD
范围 | 版本 | 适用的操作系统 |
---|---|---|
✅ 设备 ✅ 用户 |
✅ 专业版 ✅ 企业版 ✅ 教育版 ✅ Windows SE ✅ IoT 企业版/IoT 企业版 LTSC |
✅Windows 10版本 1607 [10.0.14393] 及更高版本 |
./Device/Vendor/MSFT/WiFi/Profile/{SSID}/ProxyWPAD
可选节点。 字段的存在使 WPAD 能够进行代理查找。
注意
请勿使用。 在 Windows 10 客户端版本中使用此配置将导致失败。
描述框架属性:
属性名 | 属性值 |
---|---|
格式 | bool |
访问类型 | 添加、删除、获取、替换 |
允许的值:
值 | 描述 |
---|---|
false | 禁用 WPAD 进行代理查找。 |
true | 为代理查找启用 WPAD。 |
Device/Profile/{SSID}/WiFiCost
范围 | 版本 | 适用的操作系统 |
---|---|---|
✅ 设备 ✅ 用户 |
✅ 专业版 ✅ 企业版 ✅ 教育版 ✅ Windows SE ✅ IoT 企业版/IoT 企业版 LTSC |
✅Windows 10 版本 1809 [10.0.17763] 及更高版本 |
./Device/Vendor/MSFT/WiFi/Profile/{SSID}/WiFiCost
可选节点。 如果策略处于活动状态,则从以下列表中选择其中一个值将设置 Wi-Fi 配置文件的 WLAN 连接成本。 (1:无限制 - 无限连接,2:固定 - 容量限制,最高达到特定数据限制,3:可变 - 按每字节成本计算基本) 默认行为:不受限制。
描述框架属性:
属性名 | 属性值 |
---|---|
格式 | int |
访问类型 | 添加、删除、获取、替换 |
默认值 | 1 |
允许的值:
值 | 描述 |
---|---|
1 (默认) | 无限制 - 无限连接。 |
2 | 已修复 - 容量限制达到特定数据限制。 |
3 | 变量 - 按基本字节付费。 |
Device/Profile/{SSID}/WlanXml
范围 | 版本 | 适用的操作系统 |
---|---|---|
✅ 设备 ✅ 用户 |
✅ 专业版 ✅ 企业版 ✅ 教育版 ✅ Windows SE ✅ IoT 企业版/IoT 企业版 LTSC |
✅Windows 10版本 1511 [10.0.10586] 及更高版本 |
./Device/Vendor/MSFT/WiFi/Profile/{SSID}/WlanXml
描述网络配置并遵循 Windows WLAN_profile 架构的 XML。
指向架构的链接: https://msdn.microsoft.com/library/windows/desktop/ms707341(v=vs.85).aspx
必须转义配置文件 XML,如以下示例所示。
如果它存在于 Blob 中, keyType 和 受保护的 元素必须位于 keyMaterial 之前,如 WPA2-Personal Profile Sample 中的示例所示。
注意
如果需要指定其他高级条件,例如指定可供 Wi-Fi 配置文件使用的证书的条件,可以通过 WlanXML 的 EapHostConfig 部分指定此条件。 有关详细信息,请参阅 EAP 配置。
描述框架属性:
属性名 | 属性值 |
---|---|
格式 |
chr (字符串) |
访问类型 | 添加、删除、获取、替换 |
用户/配置文件
范围 | 版本 | 适用的操作系统 |
---|---|---|
✅ 设备 ✅ 用户 |
✅ 专业版 ✅ 企业版 ✅ 教育版 ✅ Windows SE ✅ IoT 企业版/IoT 企业版 LTSC |
✅Windows 10版本 1511 [10.0.10586] 及更高版本 |
./User/Vendor/MSFT/WiFi/Profile
标识 Wi-Fi 网络配置。 每个 Wi-Fi 网络配置都由配置文件对象表示。 此网络配置文件包括设备连接到该网络所需的所有信息-例如,SSID、身份验证和加密方法以及 WEP 或 WPA2 网络时的密码。
描述框架属性:
属性名 | 属性值 |
---|---|
格式 | node |
访问类型 | “获取” |
User/Profile/{SSID}
范围 | 版本 | 适用的操作系统 |
---|---|---|
✅ 设备 ✅ 用户 |
✅ 专业版 ✅ 企业版 ✅ 教育版 ✅ Windows SE ✅ IoT 企业版/IoT 企业版 LTSC |
✅Windows 10版本 1511 [10.0.10586] 及更高版本 |
./User/Vendor/MSFT/WiFi/Profile/{SSID}
Wi-Fi 网络的配置文件名称。 这是在添加 WlanXml 节点时添加的,在删除 WlanXml 时将其删除。
指定 Wi-Fi 网络的名称, (创建、配置、查询或删除的最大) 32 字节。 该名称区分大小写,可以用 ASCII 表示。
SSID 是连接到的网络的名称,而配置文件名称是包含 WiFi 设置信息的配置文件的名称。 如果根据 WiFi 设置 XML 中的信息,在 MDM SyncML 中未正确设置配置文件名称,则可能会导致一些意外错误。 例如,<LocURI>./Vendor/MSFT/WiFi/Profile/<MUST BE NAME OF PROFILE AS PER WIFI XML>/WlanXml</LocURI>
。
描述框架属性:
属性名 | 属性值 |
---|---|
格式 | node |
访问类型 | 添加、删除、获取、替换 |
动态节点命名 | ServerGeneratedUniqueIdentifier |
User/Profile/{SSID}/ProfileSource
范围 | 版本 | 适用的操作系统 |
---|---|---|
✅ 设备 ✅ 用户 |
✅ 专业版 ✅ 企业版 ✅ 教育版 ✅ Windows SE ✅ IoT 企业版/IoT 企业版 LTSC |
✅Windows 11版本 22H2 [10.0.22621] 及更高版本 |
./User/Vendor/MSFT/WiFi/Profile/{SSID}/ProfileSource
允许定义要设置此 Wi-Fi 配置文件的管理实体。 这当前可设置为 0=企业版或 1=移动运营商。
描述框架属性:
属性名 | 属性值 |
---|---|
格式 | int |
访问类型 | 获取、替换 |
默认值 | 0 |
允许的值:
值 | 说明 |
---|---|
0(默认值) | 企业。 |
1 | 移动运营商。 |
User/Profile/{SSID}/Proxy
范围 | 版本 | 适用的操作系统 |
---|---|---|
✅ 设备 ✅ 用户 |
✅ 专业版 ✅ 企业版 ✅ 教育版 ✅ Windows SE ✅ IoT 企业版/IoT 企业版 LTSC |
✅Windows 10版本 1511 [10.0.10586] 及更高版本 |
./User/Vendor/MSFT/WiFi/Profile/{SSID}/Proxy
可选节点。 格式为 url:port。 配置网络代理 ((如果有) )。
描述框架属性:
属性名 | 属性值 |
---|---|
格式 |
chr (字符串) |
访问类型 | 添加、删除、获取、替换 |
User/Profile/{SSID}/ProxyPacUrl
范围 | 版本 | 适用的操作系统 |
---|---|---|
✅ 设备 ✅ 用户 |
✅ 专业版 ✅ 企业版 ✅ 教育版 ✅ Windows SE ✅ IoT 企业版/IoT 企业版 LTSC |
✅Windows 10版本 1607 [10.0.14393] 及更高版本 |
./User/Vendor/MSFT/WiFi/Profile/{SSID}/ProxyPacUrl
可选节点。 PAC 文件位置的 URL。
注意
请勿使用。 在 Windows 10 客户端版本中使用此配置将导致失败。
描述框架属性:
属性名 | 属性值 |
---|---|
格式 |
chr (字符串) |
访问类型 | 添加、删除、获取、替换 |
User/Profile/{SSID}/ProxyWPAD
范围 | 版本 | 适用的操作系统 |
---|---|---|
✅ 设备 ✅ 用户 |
✅ 专业版 ✅ 企业版 ✅ 教育版 ✅ Windows SE ✅ IoT 企业版/IoT 企业版 LTSC |
✅Windows 10版本 1607 [10.0.14393] 及更高版本 |
./User/Vendor/MSFT/WiFi/Profile/{SSID}/ProxyWPAD
可选节点。 字段的存在使 WPAD 能够进行代理查找。
注意
请勿使用。 在 Windows 10 客户端版本中使用此配置将导致失败。
描述框架属性:
属性名 | 属性值 |
---|---|
格式 | bool |
访问类型 | 添加、删除、获取、替换 |
允许的值:
值 | 描述 |
---|---|
false | 禁用 WPAD 进行代理查找。 |
true | 为代理查找启用 WPAD。 |
User/Profile/{SSID}/WiFiCost
范围 | 版本 | 适用的操作系统 |
---|---|---|
✅ 设备 ✅ 用户 |
✅ 专业版 ✅ 企业版 ✅ 教育版 ✅ Windows SE ✅ IoT 企业版/IoT 企业版 LTSC |
✅Windows 10 版本 1809 [10.0.17763] 及更高版本 |
./User/Vendor/MSFT/WiFi/Profile/{SSID}/WiFiCost
可选节点。 如果策略处于活动状态,则从以下列表中选择其中一个值将设置 Wi-Fi 配置文件的 WLAN 连接成本。 (1:无限制 - 无限连接,2:固定 - 容量限制,最高达到特定数据限制,3:可变 - 按每字节成本计算基本) 默认行为:不受限制。
描述框架属性:
属性名 | 属性值 |
---|---|
格式 | int |
访问类型 | 添加、删除、获取、替换 |
默认值 | 1 |
允许的值:
值 | 描述 |
---|---|
1 (默认) | 无限制 - 无限连接。 |
2 | 已修复 - 容量限制达到特定数据限制。 |
3 | 变量 - 按基本字节付费。 |
User/Profile/{SSID}/WlanXml
范围 | 版本 | 适用的操作系统 |
---|---|---|
✅ 设备 ✅ 用户 |
✅ 专业版 ✅ 企业版 ✅ 教育版 ✅ Windows SE ✅ IoT 企业版/IoT 企业版 LTSC |
✅Windows 10版本 1511 [10.0.10586] 及更高版本 |
./User/Vendor/MSFT/WiFi/Profile/{SSID}/WlanXml
描述网络配置并遵循 Windows WLAN_profile 架构的 XML。
指向架构的链接: https://msdn.microsoft.com/library/windows/desktop/ms707341(v=vs.85).aspx
必须转义配置文件 XML,如以下示例所示。
如果它存在于 Blob 中, keyType 和 受保护的 元素必须位于 keyMaterial 之前,如 WPA2-Personal Profile Sample 中的示例所示。
注意
如果需要指定其他高级条件,例如指定可供 Wi-Fi 配置文件使用的证书的条件,可以通过 WlanXML 的 EapHostConfig 部分指定此条件。 有关详细信息,请参阅 EAP 配置。
描述框架属性:
属性名 | 属性值 |
---|---|
格式 |
chr (字符串) |
访问类型 | 添加、删除、获取、替换 |
示例
这些 XML 示例演示如何使用 OMA DM 执行各种任务。
添加网络
以下示例演示如何使用 SSID“MyNetwork”添加 PEAP-MSCHAPv2 网络。
<SyncML xmlns="SYNCML:SYNCML1.2">
<SyncBody>
<Atomic>
<CmdID>301</CmdID>
<Add>
<CmdID>302</CmdID>
<Item>
<Target>
<LocURI>./Vendor/MSFT/WiFi/Profile/MyNetwork/WlanXml</LocURI>
</Target>
<Meta>
<Format xmlns="syncml:metinf">chr</Format>
</Meta>
<Data><?xml version="1.0"?><WLANProfile xmlns="http://contoso.com/networking/WLAN/profile/v1"><name>MyNetwork</name><SSIDConfig><SSID><hex>412D4D534654574C414E</hex><name>MyNetwork</name></SSID><nonBroadcast>false</nonBroadcast></SSIDConfig><connectionType>ESS</connectionType><connectionMode>manual</connectionMode><MSM><security><authEncryption><authentication>WPA2</authentication><encryption>AES</encryption><useOneX>true</useOneX></authEncryption><OneX xmlns="http://contoso.com/networking/OneX/v1"><authMode>user</authMode><EAPConfig><EapHostConfig xmlns="http://contoso.com/provisioning/EapHostConfig"><EapMethod><Type xmlns="http://contoso.com/provisioning/EapCommon">25</Type><VendorId xmlns="http://contoso.com/provisioning/EapCommon">0</VendorId><VendorType xmlns="http://contoso.com/provisioning/EapCommon">0</VendorType><AuthorId xmlns="http://contoso.com/provisioning/EapCommon">0</AuthorId></EapMethod><Config xmlns="http://contoso.com/provisioning/EapHostConfig"><Eap xmlns="http://contoso.com/provisioning/BaseEapConnectionPropertiesV1"><Type>25</Type><EapType xmlns="http://contoso.com/provisioning/MsPeapConnectionPropertiesV1"><ServerValidation><DisableUserPromptForServerValidation>true</DisableUserPromptForServerValidation><ServerNames></ServerNames></ServerValidation><FastReconnect>true</FastReconnect><InnerEapOptional>false</InnerEapOptional><Eap xmlns="http://contoso.com/provisioning/BaseEapConnectionPropertiesV1"><Type>26</Type><EapType xmlns="http://contoso.com/provisioning/MsChapV2ConnectionPropertiesV1"><UseWinLogonCredentials>false</UseWinLogonCredentials></EapType></Eap><EnableQuarantineChecks>false</EnableQuarantineChecks><RequireCryptoBinding>false</RequireCryptoBinding><PeapExtensions><PerformServerValidation xmlns="http://contoso.com/provisioning/MsPeapConnectionPropertiesV2">false</PerformServerValidation><AcceptServerName xmlns="http://contoso.com/provisioning/MsPeapConnectionPropertiesV2">false</AcceptServerName></PeapExtensions></EapType></Eap></Config></EapHostConfig></EAPConfig></OneX></security></MSM></WLANProfile> </Data>
</Item>
</Add>
</Atomic>
<Final/>
</SyncBody>
</SyncML>
查询网络配置文件
以下示例演示如何查询 MDM 服务器上安装的 Wi-Fi 配置文件。
<Get>
<CmdID>301</CmdID>
<Item>
<Target>
<LocURI>./Vendor/MSFT/WiFi/Profile</LocURI>
</Target>
</Item>
</Get>
以下示例显示了响应。
<Results>
<CmdID>3</CmdID>
<MsgRef>1</MsgRef>
<CmdRef>301</CmdRef>
<Item>
<Source><LocURI>./Vendor/MSFT/WiFi/Profile</LocURI></Source>
<Meta><Format xmlns="syncml:metinf">node</Format></Meta>
<Data>TestWLAN1/TestWLAN2</Data>
</Item>
</Results>
删除网络
以下示例演示如何删除具有 SSID“MyNetwork”且没有代理的网络。 删除所有网络身份验证类型的方式相同。
<Atomic>
<CmdID>300</CmdID>
<Delete>
<CmdID>301</CmdID>
<Item>
<Target>
<LocURI>./Vendor/MSFT/WiFi/Profile/MyNetwork/WlanXml</LocURI>
</Target>
</Item>
</Delete>
</Atomic>
为服务器证书添加网络和证书颁发机构
以下示例演示如何使用 SSID“MyNetwork”和根 CA 验证为服务器证书添加 PEAP-MSCHAPv2 网络。
<Atomic>
<CmdID>300</CmdID>
<Add>
<CmdID>301</CmdID>
<Item>
<Target>
<LocURI>./Vendor/MSFT/WiFi/Profile/MyNetwork/WlanXml</LocURI>
</Target>
<Meta>
<Format xmlns="syncml:metinf">chr</Format>
</Meta>
<Data><?xml version="1.0"?><WLANProfile xmlns="http://www.microsoft.com/networking/WLAN/profile/v1"><name>MyNetwork</name><SSIDConfig><SSID><name>MyNetwork</name></SSID><nonBroadcast>false</nonBroadcast></SSIDConfig><connectionType>ESS</connectionType><connectionMode>manual</connectionMode><MSM><security><authEncryption><authentication>WPA2</authentication><encryption>AES</encryption><useOneX>true</useOneX></authEncryption><OneX xmlns="http://www.microsoft.com/networking/OneX/v1"><authMode>user</authMode><EAPConfig><EapHostConfig xmlns="http://www.microsoft.com/provisioning/EapHostConfig"><EapMethod><Type xmlns="http://www.microsoft.com/provisioning/EapCommon">25</Type><VendorId xmlns="http://www.microsoft.com/provisioning/EapCommon">0</VendorId><VendorType xmlns="http://www.microsoft.com/provisioning/EapCommon">0</VendorType><AuthorId xmlns="http://www.microsoft.com/provisioning/EapCommon">0</AuthorId></EapMethod><Config xmlns="http://www.microsoft.com/provisioning/EapHostConfig"><Eap xmlns="http://www.microsoft.com/provisioning/BaseEapConnectionPropertiesV1"><Type>25</Type><EapType xmlns="http://www.microsoft.com/provisioning/MsPeapConnectionPropertiesV1"><ServerValidation><DisableUserPromptForServerValidation>true</DisableUserPromptForServerValidation><ServerNames></ServerNames><TrustedRootCA> InsertCertThumbPrintHere </TrustedRootCA></ServerValidation><FastReconnect>true</FastReconnect><InnerEapOptional>false</InnerEapOptional><Eap xmlns="http://www.microsoft.com/provisioning/BaseEapConnectionPropertiesV1"><Type>26</Type><EapType xmlns="http://www.microsoft.com/provisioning/MsChapV2ConnectionPropertiesV1"><UseWinLogonCredentials>false</UseWinLogonCredentials></EapType></Eap><EnableQuarantineChecks>false</EnableQuarantineChecks><RequireCryptoBinding>false</RequireCryptoBinding><PeapExtensions><PerformServerValidation xmlns="http://www.microsoft.com/provisioning/MsPeapConnectionPropertiesV2">true</PerformServerValidation><AcceptServerName xmlns="http://www.microsoft.com/provisioning/MsPeapConnectionPropertiesV2">false</AcceptServerName></PeapExtensions></EapType></Eap></Config></EapHostConfig></EAPConfig></OneX></security></MSM></WLANProfile> </Data>
</Item>
</Add>
</Atomic>