天天看點

lzg_ad:在WES中實作裝置更新代理

DUA元件使您可以遠端更新Windows Embedded Standard 2009裝置的運作時映像。它是運作在您裝置上的一個服務程式,該服務程式處理一個執行更新和維護操作的腳本。DUA是一個有着很少依賴關系的小元件,對更新Windows  Embedded Standard 2009映像是很有用的。用DUA,您可以更新應用程式或應用程式資料,部署新的二進制檔案和裝置驅動程式,修改系統資料庫,自動執行清理和管理任務。

1. 向配置中添加DUA元件

    DUA是一個元件,能使您的運作時映像遠端自行更新。啟用此功能,您需要添加DUA到您的配置并配置它,以便它能夠為更新映像輪詢一個确定的位置。

2. 添加DUA元件

    要在您的配置上添加DUA元件,在目标設計器的浏覽器中,在“Software>System>Management>Infrastructure”下找到Device Update Agent元件,添加到您的配置。要測試和管理您裝置上的DUA,在目标設計器的元件浏覽器中,找到Software>System>Management>Applications,添加Event Log元件;在“Software>System>User Interface>Shells>Windows Shell”下,添加Registry Editor元件。同時在您配置DUA設定之前完成檢查依賴關系。

3. 配置DUA元件

    因為DUA要在您的裝置上作為服務程式運作,并為更新設定一個指定的位置,您必須配置DUA用來輪詢包含更新的位置,以及它的啟動和運作參數。DUA有一些其他配置設定,例如,為服務程式指定使用者帳戶的權限,為輪詢網站或媒體指定輪詢間隔和觸發點(在輪詢間隔中随機啟動),設定環境變量,和工作目錄。

4. 裝置更新腳本

    DUA使用一個可執行檔案,它是由裝置更新腳本編譯器(Dusc.exe) 從您 建立的自定義腳本(.dus檔案)編譯的。在運作Dusc.exe之前,你必須通過在指令提示符下運作“regsvr32 duscaut.dll”注冊 Duscaut.dll檔案。 這些檔案位于您的開發計算機上的[驅動器] \Program Files\Windows Embedded\bin目錄下。注意,在Windows Vista系統上Dusc.exe必須用管理者權限運作。腳本由一套17個被預定義的指令組成,如下表所示。在該腳本中,您可以使用指令号碼或它的名稱和一個參數數組。建立更新指令腳本後,運作腳本編譯器建立指令檔案( . dup檔案) ,放在DUA設定的指定輪詢的位置,連同作為更新部分一起釋出到到映像檔案中。

指令

順序

描述

Reboot

1

關閉和重新開機系統

Delay

2

挂起執行

Execute

3

執行新程序—指定的上下文

CreateDirectory

4

建立一個新目錄

RemoveDirectory

5

移除一個存在的目錄

SetFileAttributes

6

設定一個檔案的屬性

CopyFile

7

複制存在的檔案到一個新檔案

DeleteFile

8

删除存在的檔案

RegCreateKey

9

在系統資料庫中建立一個系統資料庫項

RegDeleteKey

10

删除一個存在的系統資料庫項

RegSetValue

11

為指定的系統資料庫值設定資料和類型

RegDeleteValue

12

從指定的系統資料庫項,删除命名值

RegSaveKey

13

儲存系統資料庫項和子鍵到指定的檔案

RegRestoreKey

14

從一個檔案恢複系統資料庫項

ExecuteProcess

15

執行新程序

HTTPGet

16

通過HTTP(S)讀并且檢索一個遠端檔案

MoveFile

17

移動存在的檔案到一個新位置

5. 編輯腳本

    DUA腳本遵循表随在上表中描述的指令文法。例如,要延遲10秒,建立c:\UpdatesDUA目錄并且重新開始系統,你可以使用以下腳本:

    2,0,10

    4,,,C:\UpdatesDUA

    1,,DAREBOOTOPT_REBOOT

    要執行超出了可用指令的任務,您可以執行其他程式,如果程式支援,使用DUA“Execute”指令傳遞指令行參數。

6. 運作時重新配置

    可以先用預設的設定部署DUA,然後用DUA腳本重新配置。如果您需要更改輪詢頻率,更新資源,或其它類似的設定,這是非常有用的。例如,要改變輪詢位置,您可以使用下面的腳本:

//Delete existing poll location registry value

10,0,HKEY_LOCAL_MACHINE,,System\CurrentControlSet\Services\DUAgent\Parameters\Config\Sessions\0000

//New registry key

9,0,HKEY_LOCAL_MACHINE,,System\CurrentControlSet\Services\DUAgent\Parameters\Config\Sessions\0000,0

//Specify polling location and type

11,0,HKEY_LOCAL_MACHINE,0,SYSTEM\CurrentControlSet\Services\DUAgent\Parameters\Config\Sessions\0000,0,Type,4,1

//Set remote host to CustomHost

11,0,HKEY_LOCAL_MACHINE,0,SYSTEM\CurrentControlSet\Services\DUAgent\Parameters\Config\Sessions\0000,0,HostName,1,CustomHost

//Set the host port to 80

11,0,HKEY_LOCAL_MACHINE,0,SYSTEM\CurrentControlSet\Services\DUAgent\Parameters\Config\Sessions\0000,0,HostPort,4,80

//Set the protocol to HTTP (0)

11,0,HKEY_LOCAL_MACHINE,0,SYSTEM\CurrentControlSet\Services\DUAgent\Parameters\Config\Sessions\0000,0,Protocol,4,0

7. 小結

    DUA元件能使您為您的裝置配置更新。DUA元件包括一個可執行檔案,在裝置上作為服務程式運作并且解析一個您建立的腳本,腳本概述了執行更新時采取的行動。建立指令腳本後,裝置更新腳本編譯器編譯産生可執行檔案,然後部署到該裝置。

本文轉自雷志剛 51CTO部落格,原文連結:http://blog.51cto.com/leizhigang/237785

繼續閱讀