使用自定义设备配置文件使用 Intune 创建具有预共享密钥的 WiFi 配置文件

重要

Microsoft Intune 已于 2024 年 12 月 31 日终止对有权访问 Google 移动服务的设备上的 Android 设备管理员管理的支持, (GMS) 。 在此日期之后,设备注册、技术支持、bug 修复和安全修复将不可用。 如果当前使用设备管理员管理,建议在支持结束之前切换到 Intune 中的另一个 Android 管理选项。 有关详细信息,请参阅 在 GMS 设备上结束对 Android 设备管理员的支持

预共享密钥 (PSK) 通常用于对 WiFi 网络或无线 LAN 的用户进行身份验证。 使用 Intune,可以使用预共享密钥创建 WiFi 设备配置策略。

若要创建配置文件,请使用 Intune 中的“自定义设备配置文件”功能

此功能适用于:

  • Android 设备管理员
  • 带工作配置文件的 Android Enterprise 个人拥有的设备
  • Windows
  • 基于 EAP 的 Wi-Fi

在 XML 文件中添加 Wi-Fi 和 PSK 信息。 然后,将 XML 文件添加到 Intune 中的自定义设备配置策略。 策略准备就绪后,将策略分配给设备。 下次设备签入时,应用策略,并在设备上创建 Wi-Fi 配置文件。

本文介绍如何在 Intune 中创建策略,并包含基于 EAP 的 Wi-Fi 策略的 XML 示例。

重要

  • 将预共享密钥与 Windows 10/11 结合使用会导致在 Intune 中显示修正错误。 发生这种情况时,Wi-Fi 配置文件将正确分配给设备,并且配置文件确实按预期工作。
  • 如果导出的 Wi-Fi 配置文件含有预共享密钥,请务必保管好该文件。 密钥采用纯文本格式。 保护密钥是你的责任。

先决条件

