Windows 预安装环境 (PE) 3.0 不支持 IEEE 802.1X 身份验证协议

应用对象
Microsoft System Center Configuration Manager 2007

简介

Windows 预安装环境 (PE) 3.0 不支持 IEEE 802.X 身份验证协议。 因此,Windows PE 3.0 客户端无法对配置为通过 IEEE 802.X 身份验证的网络访问的交换机进行身份验证。

详细信息

应用此修补程序后,Windows PE 3.0 支持 IEEE 802.X 身份验证协议。

注意 从以下项启动 Windows PE 时,不支持 802.1X 身份验证:

  • Microsoft System Center Configuration Manager 2007 操作系统部署
  • Microsoft 部署工具包

      

修补程序信息

Microsoft 提供了一个受支持的修补程序。 但此程序只用于解决本文中提到的问题。 此修补程序仅应用于出现本文所述问题的系统。 此修补程序可能还会接受进一步的测试。 因此,如果这个问题没有对你造成严重影响,建议你等待下一个包含此修补程序的软件更新。

如果该修补程序可供下载,则此知识库文章的顶部将出现“提供修补程序下载”部分。 如果此部分不存在,请联系 Microsoft 客户支持服务部门以获取该修补程序。

注意 如果发生其他问题或需要进行任何故障排除,您应该另行创建服务请求。 对于此特定修补程序无法解决的其他支持问题和事项,将照常收取支持费用。 有关Microsoft客户服务和支持电话号码的完整列表或创建单独的服务请求,请访问以下Microsoft网站:

http://support.microsoft.com/contactus/?ws=support 注意“修补程序下载可用”窗体显示修补程序可用的语言。 如果您找不到需要的语言,则说明该语言版本的修补程序未提供。

先决条件

安装此修补程序没有先决条件。

注册表信息

要使用此程序包中的某个修补程序,不必对注册表进行任何更改。

修补程序替代信息

此修补程序不会替换任何其他更新或修补程序。

文件信息

此修补程序的英文版具有下表中列出的文件属性 (或更高版本的文件属性) 。 这些文件的日期和时间以协调世界时 (UTC) 格式列出。 在查看文件信息时,文件时间将转换为本地时间。 要了解 UTC 与本地时间之间的时差,请使用“控制面板”中“日期和时间”项中的“时区”选项卡。

对于所有受支持的基于 x86 的 Windows PE 3.0 版本

文件名 文件版本 文件大小 日期 时间 平台
Dot3cfg.dll 6.1.7600.20541 82,432 2009 年 10 月 5 日 05:51 x86
Dot3api.dll 6.1.7600.20541 91,136 2009 年 10 月 5 日 05:51 x86
Dot3dlg.dll 6.1.7600.20541 47,104 2009 年 10 月 5 日 05:51 x86
Dot3msm.dll 6.1.7600.20541 115,200 2009 年 10 月 5 日 05:51 x86
Dot3svc.dll 6.1.7600.20541 214,016 2009 年 10 月 5 日 05:51 x86
Report.system.netdiagframework.xml 不适用 29,356 2009 年 7 月 22 日 2,304 不适用
Report.system.wired.xml 不适用 19,290 2009 年 7 月 22 日 2,304 不适用
Rules.system.netdiagframework.xml 不适用 57,286 2009 年 7 月 22 日 2,304 不适用
Rules.system.wired.xml 不适用 40,902 2009 年 7 月 22 日 2,304 不适用
Onex.dll 6.1.7600.20541 199,168 2009 年 10 月 5 日 05:51 x86
Onexui.dll 6.1.7600.20541 1,111,552 2009 年 10 月 5 日 05:51 x86

对于所有受支持的基于 x64 的 Windows PE 3.0 版本

