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 lczhjun 发表于 2014-1-31 17:00
说好的下载地址呢!!
别急,会有的。 本帖最后由 静庵 于 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
wjgyz740526 发表于 2015-1-15 19:51
怎么删掉下载了?
准备更新 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,可以不为所用,只是“玩玩”。
利用国庆假期学习winpe制作,这个工具很实用,希望楼主继续完善,大家都来努力 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? 2010goldenet 发表于 2014-3-2 08:41
用的是新版,我看了一下脚本,第36行多了一行判断,删除后运行就过了
找到了,是这行:If,%pCheckBox_1%,Equal,True, Run,%ScriptFile%,Animation_Starts_Win7
应该去掉。
谢谢! 好热闹啊,来晚了。
楼主谦虚了,做了这么多改进,还支持win7,应该算是全新的作品了。 创新、修改、更新都需要勇气和决心,同时需要耐心和坚持,精品出于不断的雕琢和研磨,有时细节决定成败,静待楼主佳作续篇,更待相应的代表作出世,祝成功! 支持,有时间学习。 本帖最后由 静庵 于 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 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 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,但也是非常遗憾的,在这上面本人没有注入过多
的精力,一句话:想完美不行。
本帖最后由 静庵 于 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-2-4 16:32 编辑
好东西,支持。
说好的下载地址呢!!{:2_122:} 本帖最后由 ksafei 于 2014-1-31 17:09 编辑
很给力,新年快乐!
希望 WinXPPE能有添加主题选项 ksafei 发表于 2014-1-31 17:01
很给力,新年快乐!
希望 WinXPPE能有添加主题选项
主题,这个肯定有。 期待 谢谢您的付出辛苦了! 祝老师新年快乐!事业有成!身体健康! 自己发现的第一个 BUG ---快捷方式
由于在单位办公室电脑中设置有 X: 盘,创建快捷方式的代码,以及需要解压的快捷方式的路径指向均为 "X: 盘",这样在没有 X: 盘的环境下就无法创建出快捷方式。
处理方法 --- 脚本中 节中将所有 X:\Windows 改为 %SystemRoot%,将 X:\Program Files,修改为 %ProgramFiles%。
压缩包中的快捷方式需要重新修改路径后,重新压缩。 谢谢楼主.马年好 谢谢楼主分享,下载试用 本帖最后由 hhh333 于 2014-2-1 09:41 编辑
这个不错,算新年的一份大礼!
本来自己有时也有这个起意,将自己做PE的一些东西加进去,但看了LZ的,觉得更系统,那就让大家都来提一些建议或技巧,使之更加完善。 果断收藏下。。。学习。。。 好工具,感恩樓主分享,辛苦了 此贴留位置,,谢谢。。。 对不起,暂停下载,发现 pecmd.ini 配置有问题,朋友实机测试找不到鼠标,USB不能驱动。 如果我只要生成一个System登录的最精简的维护版应该如何勾选?能不能给一个默认就是这样的方案? 首先谢谢楼主辛勤的工作!
1、制作了WIN7PEX86,实体机测试功能正常,仅菜单(桌面)快捷方式缺失,会不会和SYSTEM账号登陆有关。
2、XP环境下:制作WIN8PEX64使用sp_star 版本成功。使用楼主版本提示PECMD.EXE不是有效的32位程序,只好强行终止。(难道非要在X64环境下工作)
3、由于功能比以前强大,在使用上要困难点,迫切需要楼主解说再详细点,因为WIN7&WIN8&WIN8.1的某些功能是互相排斥的。 辛苦了,期待完美版本。 细细哥~ 发表于 2014-2-2 23:48
首先谢谢楼主辛勤的工作!
1、制作了WIN7PEX86,实体机测试功能正常,仅菜单(桌面)快捷方式缺失,会不会 ...
用到的 PECMD.EXE 只是创建快捷方式,脚本中已有设定,当运行环境是 x86 时,调用 x86 的 PECMD.EXE,这种情况出现,说明调用PECMD.EXE的版本有问题。
你的截图中出现空的快捷方式,正说明创建快捷方式失败。
我再看一下。 先修正一下 PECMD.EXE 调用问题,将附件中的文件替换相应文件即可。