簡介
作為 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