简介
作为 Microsoft的质量和安全性承诺的一部分,有关人员正在坚持不懈地进行努力,以确保嵌入式客户能够使用 Microsoft Windows操作系统 (OS) 的关键性修补程序。这些修补程序作为已更新的 SLD 组件发布、下载和导入到组件数据库中。这样,当客户下一次设计和生成配置或者升级较旧的配置时,就可以使用这些已更新的组件。
与 Microsoft Windows XP Professional QFE 不同,不能将组件 QFE 直接应用于已部署的设备。为了使 QFE 更新能够进行,带有 Service Pack 1 的 Windows XP Embedded 包含 DUA 组件。该服务在嵌入式设备上运行,从而使您可以执行远程维护和管理任务。使用 DUA 和脚本转换器,可以将 QFE 更新打包并使其面向自己的设备。
下载 Windows XP Embedded QFE
每个 QFE 都提供了足够的信息,以便创作面向特定设备的设备更新程序。QFE 发行说明的“其他信息”部分包含有关该组件中哪些内容已经更改的详细信息。使用该信息,可以用相关的二进制文件和注册表更改更新已部署的系统。
对于本文,请使用在 2002 年 8 月 22 日发行的 QFE Q323759。它是针对 Microsoft Internet Explorer 的累积修补程序。
注 只应该将 QFE 应用于已部署的系统中的组件。本文中详述的更新不是用于向已部署的设备、受到 Enhanced Write Filter (EWF) 保护的设备以及脱机映像中添加新组件的机制。
在下载 QFE Q323759 之后,必须验证注册表配置,然后将新组件导入到组件数据库中。
验证注册表
了解要更新的设备的配置是很重要的,尤其是在修改注册表时。为了更好地了解配置,请分析要更新的设备的脱机配置。在发出命令以更新注册表之前,请加载脱机映像的软件配置单元。
加载脱机配置单元
1. 打开注册表编辑器。
2. 从注册表树中,选择 HKEY_USERS 或 HKEY_LOCAL_MACHINE。
3. 从 File 菜单中,选择 Load Hive。
4. 导航到要加载的配置单元。
加载位于脱机运行时映像的 \Windows\System32\Config 下的软件配置单元。
5. 单击 Open。该配置单元被加载。
6. 在 Key Name 中,键入要分配给该配置单元的名称,然后单击 OK。
分析该配置单元,以确保要为其设置值的项实际存在。如果它们不存在,则必须创建这些项。
将 QFE 应用于已部署的设备
在生成嵌入式运行时映像时,请在部署它之前计划如何维护它。在配置中包含 DUA 组件是一种适合于开始时采取的好方法。
向配置中添加 DUA 组件
1. 打开目标设计器。
2. 打开或创建一个配置。
3. 添加设备更新代理组件。
4. 对于本文而言,请将 Internet Explorer 组件添加到配置中。QFE 被应用于该组件。
配置 DUA
1. 选择 Require HTTP Support 复选框。
要从远程 Web 服务器检索设备更新程序和 QFE 二进制文件,需要拥有 HTTP 支持。
2. 设置轮询间隔。
这会使设备按照该间隔指定的频率轮询更新。只有在 Poll Time/Day 表中指定了轮询时,才会发生轮询。
注 出于测试目的,请将轮询间隔设置为一个较低的值,如 30 秒。
3. 清除 Poll Jitter 复选框。
通常,在不希望所有设备都在相同时间轮询时,可以使用 Poll Jitter。
4. 在 Working Directory 文本框中,输入以下目录:
C:\dua\working
如果 c 不是系统驱动器,请相应地修改上述路径。
您可以指定任何有效目录;如果该目录不存在,则 DUA 会创建它。这是 DUA 在命令文件执行期间用作临时存储区的目录。
5. 在 Select the Command Path Type 选项中,选择 Remote using HTTP。
这会指定 DUA 通过 HTTP 轮询远程命令文件。因此,需要使用 Web 服务器来承载命令文件。
6. 输入您要用来承载 DUA 命令文件的主机名。
不应该在这里指定协议(如 HTTP)。
7. 在 Complete Path to the Command File including Filename and Extension 文本框中,输入下面的指向更新的路径:Cmdfiles\Qfe01.dup
这是更新的远程路径 DUA 拉机制。因为这是拉机制,所以必须指定初始命令文件。
注 前面的步骤表明必须设置一个远程 Web 服务器,并且该服务器必须配置一个 Cmdfiles 目录。因为您将不会提供用户名和密码,所以应该将该站点设置为允许进行匿名浏览。
8. 在 Advanced Settings 下,将协议设置从默认值 HTTPS 更改为 HTTP。
现在,您就可以生成和部署运行时映像了。
创作设备更新程序
设备更新程序 (.dup) 文件是经过编译的 DUA 脚本 (.dus) 文件。使用在 QFE 发行说明的“其他信息”部分中详述的二进制文件和注册表更改来创建一个 .dus 文件。
在 QFE Q323759 中,更新了下列二进制文件:
Windows\System32\mshtml.dll
Windows\System32\shdoclc.dll
Windows\System32\shdocvw.dll
Windows\System32\url.dll
Windows\System32\urlmon.dll
Windows\System32\wininet.dll
在本文中,您从自己的 Web 服务器中下载这些二进制文件,然后移动这些文件。
在创作脚本时,请注意下列事项:
用您的主机的名称替换脚本中的 myhostname 值。
一旦该脚本执行,注册表更改将立即生效。但是,只有在重新启动设备之后,才会移动这些文件。
在文本编辑器中,创建一个名为 Qfe01.dus 的新文件并添加以下脚本 ― 该脚本下载 QFE 二进制文件更改并将其应用于设备。
// Retrieve the QFE binaries from the Web server.
// Edit myhostname to reflect your specific host.
HTTPGET,0,,myhostname,,cmdfiles/Q323759/Q323759_mshtml.dll,1,%systemdrive%
\dua\working\mshtml.dll,1
HTTPGET,0,,myhostname,,cmdfiles/Q323759/Q323759_shdoclc.dll,1,
%systemdrive%\dua\working\shdoclc.dll,1
HTTPGET,0,,myhostname,,cmdfiles/Q323759/Q323759_shdocvw.dll,1,
%systemdrive%\dua\working\shdocvw.dll,1
HTTPGET,0,,myhostname,,cmdfiles/Q323759/Q323759_url.dll,1,%systemdrive%dua\working\url.dll,1
HTTPGET,0,,myhostname,,cmdfiles/Q323759/Q323759_urlmon.dll,1,%systemdrive%
\dua\working\urlmon.dll,1
HTTPGET,0,,myhostname,,cmdfiles/Q323759/Q323759_wininet.dll,1,
%systemdrive%\dua\working\wininet.dll,1
// Move files when the device is rebooted.
MOVEFILE,0,1,%systemdrive%\dua\working\mshtml.dll,1,%System32%\mshtml.dll,
DAMOVEFILE_DELAY_UNTIL_REBOOT
MOVEFILE,0,1,%systemdrive%\dua\working\shdoclc.dll,1,%System32%shdoclc.dll,DAMOVEFILE_DELAY_UNTIL_REBOOT
MOVEFILE,0,1,%systemdrive%\dua\working\shdocvw.dll,1,%System32%shdocvw.dll,DAMOVEFILE_DELAY_UNTIL_REBOOT
MOVEFILE,0,1,%systemdrive%\dua\working\url.dll,1,%System32%\url.dll,
DAMOVEFILE_DELAY_UNTIL_REBOOT
MOVEFILE,0,1,%systemdrive%\dua\working\urlmon.dll,1,%System32%\urlmon.dll,
DAMOVEFILE_DELAY_UNTIL_REBOOT
MOVEFILE,0,1,%systemdrive%\dua\working\wininet.dll,1,%System32%wininet.dll,DAMOVEFILE_DELAY_UNTIL_REBOOT
在 QFE 发行说明的“其他信息”部分中,您可以看到下列注册表项下的注册表值被更新了:
HKLM\Software\Microsoft\Active Setup\Installed Components\{61E6EAE5-7821-4AC1-9BBD-AED032A8E273}
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings
本文假设这些项已经存在。如果这些项不存在于您的配置中,请参阅产品文档资料中的 Device Update Agent,以了解有关如何发出 REGCREATEKEY 命令的详细信息。
要用所有需要的 QFE 更改来更新设备注册表,请在刚刚创作的 HTTPGET 和 MOVEFILE 命令后面追加以下 REGSETVALUE 脚本。
//Set the values for the QFE.
REGSETVALUE,0,HKEY_LOCAL_MACHINE,0,SOFTWARE\Microsoft\Active
Setup\Installed Components\{61E6EAE5-7821-4AC1-9BBD-
AED032A8E273},0,,DAREG_SZ,Q323759
REGSETVALUE,0,HKEY_LOCAL_MACHINE,0,SOFTWARE\Microsoft\Active
Setup\Installed Components\{61E6EAE5-7821-4AC1-9BBD-
AED032A8E273},0,IsInstalled,DAREG_DWORD_LITTLE_ENDIAN,1
REGSETVALUE,0,HKEY_LOCAL_MACHINE,0,SOFTWARE\Microsoft\Active
Setup\Installed Components\{61E6EAE5-7821-4AC1-9BBD-
AED032A8E273},0,Version,DAREG_SZ,6,0,2719,2200
REGSETVALUE,0,HKEY_LOCAL_MACHINE,0,SOFTWARE\Microsoft\Active
Setup\Installed Components\{61E6EAE5-7821-4AC1-9BBD-
AED032A8E273},0,Locale,DAREG_SZ,EN
REGSETVALUE,0,HKEY_LOCAL_MACHINE,0,SOFTWARE\Microsoft\Active
Setup\In