静庵 发表于 2014-1-31 14:40:46

WinPEBuilder --- Windows NT 全系列 PE 制作工具

本帖最后由 静庵 于 2015-1-17 09:31 编辑

WinPEBuilder --- Windows NT 全系列 PE 制作工具
=====================================


本帖声明

1. Builder 工具非本人原创,版权归属原作者。
2. 代码基础参考 sp_star 老师作品,向 sp_star 致敬并感谢。
3. 本帖意愿回报无忧论坛,故而,版本显示 wuyou,如有不妥,请即指出。
4. 目前,仍不成熟,意为请求大家参与,共同完成。
5. 恳请 sp_star 等老师参入、指正。


进展说明

1. 本代码每一步均可独立启动,并每一步都支持并兼顾 RAMPE 和 RamOS(NT5x不支持)。
2. 暂定为“全系列”称谓,但并未包括全部 Windows 版本,比如无法涵盖 Win2000,WinXP、Win2003 的 SP0 和 SP1(可能与 mgr 版本有关)。
3. 由于一些问题存在,所以,目前代码是从 Explorer 小节开始,一步一步进行。


问题 1:

请测试并解决 Win7、Win2008(R2) 的以下问题:RamOS 方式 Explorer 启动后提示如图


Win2008 (标准版):


附件(WinPEBuilder.rar)

http://pan.baidu.com/share/link?shareid=3863425146&uk=2519089702

静庵 发表于 2014-1-31 17:16:36

lczhjun 发表于 2014-1-31 17:00
说好的下载地址呢!!

别急,会有的。

静庵 发表于 2014-1-31 14:41:40

本帖最后由 静庵 于 2014-1-31 22:08 编辑

三、选项使用导引(续)


11. Network
本节中重要修正补充了一些代码,重新布局了 inf 和 sys 文件,添加设置了一些服务。界面选择上没有多少变化。


12. NetApps
插图:Remote.jpg
插图:IE.jpg





13.Opera
插图:Opera.jpg



14.Audio

也是修改了一些代码。


15.Administrator
插图:Admin-1.jpg


第一个选项,是在PE启动时直接 Administrator 登录。也可以仅创建快捷方式,启动后切换。


16.System Tweaks
插图:Tweak.jpg


第一个选择框,仅适用于 Win7PE,可实现启动时中文、动画花瓣界面(ISObase中的 BCD 已做处理---去除效验签名,
支持中文显示)。


17.AddTools
插图:Addtools.jpg


添加了几个常用的小工具,可选。


18.RamOS
插图:RamOS-1.jpg


RamOS 需要管理员登录支持,不过放心,再次已有独立的代码支持(与之前的 Tweaks 中的 Administrator 代码有区
别,前者适用于所有 NT6.xPE,这个仅适用于 RamOS),完全可以管理员登陆。


19.ISO

已经修改了代码,选什么系统,创建什么名称的 ISO 文件,如 Win7PE.ISO、Win8PE.ISO,或 Win81PE.ISO

静庵 发表于 2015-1-15 20:17:44

wjgyz740526 发表于 2015-1-15 19:51
怎么删掉下载了?

准备更新

静庵 发表于 2014-10-12 09:37:44