文件名 文件版本 文件大小 日期 时间 平台
Dot3cfg.dll 6.1.7600.20541 69,120 2009 年 10 月 5 日 06:41 x64
Dot3api.dll 6.1.7600.20541 84,992 2009 年 10 月 5 日 06:41 x64
Dot3dlg.dll 6.1.7600.20541 57,856 2009 年 10 月 5 日 06:41 x64
Dot3msm.dll 6.1.7600.20541 103,936 2009 年 10 月 5 日 06:41 x64
Dot3svc.dll 6.1.7600.20541 252,416 2009 年 10 月 5 日 06:41 x64
Report.system.netdiagframework.xml 不适用 29,356 2009 年 7 月 22 日 2,323 不适用
Report.system.wired.xml 不适用 19,290 2009 年 7 月 22 日 2,323 不适用
Rules.system.netdiagframework.xml 不适用 57,286 2009 年 7 月 22 日 2,323 不适用
Rules.system.wired.xml 不适用 40,902 2009 年 7 月 22 日 2,323 不适用
Onex.dll 6.1.7600.20541 235,520 2009 年 10 月 5 日 06:41 x64
Onexui.dll 6.1.7600.16385 1,080,320 2009 年 7 月 14 日 01:41 x64
Dot3api.dll 6.1.7600.20541 91,136 2009 年 10 月 5 日 05:51 x86
Dot3dlg.dll 6.1.7600.16385 47,104 2009 年 7 月 14 日 01:15 x86
Dot3msm.dll 6.1.7600.20541 115,200 2009 年 10 月 5 日 05:51 x86
Onex.dll 6.1.7600.20541 199,168 2009 年 10 月 5 日 05:51 x86
Onexui.dll 6.1.7600.20541 1,111,552 2009 年 10 月 5 日 05:51 x86

将更新添加到 Windows PE 3.0

以下说明演示如何将以下更新添加到 Windows PE 3.0。 它不涉及与 System Center Configuration Manager或其他产品的任何集成。

972831 Windows 预安装环境不支持 IEEE 802.1X 身份验证协议, (PE) 3.0 你必须具有以下可用文件和先决条件或已安装:

  • 安装了适用于 Windows 7 的 Windows 自动安装工具包 (AIK) 的技术人员计算机

  • 394904_intl_i386_zip.exe 或 394905_intl_x64_zip.exe,具体取决于 Windows PE 映像的体系结构

  • 以下 VBS 脚本和两个 XML 文件。 它们位于 脚本示例部分中:

    • StartDot3.VBS
    • USERDATA-EAP-TLS.xml
    • Wired-WinPE-EAP-TLS.xml
  • 根证书,保存为RootCert.cer

  • 保存为SubCACert.cer的任何从属 CA 证书

  • 用户证书 pfx,保存为 Usercert.pfx

  • 基于 Windows 7 的计算机的 x86 或 x64 版本的 certutil.exe 和 certutil.exe.mui,具体取决于 Windows PE 映像的体系结构

注意以下示例生成 x86 版本的 Windows PE。

