无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 4629|回复: 8
打印 上一主题 下一主题

集成 .Net 2.0 的PE与PE环境下的Wim管理工具的开发

[复制链接]
跳转到指定楼层
1#
发表于 2009-12-15 23:42:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
感谢 ltycomputer 提供的相关帮助!!

确保你工作的 xp平台 正确 安装 了  DotNet FrameWork 2.0
下载 BartPE 的 PeBuilder
下载 VC2005 runtime 插件 和 DotNet2.0 插件
分别解压 vc2005rt插件 DotNet2.0插件
运行 DotNet2.0插件 解压得到的文件夹中的copyfile.exe 得到 DotNet 的所有文件 于files文件夹内
将此时的 vc2005rt插件 DotNet2.0插件解压得到的文件夹 复制到 PeBuilder安装目录中的plugin中
此时配置 PeBuilder 确保plugins 的 VC2005 runtime 和 DotNet2.0 的Enabled属性处于yes
生成 非RamDisk引导方式的 PE的ISO版本(体积大约是 620MB 其中包括比较完整的.NetFrameWork2.0 500MB)
运行 调试 此PE光盘 在此环境中 运行I386\system32\下的 vc2005rt-install.cmd(也可以根据此批
处理的内容手动操作 反正就是将一个注册表值 由1改为0  此值位于SETUPREG.HIV中
如果 在外部平台通过注册表编辑器将其加载 并修改保存的话 好像就无法 无法启动PE了 提示
系统不是处于安装状态之类的提示.....用户登录 lsass.exe 什么什么问题后 就 挂了
因此 只能在进入PE后 修改 不知有那位高手可以帮助 而免去每次进入PE后 需要再作此操作的麻烦

)
此时才可以正常运行 VC2005 runtime
可以用同目录下的vc2005rt-msg.exe进行调试

在VC2005 runtime 运行正常的前提下 运行DotNet2.0检查程序 dotnetfx20-msg.exe 判断DotNet2.0是否
可用
关于 制作 U盘版本的 DotNet PE
可使用 UltraPE 9.3 的来 生成 (先使用其载入生成的PE.ISO文件 然后在 "启动"-"写入硬盘镜像")
完成后需要 将 miniNT\system32\config\software 和 SETUPREG.HIV 通过 xp环境下的注册表 加载
将其中所有 "x:\i386" 改成"x:\miniNT"
(我的方法是 将加载的配置单元 全部选中 导出为reg文件 然后通过记事本打开 再用记事本的 全部
替换功能 修改 然后 将修改后的reg文件 导入 注册表 然后 再在注册表 编辑器里搜索搜索"x:\i386"
将所有 名为"x:\i386"的项 删除 然后 卸载配置单元)

开发 DotNet 的 C# 或VB.Net等开发的在PE环境 Wim镜像处理工具
可以使用 gimagex 的 com 组件gimagex_com.dll
(注册组件时候 要保证 gimagex_com.dll 的同目录下有 wimgapi.dll,
使用 regsvr32 注册gimagex_com.dll
如果 是在PE自身环境下注册的 注册信息无法保存 意味着下次启动PE时候需要
重新使用regsvr 进行注册[不知道是否 可以在注册之后可以通过将注册表信息全部导出 为一个 reg文件
然后在 脱离PE的xp环境下使用 注册表编辑器的 加载配置单元功能 加载PE的的miniNT\system32\config\software
然后将先前导出的reg文件 到位到该配置单元 如可以的话 你需要保证的导入的路径 ,你需要使用记事本
工具查看 改reg文件 做相应修改,如果成功的话 gimagex_com.dll的注册信息将可以在PE中得到保存])
关于gimagex_com.dll 在程序中的调用方法 可以查看 其配套的gimagex.chm文件
(至少你可以使用gimagex_com.dll 和 gimagex.chm帮助 轻松的开发出 类似于先前的WimTool工具)
但愿 PE + DotNet +WIM 可以得到更好的结合,也许还可以与一键恢复技术相结合

你可以从
http://www.autoitscript.com/gimagex/
得到 gimagex.dll和gimagex.chm
可以从
http://www.colinfinck.de/en/peplugs/dotnetfx20pe/
得到 vc2005rt 和 dotNet2.0 的BartPe插件