smxxsjj 发表于 2014-10-9 12:33
楼主你好,我是一个超级菜鸟,近日用WinBuilder学做了一个WIN8PE能启动,进入桌面怎么看不到开始菜单?(任 ...

不好意思。
这几个月来,一直全力制作 WinNT5.x 的 Builder ,实在没有精力修改 WinNT6.x 的 Builder。不过以后一定会更新。
以前说过,WinNT5.x 的 Builder 是要全部一个代码、一个代码的从头制作,非常费时,尤其是注册表,不像 NT6x 安装盘中有现成的修改即可,NT5x 安装盘中没有现成的,需要运行过程中生成。而且要兼顾除中文外的各个国家的语言,还要兼顾 XP、2003、2000的 SP0、SP1、SP2、SP3等。
目前,CMD、Explorer、Themes 阶段已经完成,正在处理 MMC 、第三方驱动,之后要处理 x64、网络、声音、显卡支持等,太难了,我都想放弃了。
不过想想,虽然 XP 时代过去了,制作一个可以制作 PE 的 "工具" ,作为经典收藏,什么时候需要,可以信手拈来,你可以做一个英文版的、x64 的 XP 或 2003 PE,如果有兴趣,也可以做一个阿拉伯语、德语、希伯来语,甚至是俄语、韩语等的 PE,可以不为所用,只是“玩玩”。

lough_007 发表于 2014-10-2 15:10:37

利用国庆假期学习winpe制作,这个工具很实用,希望楼主继续完善,大家都来努力

andos 发表于 2015-3-9 19:01:04

2011ChrisR 发表于 2015-3-9 16:57
Here is Win+T in win32 application, not console, now.
With WinIO64.dll signed driver, not real veri ...

What is the advantage of win32 application over console?

静庵 发表于 2014-3-2 11:44:46

2010goldenet 发表于 2014-3-2 08:41
用的是新版,我看了一下脚本,第36行多了一行判断,删除后运行就过了

找到了,是这行:If,%pCheckBox_1%,Equal,True, Run,%ScriptFile%,Animation_Starts_Win7
应该去掉。
谢谢!

sp_star 发表于 2014-1-31 18:24:22

好热闹啊,来晚了。
楼主谦虚了,做了这么多改进,还支持win7,应该算是全新的作品了。

fish2006 发表于 2014-1-31 17:50:14

创新、修改、更新都需要勇气和决心,同时需要耐心和坚持,精品出于不断的雕琢和研磨,有时细节决定成败,静待楼主佳作续篇,更待相应的代表作出世,祝成功!

HB天意 发表于 2014-1-31 17:35:54

支持,有时间学习。

静庵 发表于 2014-1-31 14:40:47

本帖最后由 静庵 于 2014-1-31 17:15 编辑

二、脚本设计过程


全局设计:

1. 首先要适应全系列PE支持,需要将 %ProjectName% 定义为通用的“WinPE”,其后的所有代码均围绕这个定义展开。

2. “Source”选项卡:此节做了较大改动。
    %SourceDir%,Builder 原作者设计的这个目录针对的是 Windows 的原版安装盘,主要是提取光盘根文件,相当于本脚本
中的%ISOBase%目录,所以。可去除 %SourceDir% 这个选项以及支持脚本(由于程序界面中的“Source”选项卡是程序内部设
定,无法更改,所以仍有%SourceDir%这个界面存在)。
    %TargetDir% 和 %ISOFile%,可自定义为通用的名称。

插图:Source.jpg


3. Main Config Editer:此节较大改动。
    基本配置界面。主要设置 RAM 方式、盘符、内存大小、默认分辨率等。并且,获取 Builder 程序运行的环境等。

插图:Main.jpg


4. Image Config:改动较大。
   获取 Source 信息,设置脚本所用的常量。本脚本精简了很多。尤其去除了 Extracted 选项以及支持代码 --- 这是针对存
   在 Mount .wim 映像使用的,我们没有必要冒着电脑断电等意外而使 .wim 挂在失败的可能性,而且需要相应的 WimTool
   等的支持,直接将 .wim 解压到相应的目录,安全而持久。

5. Api.Script 和 script.project:
   定义和存放特殊运行功能(如 ReqSys32、ReqInf等),以及常量的寻址位置。其中做了大量的修改,可以适应到全局。

插图:Api.jpg(节段)


-------------------------------------------------------------------

6. 注册表处理:
   注册表是PE的灵魂,关系全局。脚本中使用 install.wim 原版的“SOFTWARE”,而“DEFAULT”和“SYSTEM”可选,如果要
   制作全功能版本,可使用 install.wim 原版的。
   并且,在 Explorer.cript 中另有设定,可重新选择。

7. Themes:
   Themes 添加后即可独立成为有主题的 PE,如果不需要网络、声音支持,添加上其它可选的组件就成为 Mini 版的、完整的
   PE 系统,所以,在脚本中设置了需要的“个性化”代码,以及形成完整版的相应支持。

插图:Themes.jog


8. Drivers:
   驱动的处理相对复杂一些,要遴选出所需要的文件(inf 及 sys)。设置时,专门加入一个“Driver.cript”脚本,并且放
   置于“Basic”中,以保证不同功能 PE 的完整性。

插图:Drivers.jpg


9. IME:(变动最大,更加繁杂)
   IME 分为 Microsoft 原版自带拼音输入法、添加 Lite 拼音法,以及 Win8 和 8.1 可选增加使用“Win7 IME”,既要独立
   成型,又要互相融合、嵌入,处理代码比较复杂。

插图:IME.jpg


10.网络和声音支持:
   要实现网、音支持,不仅仅是需要支持文件的添加那么简单,更关键的是驱动和注册表处理。Win8,以及 Win8.1 的驱动似乎
   可自行加载(当然要有注册表支持),只要驱动文件齐全即可,最困难的 Win7 的。我们知道,添加它的 OEM 驱动需要借助
   Dism 等工具,而添加自带的驱动就不清楚了。本人在制作中发现可通过处理那个 xxxx.1 文件可以实现不知是什么道理。

11.应用:
   这没什么难度,但比较繁琐,也需要那句话:既要“民主”,又要“集中”。

插图:App.jpg


12.Administrator 登录:
   Win7 的透明效果和 Win8 的 IE 下载需要管理员账户登录,在原版基础上,进行了较大修改,重新修订了代码,登录文件也
   全新修改了,改变了登录和注销的加载过程。我们知道,PE Administrator 登陆后调用的 .DEFAULT 是 Users 下的
   “NTUSER.DAT”,重新设置而成,那么我在 Administrator 登陆时将 注册表文件“DEFAULT”替换为“NTUSER.DAT”,使
   登陆后的设置与已经设置的一样。

插图:Admin.jpg



13.Win8.1 RamOS:
   我将代码集中到一个过程中,独立完成,避免与其它脚本的重叠,既重新处理“SYSTEM”,有保证了整个制作中的其它功能模
   块设定的不变。

插图:RamOS.jpg

静庵 发表于 2014-1-31 14:41:01

本帖最后由 静庵 于 2014-1-31 20:03 编辑

三、选项使用导引


1. Main Configuration
插图:Main.jpg


上图中不需要选择,默认即可。


2. Image Configuration
插图:Image.jpg


选择解压后的 boot.wim 和 install.wim 所在文件夹,选 boot 或 winrm 均可。


3. Prepare Registry
插图:Registry.jpg


默认使用 boot.wim 中的注册表文件,选项可使用 install.wim 中的。
“Clear Target Dir”、“Create Dir”、“Core Files”这三项默认即可。


4. Explorer Shell
插图:Shell.jpg


选项较多,这一脚本中变化较大,添加了注册表处理功能,可重新布局注册表。添加了快捷方式处理,不过,不太成熟。


5. Themes
插图:Themes-1.jpg


第二个方框中的选项,可以不选,但会缺失一些功能,比如不能更换桌面背景等。


6. MMC
插图:MMC-1.jpg


亮点是“Showing Extension Service”和“Add Shortcut”,前者可显示扩展服务(如图示)。
后者是创建开始菜单程序组的管理工具,这一点上也相对复杂一些,快捷方式创建均采用英文模式,要利用 Desktop.ini
中的设定来指定显示的语言,这样做的目的是可适应于任何语言的 Windows 系统。


7. Drivers

无需多说,按需选择。


8. Wow64
插图:Wow64.jpg


9. Windows Apps
插图:App-1.jpg


其中的 Snipping Tool ---截图工具,是自制的 Lite 仿制品,尽管用。


10. App
插图:App-2.jpg


静庵 发表于 2014-1-31 14:42:12

本帖最后由 静庵 于 2014-1-31 22:11 编辑

重点说明:

1. 快捷方式:

在整个 PEBuilder 发展历史中,尚没有有效的、简便的在脚本中创建快捷方式的方法。
NT5 系列中,创建快捷方式是利用如 shortcutWinExp.exe 文件创建,类似于第三方工具 shortcut.exe,而且仅适用
于NT5.X(创建注册表利用 HojoPE.exe,暂不详述)。而对于 NT6.X 则未发现好方法。

首先,我们设计 PE 制作脚本的初衷是要让脚本适用于包括英文版、繁体中文版等不同语言的,那么,脚本代码就要适
应不同语言的需求,这个就是那个“%DistLang%”,不同的语言,其“DistLang”不同,如中文版是 zh-CN,英文版是
en-US 等,所以按当初设想的直接复制创建好的快捷方式的方法行不通。为一可用的就是创建原英文的快捷方式,这就
要用到那个 Desktop.ini 文件,其中就可以设置快捷方式的不同语言 ---DistLang。

用什么创建出快捷方式?找了很多不同的方法,如 Shortcut.exe,批处理、vbs等均达不到理想的效果。
谁知得来近在眼前 --- PECMD.EXE。现成的创建快捷方式的工具,格式就是:
pecmd LINK 快捷方式名,指向的文件,运行参数,图标文件,..。
我在PE_Extra中有现成的 pecmd.exe,只不过要判断一下当前系统环境,是用x86的,或是x64的。这个不难,在脚本
config.cript中已经判断知道了。

快捷方式创建问题解决了,下一步就是编辑 desktop.ini,这个不难,系统中有现成的,照抄就是,实在没有,自己修改
一下对应的 mmui 文件即可。

但是一个重要的问题是,实现 desktop.ini 设置的前提条件是:它所在的文件夹必须是系统文件夹,这个也不难,改一下
属性即可。

不信可以看一下,制作出的快捷方式,如附件、管理工具都是英文的,但显示是中文。

以上解决了代码实现快捷方式的问题。

程序组快捷方式图标显示没有问题,但对于开始菜单中(那个大的空白)的和任务栏图标显示遇到了麻烦。我们知道,这两
处的图标控制是在注册表 HKCU\..\StartPage2 和 Taskband中,单个或组合的快捷方式,其中是不同的(已经得知节点位
置),但如何一个一个加进去,比如已经有了资源管理器,再加一个IE,就不知道了。
我暂时采用笨办法,就是导入事先取得的现成的注册表项,但 NT6.X的每个系统也不尽相同,比如Win7显示的“计算器”,
而 Win8 则是“Windows 计算器”,虽然我可以更改图标码使之显示名相同,但实际应用时也不行。
所以,这一块暂时没有解决好。


2. Win8.1

我们的目的是制作完整的 PE,其任务栏没有破解,虽然可以实现 RamOS,但也是非常遗憾的,在这上面本人没有注入过多
的精力,一句话:想完美不行。

静庵 发表于 2014-1-31 14:42:54

本帖最后由 静庵 于 2015-1-13 21:18 编辑

下载和更新

说了上面那么多,实际结果没有那么好。是骡子是马,现在牵出来。

2014-02-03 :
    替换 config.script、Images.script 和 Script.project(早先整理过的,01-31忘记更换了),删除了 project.ini,删除了 Script.project 中的可变量信息,
使程序呈完全的原始状态。修正不认鼠标、USB驱动问题。
    快捷方式仍有缺陷,过节太忙,实在没时间做大的处理。

下载链接(2014-02-03):


==============================================================
2014-02-25

说明:
1. 重点修改已发现的问题---如个版本兼容的代码错误、驱动、IME问题等。
2. 重新设计 Administrator 登陆方式为 Ram 方式,其中,Win8PE 在使用 Win7 SHELL 情况下实现管理员账户登陆非常快,实现IE下载、任务管理器全功能显示等。   
3. 修正 Win8.1 RamOS 登陆细节错误。
4. 仍有许多可见的问题需要修正,期盼大家测试、发现问题并提出解决方法。

下载链接(2014-02-25):

20121223445667 发表于 2014-1-31 14:56:32

本帖最后由 20121223445667 于 2014-2-4 16:32 编辑

好东西,支持。

lczhjun 发表于 2014-1-31 17:00:30

说好的下载地址呢!!{:2_122:}

ksafei 发表于 2014-1-31 17:01:08

本帖最后由 ksafei 于 2014-1-31 17:09 编辑

很给力,新年快乐!

希望 WinXPPE能有添加主题选项
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: WinPEBuilder --- Windows NT 全系列 PE 制作工具