开始之前

  • 从连接到该网络的计算机复制 XML 语法可能更容易,如本文) 从 现有 Wi-Fi 连接 (创建 XML 文件 中所述。
  • 可以通过添加更多的 OMA-URI 设置来添加多个网络和密钥。
  • 对于 iOS/iPadOS,在 Mac 工作站上使用 Apple Configurator 来设置配置文件。
  • PSK 需要 64 个十六进制数字的字符串,或 8 到 63 个可打印的 ASCII 字符的密码。 不支持某些字符,例如星号 (*) 。

创建自定义配置文件

  1. 登录到Microsoft Intune 管理中心

  2. 选择“设备”>“管理设备”>“配置”>“创建”>“新策略”。

  3. 输入以下属性:

    • 平台:选择平台。
    • 配置文件类型:选择“ 自定义”。 或者,选择“模板”>“自定义”
  4. 选择“创建”。

  5. 在“基本信息”中,输入以下属性:

    • 名称:输入策略的描述性名称。 为策略命名,以便稍后可以轻松地识别它们。 例如,一个好的策略名称是 Android-Custom Wi-Fi 配置文件
    • 说明:输入配置文件的说明。 此设置是可选的,但建议进行。
  6. 选择 下一步

  7. 在“配置设置”中,选择“添加”。 输入具有以下属性的新 OMA URI 设置:

    1. 名称:输入 OMA-URI 设置的名称。

    2. 描述:输入 OMA-URI 设置的描述。 此设置是可选的,但建议进行。

    3. OMA-URI:使用以下选项之一:

      • 对于 Android./Vendor/MSFT/WiFi/Profile/SSID/Settings
      • 对于 Windows ./Vendor/MSFT/WiFi/Profile/SSID/WlanXml

      注意

      • 请务必在 OMA-URI 值的开头包含句点字符。
      • 如果 SSID 有空格,则添加转义空格 %20

      SSID (服务集标识符) 是要为其创建策略 Wi-Fi 网络名称。 例如,如果 Wi-Fi 命名为 Hotspot-1,则输入 ./Vendor/MSFT/WiFi/Profile/Hotspot-1/Settings。 如果 Wi-Fi 命名为 Contoso WiFi,则输入 ./Vendor/MSFT/WiFi/Profile/Contoso%20WiFi/Settings(包含 %20 转义空格)。

    4. 数据类型:选择“字符串”。

    5. :粘贴 XML 代码。 请参阅本文中的示例。 更新每个值以匹配你的网络设置。 请参阅代码的注释部分获取一些提示。

    6. 选择“添加”,保存所做更改。

  8. 选择 下一步

  9. 在“作用域标记”(可选)中,分配一个标记以将配置文件筛选到特定 IT 组(如 US-NC IT TeamJohnGlenn_ITDepartment。 有关范围标记的详细信息,请转到 使用分布式 IT 的 RBAC 和范围标记

    选择 下一步

  10. 在“分配”中,选择要接收配置文件的用户或用户组。 有关分配配置文件的详细信息,请转到 分配用户和设备配置文件

    注意

    只能将此策略分配到用户组。

    选择 下一步

  11. “查看并创建”中查看设置。 选择“创建”时,将保存所做的更改并分配配置文件。 该策略也会显示在配置文件列表中。

每个设备在下次签入时,将应用该策略,且将在设备上创建 Wi-Fi 配置文件。 然后设备便能够自动连接到网络。

Android 或 Windows Wi-Fi 配置文件示例

下面的示例包含针对 Android 或 Windows Wi-Fi 配置文件的 XML 代码。 该示例用于展示正确的格式并提供更多信息。 但它只是一个示例,并非推荐的环境配置。

须知内容

  • <protected>false</protected> 必须设为 false。 如果 为 true,可能会导致设备需要加密的密码,然后尝试解密它;这可能会导致连接失败。

  • <hex>53534944</hex> 应设置为 <name><SSID of wifi profile></name> 的十六进制值。 Windows 10/11 设备可能会返回错误 x87D1FDE8 Remediation failed ,但设备仍包含配置文件。

  • XML 包含特殊字符,例如 &(& 号)。 使用特殊字符可以防止 XML 按预期工作。

示例

<!--
<hex>53534944</hex> = The hexadecimal value of <name><SSID of wifi profile></name>
<Name of wifi profile> = Name of profile shown to users. For example, enter <name>ContosoWiFi</name>.
<SSID of wifi profile> = Plain text of SSID. Does not need to be escaped. It could be <name>Your Company's Network</name>.
<nonBroadcast><true/false></nonBroadcast>
<Type of authentication> = Type of authentication used by the network, such as WPA2PSK.
<Type of encryption> = Type of encryption used by the network, such as AES.
<protected>false</protected> do not change this value, as true could cause device to expect an encrypted password and then try to decrypt it, which can result in a failed connection.
<password> = Plain text of the password to connect to the network
-->

<WLANProfile xmlns="http://www.microsoft.com/networking/WLAN/profile/v1">
  <name><Name of wifi profile></name>
  <SSIDConfig>
    <SSID>
      <hex>53534944</hex>
 <name><SSID of wifi profile></name>
    </SSID>
    <nonBroadcast>false</nonBroadcast>
  </SSIDConfig>
  <connectionType>ESS</connectionType>
  <connectionMode>auto</connectionMode>
  <autoSwitch>false</autoSwitch>
  <MSM>
    <security>
      <authEncryption>
        <authentication><Type of authentication></authentication>
        <encryption><Type of encryption></encryption>
        <useOneX>false</useOneX>
      </authEncryption>
      <sharedKey>
        <keyType>passPhrase</keyType>
        <protected>false</protected>
        <keyMaterial>password</keyMaterial>
      </sharedKey>
      <keyIndex>0</keyIndex>
    </security>
  </MSM>
</WLANProfile>

基于 EAP 的 Wi-Fi 配置文件示例

以下示例包含基于 EAP 的 Wi-Fi 配置文件的 XML 代码。 该示例显示了正确的格式,并提供更多详细信息。 但它只是一个示例,并非推荐的环境配置。

    <WLANProfile xmlns="http://www.microsoft.com/networking/WLAN/profile/v1">
      <name>testcert</name>
      <SSIDConfig>
        <SSID>
          <hex>7465737463657274</hex>
          <name>testcert</name>
        </SSID>
        <nonBroadcast>true</nonBroadcast>
      </SSIDConfig>
      <connectionType>ESS</connectionType>
      <connectionMode>auto</connectionMode>
      <autoSwitch>false</autoSwitch>
      <MSM>
        <security>
          <authEncryption>
            <authentication>WPA2</authentication>
            <encryption>AES</encryption>
            <useOneX>true</useOneX>
            <FIPSMode     xmlns="http://www.microsoft.com/networking/WLAN/profile/v2">false</FIPSMode>
          </authEncryption>
          <PMKCacheMode>disabled</PMKCacheMode>
          <OneX xmlns="http://www.microsoft.com/networking/OneX/v1">
            <cacheUserData>false</cacheUserData>
            <authMode>user</authMode>
            <EAPConfig>
              <EapHostConfig     xmlns="http://www.microsoft.com/provisioning/EapHostConfig">
                <EapMethod>
                  <Type xmlns="http://www.microsoft.com/provisioning/EapCommon">13</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>13</Type>
                    <EapType xmlns="http://www.microsoft.com/provisioning/EapTlsConnectionPropertiesV1">
                      <CredentialsSource>
                        <CertificateStore>
                          <SimpleCertSelection>true</SimpleCertSelection>
                        </CertificateStore>
                      </CredentialsSource>
                      <ServerValidation>
                        <DisableUserPromptForServerValidation>false</DisableUserPromptForServerValidation>
                        <ServerNames></ServerNames>
                      </ServerValidation>
                      <DifferentUsername>false</DifferentUsername>
                      <PerformServerValidation xmlns="http://www.microsoft.com/provisioning/EapTlsConnectionPropertiesV2">false</PerformServerValidation>
                      <AcceptServerName xmlns="http://www.microsoft.com/provisioning/EapTlsConnectionPropertiesV2">false</AcceptServerName>
                      <TLSExtensions xmlns="http://www.microsoft.com/provisioning/EapTlsConnectionPropertiesV2">
                        <FilteringInfo xmlns="http://www.microsoft.com/provisioning/EapTlsConnectionPropertiesV3">
                          <AllPurposeEnabled>true</AllPurposeEnabled>
                          <CAHashList Enabled="true">
                            <IssuerHash>75 f5 06 9c a4 12 0e 9b db bc a1 d9 9d d0 f0 75 fa 3b b8 78 </IssuerHash>
                          </CAHashList>
                          <EKUMapping>
                            <EKUMap>
                              <EKUName>Client Authentication</EKUName>
                              <EKUOID>1.3.6.1.5.5.7.3.2</EKUOID>
                            </EKUMap>
                          </EKUMapping>
                          <ClientAuthEKUList Enabled="true"/>
                          <AnyPurposeEKUList Enabled="false">
                            <EKUMapInList>
                              <EKUName>Client Authentication</EKUName>
                            </EKUMapInList>
                          </AnyPurposeEKUList>
                        </FilteringInfo>
                      </TLSExtensions>
                    </EapType>
                  </Eap>
                </Config>
              </EapHostConfig>
            </EAPConfig>
          </OneX>
        </security>
      </MSM>
    </WLANProfile>

从现有的 Wi-Fi 连接创建 XML 文件

还可以从现有的 Wi-Fi 连接创建 XML 文件。 在 Windows 计算机上,使用以下步骤:

  1. 为导出的 Wi-Fi 配置文件创建本地文件夹,例如 c:\WiFi。

  2. 以管理员身份打开命令提示符(右键单击 cmd>“以管理员身份运行”)。

  3. 运行 netsh wlan show profiles。 将列出所有配置文件的名称。

  4. 运行 netsh wlan export profile name="YourProfileName" folder=c:\Wifi。 此命令在 c:\Wifi 中创建一个名为 Wi-Fi-YourProfileName.xml 的文件。

    • 如果要导出包含预共享密钥的 Wi-Fi 配置文件,请将 添加到 key=clear 命令。 参数 key=clear 以纯文本形式导出密钥,这是成功使用配置文件所必需的:

      netsh wlan export profile name="YourProfileName" key=clear folder=c:\Wifi

    • 如果导出的 Wi-Fi 配置文件 <name></name> 元素包含空格,则可能会在分配时返回错误 ERROR CODE 0x87d101f4 ERROR DETAILS Syncml(500) 。 发生此问题时,配置文件会在 \ProgramData\Microsoft\Wlansvc\Profiles\Interfaces 中列出,并显示为已知网络。 但是,在“由 ... 管理的区域”URI 中不能成功显示为托管策略。

      要解决此问题,请删除空格。

拥有 XML 文件后,将 XML 语法复制并粘贴到 OMA-URI 设置 >数据类型中。 创建自定义配置文件(本文中)列出了步骤。

提示

\ProgramData\Microsoft\Wlansvc\Profiles\Interfaces\{guid} 还包括 XML 格式的所有配置文件。

最佳做法

  • 在部署具有 PSK 的 Wi-Fi 配置文件前,请确认该设备能否直接连接到终结点。

  • 在轮换密钥(密码或通行短语)时,预计故障时间并进行部署规划。 应:

    • 确认设备具有与 Internet 的备用连接。

      例如,最终用户可以切换回来宾 WiFi(或其他一些 WiFi 网络)或者必须有手机网络连接来与 Intune 通信。 额外的连接允许用户在设备上更新公司 Wi-Fi 配置文件时接收策略更新。

    • 在非工作时间推送新的 Wi-Fi 配置文件。

    • 警告用户连接可能受到影响。

资源

请务必分配配置文件,并监视配置文件状态。