在基于 Windows 7、基于 Windows Server 2008 或基于 Windows Server 2008 R2 的计算机上,安装 Windows 7 AIK。

  1. 在技术人员计算机上,单击“ 开始”,指向“ 所有程序”,指向 “Windows AIK”,右键单击“ 部署工具命令提示符”,然后单击“ 以管理员身份运行”。

    菜单快捷方式将打开命令提示符窗口,并自动将环境变量设置为指向所有必要的工具。 默认情况下,所有工具都安装在 C:\Program Files\Windows AIK\Tools 文件夹中。

  2. 在命令提示符下,运行 Copype.cmd 脚本。 该脚本需要两个参数:硬件体系结构和目标位置。

    例如,运行 copype.cmd<体系结构><目标>,其中<体系结构>可以是 x86、amd64 或 ia64,并且< destination > 是本地目录的路径。

    例如,运行以下命令:
    copype.cmd x86 c:\winpe_x86The 脚本创建以下目录结构,并复制该体系结构所需的所有文件:
    \winpe_x86
    \winpe_x86\ISO
    \winpe_x86\mount

  3. 将基础映像 (Windows PE.wim) 复制到 \Winpe_x86\ISO\sources 文件夹中,并将文件重命名为 boot.wim。

    copy c:\winpe_x86\winpe.wim c:\winpe_x86\ISO\sources\boot.wim
    
  4. 装载基础 Windows PE 映像。 在此步骤中,将基础映像装载到本地目录,以便可以添加或删除包。

    Dism /Mount-Wim /WimFile:C:\winpe_x86\ISO\sources\boot.wim /index:1 /MountDir:C:\winpe_x86\mount
    
  5. 将以下包添加到映像。 请注意,每个命令都应是单行,并且该命令不得换行。

    添加 WINPE-WMI 包

    dism.exe /image:C:\winpe_x86\mount /add-package /packagepath:"C:\Program Files\Windows AIK\Tools\PETools\x86\WinPE_FPs\winpe-wmi.cab"
    
    dism.exe /image:C:\winpe_x86\mount /add-package /packagepath:"C:\Program Files\Windows AIK\Tools\PETools\x86\WinPE_FPs\en-us\winpe-wmi_en-us.cab" 
    

    添加 WINPE-Scripting 包

    dism.exe /image:C:\winpe_x86\mount /add-package /packagepath:"C:\Program Files\Windows AIK\Tools\PETools\x86\WinPE_FPs\winpe-scripting.cab"
    
    dism.exe /image:C:\winpe_x86\mount /add-package /packagepath:"C:\Program Files\Windows AIK\Tools\PETools\x86\WinPE_FPs\en-us\winpe-scripting_en-us.cab" 
    

    添加 WINPE-HTA 包

    dism.exe /image:C:\winpe_x86\mount /add-package /packagepath:"C:\Program Files\Windows AIK\Tools\PETools\x86\WinPE_FPs\winpe-hta.cab"
    
    dism.exe /image:C:\winpe_x86\mount /add-package /packagepath:"C:\Program Files\Windows AIK\Tools\PETools\x86\WinPE_FPs\en-us\winpe-hta_en-us.cab"
    
  6. 将 394904_intl_i386_zip.exe 更新的内容提取到 c:\972831 文件夹。

  7. 将 802.1X 支持的更新添加到映像:

    dism.exe /image:C:\winpe_x86\mount /add-package /packagepath:"c:\972831\Windows6.1-KB972831-86.cab" 
    
  8. 创建一个文件夹,以包含 802.1X 支持的其他文件。 若要执行此操作,请运行以下命令:
    md C:\winpe_x86\mount\winpe

  9. 将 certutil.exe 和 certutil.exe.mui 从基于 Windows 7 的计算机复制到 c:\winpe_x86\mount\winpe 文件夹。 这些文件可以在 %windir%\system32 文件夹中找到。

    注意 必须根据 Windows PE 映像的体系结构复制这些文件的正确版本。

  10. 编辑 Wired-WinPE-EAP-TLS.xml 文件,并更改以下行以输入正确的证书颁发机构的根 CA 证书指纹/哈希:

    <TrustedRootCA>00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</TrustedRootCA> 
    
  11. 使用 EAP-TLS 将连接配置文件复制到 Windows PE 目录:

    Copy Wired-WinPE-EAP-TLS.xml C:\winpe_x86\mount\winpe 
    
  12. 编辑 USERDATA-EAP-TLS.xml 文件,并更改“用户名”和“UserCert”的以下行:

    <eapTls:Username>contoso\username</eapTls:Username>
    
    <eapTls:UserCert>00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</eapTls:UserCert>
    
  13. 使用 EAP-TLS 将连接配置文件复制到 Windows PE 目录:

    copy USERDATA-EAP-TLS.xml C:\winpe_x86\mount\winpe 
    
  14. 将根证书和任何从属 CA 证书复制到 c:\winpe_x86\mount\winpe 文件夹。

  15. 将用户证书 pfx 复制到 c:\winpe_x86\mount\winpe 文件夹。

  16. 编辑 StartDot3.vbs 文件,并更改以下行:

    certutil –user –p PASSWORD -importpfx \winpe\USERcert.pfx NOEXPORT,NOCHAIN 
    

    注意 在此行中,必须将 PASSWORD 更改为导出证书时分配给证书的密码。

  17. 将 StartDot3.Vbs 复制到 c:\winpe_x86\mount\winpe 文件夹。

  18. 编辑startnet.cmd以自动运行 StartDot3.vbs:

    notepad C:\winpe_x86\mount\windows\system32\startnet.cmd
    
  19. 在 wpeinit 命令后添加 .\winpe\StartDot3.vbs,然后保存 startnet.cmd 文件。

  20. 卸载并提交对 的更改。WIM:

    Dism /Unmount-Wim /MountDir:C:\winpe_x86\mount /Commit
    
  21. 使用以下主题下的 Windows 7 AIK 帮助文件中概述的步骤创建可启动媒体:

    • “创建可启动 CD-ROM”
    • “创建可启动的 UFD”