关于 wimgapi.dll 可以从 微软的 WAIK 免费下载得到 或其他地方得到

[ 本帖最后由 yhanliang 于 2009-12-15 23:44 编辑 ]
2#
发表于 2009-12-16 08:43:34 | 只看该作者
此贴有新意,关注、支持!
回复

使用道具 举报

3#
发表于 2009-12-16 09:45:31 | 只看该作者
此贴不错,可以对我们PE的修改,有一定的参考作用。
回复

使用道具 举报

4#
发表于 2009-12-16 12:15:37 | 只看该作者
新手支持。

但 DotNet2.0 不比一个PE内核小。
真正用 gimagex_com.dll 进行第三次开发的工具少之又少,至少本人还没有发现能引起人注意的、使用 gimagex_com.dll 开发的工具,包括老外的论坛也没有发现这类工具。

本来微软提供的 WIMGAPI.DLL 是为第二次开发提供方便的,gimagex_com.dll 又将 WIMGAPI.DLL 再次封装给用户提供第三次开发,并不显得方便多少,反而效率降低(第三次开发的工具 ==> gimagex_com.dll ==> WIMGAPI.DLL)。

能用 gimagex_com.dll 的基本也能用 WIMGAPI.DLL 了。
gimagex_com.dll 充其量只能给 VBS 脚本使用提供方便,但一般 WinPE 都不集成 VBS 支持。

[ 本帖最后由 lxl1638 于 2009-12-16 12:25 编辑 ]
回复

使用道具 举报

5#
发表于 2009-12-16 16:38:37 | 只看该作者
有空测试一下。
20补丁~~~~~~~
回复

使用道具 举报

6#
 楼主| 发表于 2009-12-16 19:37:19 | 只看该作者
您可以根据 自己的需要精简 DotNet 的 类库 将不需要用到的 类库去除,
从而减少 整个PE的体积

至于 Wimapi.dll 如果有一套 比较 系统 而权威的帮助档 来帮我我们做
二次开发的话 直接选择Wimapi.dll 倒是个不错的 选择
因此许多程序开发人员 在网上看了 与此相关的 零碎 有貌似 矛盾的
相关介绍 后 得不到比较清晰的理解 而且 许多介绍都是英文的
因此最后 不能得到很好的支持 开发出相应的程序 至少对于绝大数开发人员来
是如此,
正因为如此 网上有了Gimagex_com.dll 我想目的就是 为了将对wimapi.dll的
操作简单化 ,因此gimagex_com.dll 的主要目的就是帮助开发人员来操作Wimapi.dll
在gimagex_com.dll 生成的对象 有比较系统而直观的 属性 方法 和 事件
并且 可以结合 除 vbs 以外的 多种 开发语言 如 C# ,VB.NET,VC++等

本人倒是结合 C# 开发出来的程序 并且成功
的在PE环境下做了 Wim 的创建 与还原 并且 很好的 通过其事件 捕捉了 进度 信息
回复

使用道具 举报

7#
发表于 2009-12-16 21:55:26 | 只看该作者
没啥创意,这个早就玩过了,gimagex_com.dl功能本来就不全,还没有SmartWIM.dll的全,当然SmartWIM.dll同样不全,根本没啥意思。
回复

使用道具 举报

8#
发表于 2009-12-17 00:07:54 | 只看该作者
原帖由 yhanliang 于 2009-12-16 19:37 发表
您可以根据 自己的需要精简 DotNet 的 类库 将不需要用到的 类库去除,
从而减少 整个PE的体积

至于 Wimapi.dll 如果有一套 比较 系统 而权威的帮助档 来帮我我们做
二次开发的话 直接选择Wimapi.dll 倒是个 ...


捕捉的进度、信息不是WIMGAPI.DLL中最重要的,自定义捕捉规则才重要。

WIMGAPI.DLL的头文件WIMGAPI.H里已有比较详细的函数、常量、结构声明,微软也提供了几个常用函数的VC++示例代码(控制台示例)。
用gimagex_com.dll在一定程度上可少写部分代码,但能实现的功能完全由gimagex_com.dll决定,无法开发出自己特色功能。
回复

使用道具 举报

9#
发表于 2009-12-18 09:50:43 | 只看该作者
就算是可以,哪速度可以想象吧
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-17 17:42

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表