博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
lzg_ad:在WES中实现设备更新代理
阅读量:5954 次
发布时间:2019-06-19

本文共 3037 字,大约阅读时间需要 10 分钟。

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. 编辑脚本
    使用简单的文本编辑器如notepad.exe创建和修改DUA脚本。您也可以从   下载使用DUAScriptGen 工具。这个工具提供GUI(图形用户界面)帮助您创建DUA脚本。 它是特殊工具,让编写DUA脚本文件的安全更新更加容易。Mike Hall 和 Aaron Stebner最初创造了这个工具。 已经通过Codeplex发布了。
    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

转载地址:http://veoxx.baihongyu.com/

你可能感兴趣的文章
46.tornado绑定域名或者子域名泛域名的处理
查看>>
文本过滤--sed 1
查看>>
PHP CURL并发,多线程
查看>>
ES 概念及动态索引结构和索引更新机制
查看>>
iOS 开发百问(2)
查看>>
MySQL for Mac 安装和基本操作(包含后期的环境变量设置)
查看>>
Linux及windows下常见压缩程序的压缩能力对比
查看>>
JAVAEE-junit测试hibernate里的方法(hibernate交给spring管理)的问题
查看>>
MOTO MB860 国行2.3.5优化增强ROM_Top_T5_end(经典收藏版)
查看>>
C#学习经典(二)---MVC框架(Model view Controller)
查看>>
log4j配置文件说明
查看>>
Maven: 为Compiler插件设置source和target版本
查看>>
linux下永久添加静态路由
查看>>
android 全局变量和局部变量命名规则
查看>>
Ubuntu Sub-process /usr/bin/dpkg
查看>>
详解DNS的常用记录(下):DNS系列之三
查看>>
linux的日志服务器关于屏蔽一些关键字的方法
查看>>
事情的两面性
查看>>
只要会营销,shi都能卖出去?
查看>>
sed单行处理命令奇偶行输出
查看>>