脚本示例

Microsoft 提供的编程示例仅供演示,不提供明示或暗示的担保,包括但不限于对适销性和/或特定用途适用性的暗示担保。 本文假设你熟悉所演示的编程语言以及用于创建和调试过程的工具。 Microsoft 支持专业人员可以帮助解释特定过程的功能,但他们不会修改这些示例以提供新增功能或构建步骤以满足你的特定需要。
如果你的编程经验有限,可能需要联系 Microsoft 认证合作伙伴或 Microsoft 咨询服务。 有关详细信息,请访问以下Microsoft网站:

Microsoft认证合作伙伴 - https://partner.microsoft.com/global/30000104

Microsoft咨询服务 - http://support.microsoft.com/gp/advisoryservice

  有关可用支持选项以及如何联系Microsoft的详细信息,请访问以下Microsoft网站: http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS

StartDot3.VBS

              

‘================================
‘StartDot3.VBS
‘================================
Dim WshShell
Set WshShell = CreateObject("WScript.Shell")

commandLine = "certutil -addstore Root \winpe\Rootcert.cer"
Return  = WshShell.Run(commandLine, 0, true)

commandLine = "certutil -addstore CA \winpe\SubCAcert.cer"
Return  = WshShell.Run(commandLine, 0, true)

commandLine = "certutil –user –p PASSWORD -importpfx \winpe\USERcert.pfx NOEXPORT,NOCHAIN"
Return  = WshShell.Run(commandLine, 0, true)

commandLine = "net start dot3svc"
Return  = WshShell.Run(commandLine, 0, true)

commandLine = "netsh lan add profile filename=\winpe\Wired-WinPE-EAP-TLS.xml"
Return  = WshShell.Run(commandLine, 0, true)

commandLine = "netsh lan set eapuserdata filename=\winpe\Wired-WinPE-UserData-EAP-TLS.xml allusers=yes interface=*"
Return  = WshShell.Run(commandLine, 0, true)

USERDATA-EAP-TLS.xml

              

<?xml version="1.0"?>
<EapHostUserCredentials xmlns="http://www.microsoft.com/provisioning/EapHostUserCredentials" xmlns:eapCommon="http://www.microsoft.com/provisioning/EapCommon" xmlns:baseEap="http://www.microsoft.com/provisioning/BaseEapMethodUserCredentials">
 <EapMethod>
  <eapCommon:Type>13</eapCommon:Type>
  <eapCommon:AuthorId>0</eapCommon:AuthorId>
 </EapMethod>
 <Credentials xmlns:eapUser="http://www.microsoft.com/provisioning/EapUserPropertiesV1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:baseEap="http://www.microsoft.com/provisioning/BaseEapUserPropertiesV1" xmlns:eapTls="http://www.microsoft.com/provisioning/EapTlsUserPropertiesV1">
  <baseEap:Eap>
  <baseEap:Type>13</baseEap:Type>
   <eapTls:EapType>
    <eapTls:Username>contoso\username</eapTls:Username>
    <eapTls:UserCert>00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</eapTls:UserCert>
   </eapTls:EapType>
  </baseEap:Eap>
 </Credentials>
</EapHostUserCredentials>

Wired-WinPE-EAP-TLS.xml

              

<?xml version="1.0"?>
<LANProfile xmlns="http://www.microsoft.com/networking/LAN/profile/v1">
 <MSM>
  <security>
   <OneXEnforced>false</OneXEnforced>
   <OneXEnabled>true</OneXEnabled>
   <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">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>
<TrustedRootCA>00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</TrustedRootCA>
</ServerValidation>
<DifferentUsername>false</DifferentUsername>
<PerformServerValidation xmlns="http://www.microsoft.com/provisioning/EapTlsConnectionPropertiesV2">true</PerformServerValidation>
<AcceptServerName xmlns="http://www.microsoft.com/provisioning/EapTlsConnectionPropertiesV2">false</AcceptServerName>
</EapType>
</Eap>
</Config>
</EapHostConfig>
</EAPConfig>
   </OneX>
  </security>
 </MSM>
</LANProfile>

参考资料

本文中提到的第三方产品由 Microsoft 以外的其他公司提供。 Microsoft 不对这些产品的性能或可靠性提供任何明示或暗示性担保。