无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 871035|回复: 9112

[原创] (2022-02-02 更新) Re:WIN10XPE - 从零开始构建的全功能PE

    [复制链接]
发表于 2018-11-12 23:36:09 | 显示全部楼层 |阅读模式
本帖最后由 slore 于 2022-2-3 14:47 编辑

使用wimbuilder2构建了一个
完全从系统install.wim提取所需文件,可构建不包含任何非系统文件(绝对纯净)的,包含以下组件的Windows PE(截图为RS5版本)。

  • [40MB]原生Windows Explorer外壳(RS5以上支持暗黑主题)
  • [8 MB]DWM服务支持
  • [3 MB]MMC(含设备管理器,磁盘管理器,服务管理器,文件共享)
  • [35MB]原生简体中文(拼音,五笔),繁体中文,韩语输入法,日语输入法
  • [3.8MB]BitLocker
  • [7 MB]原生搜索功能 (2018-11-18)
  • [0.4MB]基本显示器驱动,显卡驱动 (2018-11-18)
  • [33MB]网络支持 (2018-11-18)
  • [72MB]WOW64支持(x64环境下可运行x86程序) (2018-12-05)
  • [26MB]Internet Explorer 11(x64 & x86) (2018-12-05)
  • Windows Media Player 媒体播放器 (2020-03-03)
  • [15MB]远程桌面 (2019-01-02)
  • [6 MB]MTP支持(支持手机连接传输文件) (2019-01-02)
  • RNDIS功能(USB连接手机可使用手机共享网络) (2019-09-14)
  • PPPoE拨号 (2020-03-03)
  • [29 MB]Administrator账户登录 (2019-01-24)
  • Administrator与SYSTEM账户间切换 (2019-10-05)
  • [3 MB]画图,Windows 图片查看器 (2019-01-30)
  • [1.8 MB]VC++运行库 (2019-03-20)
  • [140 MB].NET Framework (2019-04-18)
  • [1 MB]系统提示音 (2019-04-18)
  • 麦克风 (2020-05-05)
  • 摄像头 (2021-08-08)
  • [3.5MB]SnippingTool 截图工具 (2019-04-21)
  • 打印组件 (2019-06-21)
  • 蓝牙组件 (2021-04-04)
  • USB设备管理(原生USB弹出支持) (2019-06-21)
  • 远程桌面服务(外部远程桌面连接PE)  (2019-06-21 [RS5]、2021-06-06 [最新21H1])
  • 支持SMB1.0 (2019-07-08)
  • 网络发现(可访问相同网络中的计算机资源) (2019-07-08)
  • 网络和共享中心 (网卡设置+网络托盘图标) (2019-09-01)
  • Windows Installer(MSI) (2019-09-01)


支持制作RS5, 19H1, 19H2, 20H1, 20H2, 21H1最新版的x86,x64 PE。
运行环境需求:支持HTA,VBScript/JScript,以及Dism命令可加载wim镜像。
                    (正常Windows 7及以上系统,和Win10系统自带winre.wim环境均满足)

VirtualBox_MTP.png
re0_screenshot.png
IEx64_wow64_cn.png
NW_SND.png

特点:
  • 你有install.wim就可以从开始构建对应版本PE(支持各版本,各语言,含最新预览版)
  • 只需要极小的工程附件即可,省去不必要的网络消耗(上传/下载)
  • 补丁详细分类,且由批处理语法构成,任何人可以明白某个功能需要做什么修改(添加了哪些文件,修改了哪些注册表等)
  • 一些常用的习惯选项可在界面选择,满足不同人习惯要求(例如: 显示/不显示 快捷方式箭头)
  • 每次都可以根据工程生成新的PE,通过对极小的工程文件管理,就可以无限回溯,重复对PE进行修正


内置的第三方工具:
PECMD, WinXShell, Classic Shell, StartIsBack, StartAllBack, PENetwork, 7-Zip, 小小输入法, HotSwap!

外置资源包包含的第三方工具:
  DisplayX, SuperPI, Notepad3, Explorer++,
  BOOTICE, CPU-Z, Dism++, Everything, NTPWEdit, WinNTSetup, SumatraPDF, Chrome

Office 2007(演示包,请自行替换完整外置包), PotPlayer(演示包,请自行替换官方安装程序)

提醒: 你需要选择【支持32位应用程序运行】选项,来支持一些第三方应用程序的安装。
提醒: 使用浅色主题时,StartIsBack开始菜单主题最好选择Win10皮肤。


直接下载地址: https://slore.lanzoux.com/b00z5zy6b
如果无法访问请尝试
https://lanzoux.com/b00z5zy6b

WimBuilder2-Full.v2022-02-02.7z (74.1 MB) MD5:40aba59b4ea44b401e46a7ace54880aa

## WimBuilder2 v20222.02.02这是一个主要更新。添加和改善了以下内容:

* 改善 对Windows 11系统组件功能完善。 (感谢 @我是小青蛙)
* 新增 俄语资源文件(程序界面)。 (感谢 @Ruslan)
* 更新 界面选项的匈牙利语资源。 (感谢 @La_Valse)
* 改善 支持在我的电脑中对全盘进行搜素。 (感谢 @xmzhqw)
* 更新 PENetwork, Explorer++ 脚本。 (感谢 @Ruslan)
* 新增 Defraggler 脚本。  (感谢 @Ruslan)
* 修复 VC++运行库WinSxS文件添加路径不正确的问题。 (感谢 @Ruslan)
* 改进 快速登录Administrator账户。
* 修复 我的定制(前置)的执行顺序靠后的问题。
* 新增 GetLocaleId 宏命令。
* 改进 Updater更新脚本, 已经下载的更新文件,不再重复下载。

* 新增 StartAllBack 开始菜单。
* 更新 WinXShell 至 v4.6.4
        修复 因Defraggler的外壳菜单导致崩溃的问题。
        新增 俄语资源文件(wxsUI界面)。 (感谢 @Ruslan)

* 其他 细节更新。

WimBuilder2-Full.v2021-11-11.7z (64.6 MB) MD5:4f238481ff2065bbf2501d067b390c75

## WimBuilder2 v2021.11.11
这是一个常规更新。添加和改善了以下内容:

* 改善 网络支持。
        移动 PPPoE选项至【网络】。
        添加  【网络安全:LAN管理器身份验证级别】选项。使得可以正常连接SMB/CIFS服务。  (感谢 @gasun 反馈问题,并提供解决方法)
* 改善 远程桌面连接选项。解决远程桌面连接访问时,可能造成的认证错误。  (感谢 @gasun 反馈问题,并提供解决方法)

* 更新 WinXShell 至 v4.6.0











======================================================
贡献与支持

如果你会批处理,js脚本,欢迎为WimBuilder2提供功能改进、代码修补,分享你的补丁;
如果你不会编程,也欢迎提供bug反馈和献计献策;
如果你对某个版本,某个功能,知道如何手动补充修改文件及注册表,也可以分享出来。
如果你喜欢这个项目,你可以Star一下(https://github.com/slorelee/wimbuilder2)。
也欢迎你对WimBuilder2项目进行捐助以支持此项目发展。

支付宝
alipay.png

微信
wechat.png

======================================================
WimBuilder2对WIN10XPE工程进行构建的,设定界面:
build_2.png
build_3.png

理论上支持所有Win10版本(不限语言,架构),但因时间有限,计划维护3个版本的对应(前一个正式版,当前最新,快速通道的下一个版本)。
不提供成品PE。

第一版存档保留
WimBuilder2_with_WIN10XPE.zip (2.29 MB, 下载次数: 7419)

ES5_fix.zip

993 Bytes, 下载次数: 694, 下载积分: 无忧币 -2

点评

精品  发表于 2024-3-11 20:55
能否搞个用WimBuilder生成Win7 SP1 x86 PE的工程?  发表于 2020-6-16 22:19
这个项目非常好,谢谢!就喜欢纯净的PE!  发表于 2020-6-16 22:19
这个选择加载文件的时候,弹出的文件选择对话框能不能默认为镜像文件(*.wim),而不是所有文件呢  发表于 2020-3-5 18:24
2019LTSC原版镜像,基本默认配置制作,VM测试,转圈后蓝屏  发表于 2020-1-8 20:03

评分

参与人数 146无忧币 +573 收起 理由
yyz2191958 + 2 很给力!
装机猿 + 5 赞一个!
SROOO + 5 很給力!
孤帆远影 + 1 赞一个!
FKUEPENG + 1 很给力!
inbashion + 1
FOXL + 1 <font style="vertical-align: inh
pyhlovexdm + 5 很给力!
天工科堂 + 1 很给力!
legend + 1 很给力!
xuziyi + 1 赞一个!
w8yug + 1 很给力!
ccccc5321c + 1
小布丁 + 5
fogang + 1 赞一个!
sycdzp + 1 很给力!
2011rmq + 5
3735 + 5 很给力!
2012sinkr + 5 很给力!
whgang1029 + 1 很给力!
lookerJ + 5 很给力!
2012_maxbo + 5 很给力!
htt_rd + 5 強大!
wjzj + 5 很给力!
994956737 + 1 很给力!
2010hook + 5 越来越好
wh07027 + 5 很给力!
afen + 5
kohwei + 5 很给力!
nokia007 + 5 很给力!

查看全部评分

 楼主| 发表于 2018-11-13 22:36:15 | 显示全部楼层
本帖最后由 slore 于 2018-11-13 22:41 编辑

本来打算把声音,网络的补丁先制作,因为基本上是系统文件,所以补丁定义很小,介于有人要教程,
我把添加StartIsBack开始菜单为例子给说明下,WimBuilder2的补丁制作。(废话2楼,从21楼第3页开始。)

成果:
Accessibility.png

点评

S大 假如我之前生成的PE没有勾选远程桌面 后期想加 要怎么办  详情 回复 发表于 2020-6-27 14:12
回复

使用道具 举报

 楼主| 发表于 2018-11-13 22:36:19 | 显示全部楼层
本帖最后由 slore 于 2018-11-13 22:44 编辑

StartIsBack是第3方工具,所以额外把“轻松访问”的系统组件:屏幕键盘,放大镜,讲述人的补丁作为
从install.wim提取的例子包含了。

  1. D:\Dev\WimBuilder2\Projects\WIN10XPE\01-Components>tree /f
  2. └─za-Accessories(Windows 组件)
  3.     │  main.html
  4.     │  zh-CN.js
  5.     │
  6.     └─Accessibility(辅助工具)
  7.             main.bat
  8.             main.html
  9.             zh-CN.js
复制代码
回复

使用道具 举报

 楼主| 发表于 2018-11-13 22:36:32 | 显示全部楼层
本帖最后由 slore 于 2018-11-13 22:46 编辑

应大家要求以添加StartIsBack为例说明下如何使用WimBuilder2添加一个“补丁”。

===前言===
对PE进行完善无非就是添加/修改文件,补充/修改注册表。
WimBuilder2是一个让此操作更简洁的一个构建工具。

例子中的原生Explorer,输入法等组件的所需列表是从WIN10XPE工程中提取的。
当你知道某个程序所需的文件,和注册表项那么你就可以制作补丁了。
WimBuilder2比WimBuilder增强的是,提供了一个采用html设定补丁选项的UI界面方式,
使得PE做成更灵活。

===正文===
补丁制作正式开始前,首先清楚补丁制作的过程分大体3部分:
1. 补丁选择界面,选项界面
2. 文件,注册表修改
   a. 添加原生系统文件,系统原生注册表(install.wim)
   b. 添加第3方文件,更新自定义注册表项目
3. 配置文件修改(startnet.cmd, pecmd.ini等)
   需要PE启动后执行的初始动作,例如:注册dll,创建快捷方式等
回复

使用道具 举报

 楼主| 发表于 2018-11-13 22:36:59 | 显示全部楼层
本帖最后由 slore 于 2018-11-13 22:52 编辑

===第一章 第一节 补丁选择界面===
StartIsBack是开始菜单,需要外壳依赖,那么我们可以:

  1. +组件
  2.   +外壳
  3.     +开始菜单(如果只使用1个开始菜单工具这层可以不要)
  4.       +StartIsBack
  5.       +ClassicShell
复制代码


WimBuilder2的话,只要目录存在main.html就会显示到补丁选择树上,
相同目录存在zh-CN.js,且其中有patch_name的话,可以自定义补丁的显示名称。
构建时,将调用目录中的main.bat补丁脚本。


  1. Projects
  2.   WIN10XPE
  3.     +01-Components(组件)
  4.       +00-Shell(外壳)
  5.         +StartMenu(开始菜单)
  6.             +main.html
  7.             +zh-CN.js(patch_name="开始菜单")
  8.                +StartIsBack
  9.                   +main.html
复制代码


不需要制作英文版,或者在其他语言系统上制作PE的话,可以直接创建中文目录。

好了,F5刷新下,现在你可以看到StartIsBack的菜单了。
add_patch_to_tree.png
回复

使用道具 举报

 楼主| 发表于 2018-11-13 22:37:29 | 显示全部楼层
本帖最后由 slore 于 2018-11-13 23:29 编辑

===第一章 第二节 补丁选项界面===
main.html就是补丁的说明,选项设定界面了。
这个就发挥大家的UI设计水平了,下面我们给StartIsBack设计一个皮肤的选择的选项。
-----------------------------------
◎Windows7 ◉Plain8 ◎Plain10
-----------------------------------


根据 http://www.w3school.com.cn/jsref/dom_obj_radio.asp 我们如下添加3个单选按钮。

Projects\StartIsBack\WIN10XPE\01-Components\00-Shell\StartMenu\StartIsBack\main.html

  1. <p>皮肤</p>
  2. <input type="radio" value="Windows7" /> Windows7
  3. <input type="radio" value="Plain8" checked/> Plain8
  4. <input type="radio" value="Plain10" /> Plain10
复制代码


双击main.html你的浏览器中应该就可以显示它们了,点击试试吧。
main_option.png

你可以发现,3个按钮都能点击,不是互斥的。根据radio标签的语法,
拥有相同的name属性的选项按钮会互斥,所以:
<p>皮肤</p>
<input type="radio" name="skin_group" value="Windows7" /> Windows7
<input type="radio" name="skin_group" value="Plain8" checked/> Plain8
<input type="radio" name="skin_group" value="Plain10" /> Plain10
再试试,是不是可以互斥了。

我们再用组合表单(fieldset标签)包起来:

  1. <fieldset>
  2. <legend>皮肤</legend>
  3. <input type="radio" name="skin_group" value="Windows7" /> Windows7
  4. <input type="radio" name="skin_group" value="Plain8" checked/> Plain8
  5. <input type="radio" name="skin_group" value="Plain10" /> Plain10
  6. </fieldset>
复制代码


是不是更好看了些。
sib_skin.png

下面是重点-如何将选项与补丁脚本(main.bat)关联起来。
WimBuilder2会自动将class属性是opt_item的标签,将其值设置为环境变量opt[标签名]=xxx

所以,最终为:
<fieldset>
<legend>皮肤</legend>
<input type="radio" class="opt_item" name="SIB.skin" value="Windows 7" /> Windows 7
<input type="radio" class="opt_item" name="SIB.skin" value="Plain8" checked/> Plain8
<input type="radio" class="opt_item" name="SIB.skin" value="Plain10" /> Plain10
</fieldset>

main.bat中我们可以使用%opt[SIB.skin]%来使用此选项。

另外,“皮肤”可以在main.html写成Skin,然后通过zh-CN.js定义"Skin":"皮肤"在不同系统下显示对应语言的内容。

PE中常见的是 单选按钮,复选按钮,下拉选择等设定我已经在其他界面实现了,请参照已经有的界面。

可通过Projects\WIN10XPE\config.js来设定,参数的默认值,和默认是否勾选此补丁。

(可以下载后面补丁的最终版本的附件,来查看。)

PS:为了更好的展示效果,其实还可以做3种不同皮肤的预览图,切换不同选项的时候,显示皮肤效果,
main.html中onclick事件通过jquery改下加载图片即可。这个属于html美化范畴,我这里不多说了。
回复

使用道具 举报

 楼主| 发表于 2018-11-13 22:38:04 | 显示全部楼层
本帖最后由 slore 于 2018-11-13 23:25 编辑

===第二章 第一节A 添加第3方文件===
通过WIN10XPE项目,我们可以看到StartIsBack需要的文件如下:
  1. Win10XPE_2018-10-12\Win10XPE\Projects\Include\x64\AdditionalFiles
  2.   \Program Files\StartIsBack
  3. │  StartIsBack32.dll
  4. │  StartIsBack64.dll
  5. │  StartIsBackCfg.exe
  6. │  startscreen.exe
  7. ├─Orbs
  8. └─Styles
  9.         Plain10.msstyles
  10.         Plain8.msstyles
  11.         Windows 7.msstyles

  12. Win10XPE_2018-10-12\Win10XPE\Projects\Include\x86\AdditionalFiles
  13.   \Program Files\StartIsBack
  14. │  StartIsBack32.dll
  15. │  StartIsBackCfg.exe
  16. │  startscreen.exe
  17. ├─Orbs
  18. └─Styles
  19.         Plain10.msstyles
  20.         Plain8.msstyles
  21.         Windows 7.msstyles
复制代码


WIN10XPE工程來自ChrisR http://theoven.org/index.php?topic=2421.0
可以从这里 http://win10se.cwcodes.net/Compressed/index.php 下载

把上面文件放到
Projects\StartIsBack\WIN10XPE\01-Components\00-Shell\StartMenu\StartIsBack\X_x64
Projects\StartIsBack\WIN10XPE\01-Components\00-Shell\StartMenu\StartIsBack\X_x86
然后,根据PE的构架是32位还是64位,复制对应的文件即可。

WimBuilder2自动将winre.wim/boot.wim挂载到mounted目录,且映射到X:驱动器
所以  xcopy /E /Y X_x64\*.* X:\  就行了。
通过BeyondCompare比较,发现x64和x86公用StartIsBack64.dll以外的所有文件
(没有WOW64支持的话,x64下无法运行StartIsBackCfg.exe设置),
将X_x64版本的所有文件放到X目录,那么我们可以如下书写main.bat:

  1. rem 复制所有文件,如果是x86平台,删除StartIsBack64.dll
  2. xcopy /E /Y X\*.* X:\
  3. if not "%WB_PE_ARCH%"=="x64" del /f "X:\Program Files\StartIsBack\StartIsBack64.dll"
复制代码


是不是很简单?
回复

使用道具 举报

 楼主| 发表于 2018-11-13 22:38:25 | 显示全部楼层
本帖最后由 slore 于 2018-11-13 23:08 编辑

===第二章 第一节B 添加第3方注册表项目===
WimBuilder2启动后,将自动将wim的注册表挂载到:
  1. HKLM\Tmp_Default
  2. HKLM\Tmp_Software
  3. HKLM\Tmp_SYSTEM
  4. HKLM\Tmp_SAM
  5. HKLM\Tmp_SECURITY
复制代码


所以,如果想修改PE的注册表,直接通过reg命令即可。
例如使用暗黑主题的命令为:
reg add HKLM\Tmp_Default\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize /v AppsUseLightTheme /t REG_DWORD /d 0 /f

如果需要导入的注册表内容特别多,比如StartIsBack的,可以使用reg文件,
注意使用Tmp_Software之类的路径。
WIN10XPE工程中的
  • SIB_RegDefault.txt
  • SIBx64_RegSoftware.txt
  • SIBx86_RegSoftware.txt

直接就是:
  1. Windows Registry Editor Version 5.00

  2. [HKEY_LOCAL_MACHINE\Tmp_Default\Software\StartIsBack]
  3. "CurrentVersion"="2.6.2"
  4. "WelcomeShown"=dword:00000002
  5. "UpdateDate"="23/08/2017"
  6. "CustomColors"="ColorA=FFFFFFFF"
  7. "AutoUpdates"=dword:00000000
  8. ...
复制代码


这种格式,所以直接拿来用reg import或者regedit /s命令导入即可。
另外,WIN10XPE的Core.Script中还有部分设定,我们通过reg add来修改,
当然,别忘了我们的“皮肤”设定。

所以最终main.bat为:

  1. rem 复制所有文件(含开始菜单头像user-200.png),如果是x86平台,删除StartIsBack64.dll
  2. xcopy /E /Y X\*.* X:\
  3. if not "%WB_PE_ARCH%"=="x64" del /f "X:\Program Files\StartIsBack\StartIsBack64.dll"

  4. rem 导入注册表
  5. reg import "%~dp0SIB_RegDefault.reg"
  6. reg import "%~dp0SIB%WB_PE_ARCH%_RegSoftware.reg"

  7. reg add HKLM\Tmp_Default\Software\StartIsBack /v AlterStyle /d "X:\Program Files\StartIsBack\Styles\%opt[SIB.skin]%.msstyles" /f
  8. reg add HKLM\Tmp_Default\Software\StartIsBack /v TaskbarStyle /d "X:\Program Files\StartIsBack\Styles\%opt[SIB.skin]%.msstyles" /f

  9. rem // StartIsBack Display as flyout menu (Windows XP style) value 0/1
  10. reg add HKLM\Tmp_Default\Software\StartIsBack /v AllProgramsFlyout /t REG_DWORD /d 0 /f
复制代码


其实SIBx64_RegSoftware.txt vs SIBx86_RegSoftware.txt,只有6处
StartIsBack64.dll和StartIsBack32.dll文件名不同的,可以导入其中一份,
然后用reg add命令单独修改。不过就165行,压缩后2KB,没必要整合,
当然如果对StartIsBack进行不同的设定,不想32位,64位的2边都修改,可以整合。
回复

使用道具 举报

 楼主| 发表于 2018-11-13 22:38:47 | 显示全部楼层
===第二章 第二节A 添加原生系统文件===
StartIsBack本身并没有依赖,这里简单说下(请参照explorer, ime的main.bat)。

WimBuilder2提供了一个AddFiles宏命令(lib\macros\AddFiles.cmd, AddFiles.vbs),
可以根据一个main.bat中的文件列表进行从install.wim提取文件。
格式:
call AddFiles %0 :end_files
goto :end_files

;install.wim中的文件/文件夹路径列表,例如
\windows\explorer.exe
\Windows\System32\notepad.exe
\windows\IME
:end_files

同时,WimBuilder2的AddFiles针对提取install.wim文件做了些特别处理,使得文件列表变得简洁。
a. @前导符 + 路径: 后续文件可省略文件路径
b. +mui: 提取文件的同时,提取\zh-CN\*.mui之类的对应的mui文件
c. +ver > xxxxx: 后续文件仅在指定的版本条件下才提取
d. 以上内容可组合
e. @-: 取消文件路径
f. -mui: 取消mui文件提取
g. +ver* : 所有版本都提取后续文件(移除版本判断)
h. 文件以\开头,将无视@指定的路径(避免因为个别文件而反复设置@路径)
i.多个文件名以","分割可以写到一行,文件关系更紧凑


以磁盘管理组件为例,参照WIN10XPE的Explorer_AddFiles.txt,内容如下:

  1. ; Microsoft Managment Control. Disk Management
  2. \windows\system32\diskmgmt.msc
  3. \Windows\System32\dmdlgs.dll
  4. \Windows\System32\dmdskmgr.dll
  5. \Windows\System32\dmdskres.dll
  6. \Windows\System32\dmdskres2.dll
  7. \Windows\System32\dmintf.dll
  8. \Windows\System32\dmocx.dll
  9. \Windows\System32\dmutil.dll
  10. \Windows\System32\dmvdsitf.dll
  11. \Windows\System32\dmview.ocx
  12. \Windows\System32\hhsetup.dll
  13. \Windows\System32\??-??\diskmgmt.msc
  14. \Windows\System32\??-??\dmdskres.dll.mui
  15. \Windows\System32\??-??\dmdskres2.dll.mui
  16. \Windows\System32\??-??\dmocx.dll.mui
  17. \Windows\System32\??-??\dmutil.dll.mui
复制代码


所以,MMC\diskMgr.bat

  1. call AddFiles %0 :end_files
  2. goto :end_files
  3. @\windows\system32\
  4. +mui
  5. ;Disk Management
  6. diskmgmt.msc
  7. dmdlgs.dll,dmdskmgr.dll,dmdskres.dll,dmdskres2.dll,dmintf.dll
  8. dmocx.dll,dmutil.dll,dmvdsitf.dll,dmview.ocx,hhsetup.dll
  9. :end_files
复制代码


为了更容易理解,我从WIN10XPE的
Accessibility.Script
Accessibility_AddFiles.txt
移植了,辅助工具(轻松访问,放大镜,屏幕键盘,讲述人)。
这个组件,只要补充install.wim的文件即可。

见最终附件的
WINXPE\01-Components\zz-Accessories\Accessibility\main.bat
回复

使用道具 举报

 楼主| 发表于 2018-11-13 22:39:05 | 显示全部楼层
本帖最后由 slore 于 2018-11-13 23:09 编辑

===第二章 第二节B 添加原生注册表项目===
WimBuilder2启动后,将自动将install.wim的注册表挂载到:
  1. HKLM\Src_Default
  2. HKLM\Src_Software
  3. HKLM\Src_SYSTEM
复制代码

...

可以通过reg命令查询/修改其内容,不过对于PE通常只是复制其内容。
reg copy /?
为了方便,WimBuilder2提供了一个RegCopy宏(lib\macros\RegCopy.cmd),可在main.bat中如下使用:
  1. call RegCopy HKLM\Software\Classes\CLSID
  2. call RegCopy HKLM\Software\Classes\Interface
  3. call RegCopy HKLM\Software\Classes\TypeLib
复制代码


是不是很方便。
回复

使用道具 举报

 楼主| 发表于 2018-11-13 22:39:40 | 显示全部楼层
本帖最后由 slore 于 2018-11-13 23:09 编辑

===第三章 配置文件修改===
StartIsBack本身不需要,辅助工具除了创建快捷方式外也不需要,
本章先空下。回头补充pecmd.exe了再写。

就是修改startnet.cmd,或者pecmd.ini文件,批处理怎么处理文本,
就可以怎么用,不过不方便而已。WimBuilder2带了一个OpenTextFile(打开文件)的宏,
大体上可以这样用:
  1. call 打开文件 X:\Windows\System32\startnet.cmd %0 :end_startnet_edit
  2. goto :end_startnet_edit
  3. 文本.将("wpeinit").替换为("echo startup...\r\nwpeinit");
  4. 文本.在("explorer.exe").前插入("echo start shell...");
  5. 文本.替换("rem call ime_cmd.cmd", "call ime_cmd.cmd");
  6. :end_startnet_edit
复制代码


lib\macros\下面自己可以添加喜欢的脚本供批处理调用,或者bin下面添加命令,可以直接使用。
回复

使用道具 举报

 楼主| 发表于 2018-11-13 23:21:11 | 显示全部楼层
本帖最后由 slore 于 2018-11-13 23:27 编辑

说明比较多,但实际main.bat不过10来行,请直接看最终补丁吧。在附件的如下位置:
StartIsBack(2MB)-> D:\Dev\WimBuilder2\Projects\WIN10XPE\01-Components\00-Shell\za-StartMenu\StartIsBack
辅助工具(1.5KB)->    D:\Dev\WimBuilder2\Projects\WIN10XPE\01-Components\za-Accessories\Accessibility

因为补丁还算小,免得大家再复制整合到工程中,所以提供包含了完整工程 原WIN10XPE+StartIsBack+辅助工具 附件(1.9MB)。

WIN10XPE.zip (1.93 MB, 下载次数: 457)
回复

使用道具 举报

 楼主| 发表于 2018-11-13 23:31:05 | 显示全部楼层
把这页占满吧。

点评

支持值得点赞 批处理加句自动退出  详情 回复 发表于 2018-11-14 06:15
回复

使用道具 举报

 楼主| 发表于 2018-11-14 08:17:38 | 显示全部楼层
本帖最后由 slore 于 2018-11-14 08:52 编辑
金辰影视 发表于 2018-11-14 06:15
支持值得点赞  在构建批处理加句自动退出感觉好一点


因为没有对构建做日志导出,所以停留看结果有没有错误。有错误的话,echo on来分析。
全部是脚本构成,asserts\page_build.js,自己把cmd  /k改成/c就不停留了。

你还可以在,config.js中添加一个
var $build_exit = 1;
在page_build.js根据这个变量决定/c还是/k。

更进一步,你可以在构建页面加一个 选择按钮,
js改变这个$build_exit变量。
回复

使用道具 举报

 楼主| 发表于 2019-1-3 01:03:30 | 显示全部楼层
本帖最后由 slore 于 2019-1-3 21:28 编辑

StartIsBack界面更新选项,且带预览功能
sm-preview_cn.png

推荐放置于 WimBuilder2\Projects\WIN10XPE\01-Components\00-Shell\za-StartMenu
za-StartMenu.zip (1.62 MB, 下载次数: 882)

点评

辛苦设置好pe,却发现没有电池电量图标,请问要添加哪些文件??  详情 回复 发表于 2020-3-22 11:48

评分

参与人数 1无忧币 +5 收起 理由
palm777qqq + 5

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2019-1-3 01:05:47 | 显示全部楼层
推荐放置于:WimBuilder2\Projects\WIN10XPE\00-Configures\z-PECMD

z-PECMD.zip (1.48 MB, 下载次数: 349)
回复

使用道具 举报

 楼主| 发表于 2019-1-3 01:06:41 | 显示全部楼层
推荐放置于:WimBuilder2\Projects\WIN10XPE\02-Apps\PENetwork
PENetwork.zip (1.91 MB, 下载次数: 302)

点评

需要运行Startnet.cmd么  详情 回复 发表于 2019-2-11 16:29
这个东西放到PE里去后无线网络那一栏显示没有安装,点启动没反应  详情 回复 发表于 2019-2-11 16:27
回复

使用道具 举报

 楼主| 发表于 2019-1-6 22:37:51 | 显示全部楼层
wenbieba 发表于 2019-1-6 22:32
无线网络,驱动问题如何添加,另外如何生成iso。我只是把boot.wim文件替换到别的PE启动进入的

你用第一个按钮选择Windows的ISO挂载的镜像盘,例如 H:\
会自动复制boot,bootmgr等文件生成ISO。

如果你只有直接选择install.wim,你把其它的PE解压到_ISO_目录。
_ISO_相当于 光盘模板,然后会把boot.wim复制到sources目录中生成ISO。

如果你的PE模板不是启动sources\boot.wim,那么你可能需要修改:
bin\_MakeBootISO.bat第26行的复制语句的目标"%ISO_DIR%\sources\boot.wim"位置。

  1. copy /y "%Factory%\target\%WB_PROJECT%\build\boot.wim" "%ISO_DIR%\sources\boot.wim"
复制代码

点评

大佬 生成的PE为何开始菜单不显示头像 总是那个灰色的? http://bbs.wuyou.net/forum.php?mod=viewthread&tid=420869&extra=  详情 回复 发表于 2020-6-15 22:45
回复

使用道具 举报

 楼主| 发表于 2019-1-15 23:07:05 | 显示全部楼层
2010hook 发表于 2019-1-15 09:10
我完全不需要ISO,不想复制bootmgr。
只生成wim不好么?

默认不会生成ISO,每个人的ISO模板不一样,然后有人提出想生成ISO,所以有_ISO_模板目录,
把自己的ISO模板放进去,点【生成ISO】按钮,会创建ISO,还可以自动VirtualBox测试wim文件。

有人没有放置到_ISO_模板,导致生成的ISO无法启动,所以新版本添加了一个“警告”提醒,
只是提醒作用,不会生成ISO。

如果不生成ISO也不想出现这个提示,自己在_ISO_目录,新建一个bootmgr文件,大小为0也无所谓。
只是跳过检查的警告提醒,与生成ISO无关。

或者你在config.js的最后添加一行:

  1. $iso_boot_file = '..\\config.js';
复制代码


这样也会跳过ISO模板检查。


你还可以打开 WimBuilder2\assets\js\page_build.js,在第34行alert的开头添加//把这个提示注释掉。

    if (!fso.FileExists(iso_path + '\\' + $iso_boot_file)) {
        if (!fso.FolderExists($wb_src_folder + 'boot')) {
            // alert(i18n_t('The _ISO_ folder is not available, you can\'t create bootable ISO image.\r\nPlease make your ISO template manually, or select the Windows ISO folder/drive for auto creating.'));
        }
    }

评分

参与人数 1无忧币 +5 收起 理由
2010hook + 5 回复真详细

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2019-1-20 15:27:45 | 显示全部楼层
本帖最后由 slore 于 2019-1-20 15:40 编辑
nonameman 发表于 2019-1-20 15:07
感谢创作者 Slore。
Thanks to the creator Slore.
제작자 Slore에게 &#4 ...


Hi, noameman
Thanks for translation contribution.
I will add them to WimBuilder2.

If you have github account, you can make a pull request https://github.com/slorelee/wimbuilder2

about the last.bat to support 19H1, I see you call AddFile in one line.
it can be written in goto :end_file block. and should seperate them in different patch(s),
and update lib\macros\AddFiles to support mum files.

The support_19H1 part will be added later when Microsoft release the new Windows 10.

点评

Unfortunately I have no github account. I am not a programmer. I am just a beginner in the field of coding. BUT I want to support your great achievements as much as possible, because I like your s  详情 回复 发表于 2019-1-21 09:37
回复

使用道具 举报

 楼主| 发表于 2019-1-21 10:54:12 | 显示全部楼层
nonameman 发表于 2019-1-21 09:37
Unfortunately I have no github account.
I am not a programmer.
I am just a beginner in the fiel ...
Unfortunately I have no github account.

OK. I merged your translation.

add Korean translation(from nonameman)  Latest commit c56c9fb  10 hours ago
https://github.com/slorelee/wimb ... 3530d4d28b4b300a35c

new version download from:
https://github.com/slorelee/wimbuilder2/archive/master.zip

I didn't merge next files in 1WB_patch_KOR.7z:
Project/WIN10XPE/config.js  (about default settings, This will support default.js, custom.js, abc.js, ..., later)
Project/WIN10XPE/last.bat (about 19H1 support, as stated some of them should be in suitable patch batch scripts, like Wow64_Support)


Wow64_Support\submain.bat
  1. call AddFiles %0 :end_file
  2. ...
  3. +ver > 18000
  4. xxx.dll,yyy.dll,...

  5. :end_file

  6. if %ver[3]% GTR 18000 call :19H1_Addition

  7. :19H1_Addition
  8. xxxxx
  9. goto :EOF
复制代码

I am just a beginner in the field of coding.
BUT I want to support your great achievements as much as possible, because I like your signature ^_^


I am glad to know someone already modified the Project to support new version(19H1)/adapt one's needs correctlly by himself,
even without any documentation.
我很高兴知道,有人已经可以自己修改这个工程去支持新的版本(19H1),和修改一些配置文件来适应自己的需求,即使没有任何文档说明。

Have fun in the field of coding ^_^
回复

使用道具 举报

 楼主| 发表于 2019-1-24 22:22:19 | 显示全部楼层
本帖最后由 slore 于 2019-1-24 22:25 编辑

2019-01-24 更新:
* 一个个文件验证,得到了最小的DWM支持列表,不依赖explorer组件
   (WinXShell.exe为Shell不再出错)。
* 一个个文件验证,得到了最小的切换Administrator补丁,不再依赖explorer和DWM组件
  (WinXShell.exe作为Shell也可利用)。
* 一些细节修正

最新版下载:
https://github.com/slorelee/wimbuilder2/archive/master.zip
无法从github下载的话,下载首页最新版附件。

SwitchAdminUI.png
SwitchToAdmin.png
SA2.png


@nonameman
Projects/WIN10XPE/00-Configures/System/main.html
has new resources about Administrator Options.

点评

@nonameman Projects/WIN10XPE/00-Configures/System/main.html has new resources about Administrator Options. ========== I was already aware of the process of updating two times a few hours ago i  详情 回复 发表于 2019-1-26 03:02
回复

使用道具 举报

 楼主| 发表于 2019-1-24 22:30:15 | 显示全部楼层
WinXShell.exe做一个UI_AccountSwitch,另外WinXShell.lua中很多配置路径不正确,导致很多功能无法激活,
快捷方式的打开所在文件位置,右下角时间左键日历界面等。
修复后,最新版会更新进来。

目前的话,把RC3.3版本放到
WimBuilder2\Projects\WIN10XPE\01-Components\00-Shell\WinXShell\X_x64\Program Files\WinXShell\*.*
WimBuilder2\Projects\WIN10XPE\01-Components\00-Shell\WinXShell\X_x64\Program Files\WinXShell\*.*
也可使用。

WinXShell_AccountSwitch.png
回复

使用道具 举报

 楼主| 发表于 2019-1-24 22:58:20 | 显示全部楼层
本帖最后由 slore 于 2019-1-24 23:32 编辑

另外,外部程序PECMD,StartIsBack,7-ZIP将另外用一个库管理。
该库提供
fetch <程序> <版本> <构架>
的形式自动下载官方指定版本,最新版本,返回路径,WimBuilder2根据此路径直接将
文件应用到wim文件中,当有新版本更新时,删除旧版文件,重新构建即可。

swRepoCMD.png


另外,也做了一个简易的图形界面管理,有删除,和更新按钮。
采用WimBuilder2的框架,后面会直接整合到wimBuilder2中,作为一个"扩展插件"。

swRepoUI.png

包含wget,aria2,7z工具的x64/x86版本,文件大于3MB了,分隔成2个附件。

(z01.zip文件去掉后缀.zip)
swRepo-master.z01.zip (2.9 MB, 下载次数: 435)

点评

如题 正常机下可以访问共享 PE下需要账号密码?  详情 回复 发表于 2020-6-29 13:17

评分

参与人数 1无忧币 +5 收起 理由
palm777qqq + 5

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2019-1-25 12:48:05 | 显示全部楼层

mtp补丁确认方法

1.确认X:\Hook.dat生成,确保mtpHelper.dll启用。

2.ALPC Port \UMDFCommunicationPorts\ProcessManagement被正确创建。

http://bbs.wuyou.net/forum.php?m ... &fromuid=166812
process explorer通过CTRL+H查看services.exe进程,确认,

到这里说明补丁有效。

3. 运行mtp_support.bat
提示wpdmtp驱动正确安装。(这里错误就是WIM的问题了。)
回复

使用道具 举报

 楼主| 发表于 2019-1-25 12:56:02 | 显示全部楼层
某些人 发表于 2019-1-25 12:41
大神帮忙看下,iso模板和出现的状况都在链接里,https://send.firefox.com/download/aa1fc5d042/#KJ6HZl0MN ...

你选择的是winxshell作为外壳,但是我没提供WinXShell的exe。
所以没有外壳,是黑屏。

我看你下载PECMD的补丁,那你有看到
有壁纸,最上面提示 正在初始化,请等待。。。(英文)的界面么。
如果有,
你选择explorer作为外壳构建就好了。

如果这里也没有看到,那么就是ISO模板的问题了。
建议把系统ISO的BOOT文件,EFI,bootmgr复制过来。
或者清空 _ISO_目录,选择系统ISO挂载的盘符(如H:\),不要选择D:\ISO这种只有install.wim的目录。
回复

使用道具 举报

 楼主| 发表于 2019-1-26 05:35:57 | 显示全部楼层
nonameman 发表于 2019-1-26 03:02
@nonameman
Projects/WIN10XPE/00-Configures/System/main.html
has new resources about Administra ...

Does windows explorer + Admin + DWM work?
In my case(tested with v1809) it works.

without DWM , black screen in 7 seconds, then into the Administrator account.


Can you try v1809?I want to know if the Admin patch wrong, or it needs more for 19H1.

PENetwork need s run twice for showing the tray icon .it is a bug of PENetwork,  reg add ShowOnTary option before it first running, will fix the issue. I don't know if the new version fixed it.

点评

Yes, I've tested with v1809. Judging from your success, there seems to be a problem with my build environment. I've tried various combinations of options and so on with Github version. Windows expl  详情 回复 发表于 2019-1-26 13:44
回复

使用道具 举报

 楼主| 发表于 2019-1-26 21:51:08 | 显示全部楼层
本帖最后由 slore 于 2019-1-26 23:24 编辑
青青草 发表于 2019-1-26 12:54
几点建议:
      2、增加右键:新建文件夹;
      3、增加右键:新建文本文档。


这个就是改注册表,在
WimBuilder2\Projects\WIN10XPE\main.bat或者
WimBuilder2\Projects\WIN10XPE\last.bat中添加以下2行reg add命令就好了。

  1. reg add HKLM\Tmp_Default\Software\Microsoft\Windows\CurrentVersion\Explorer\Discardable\PostSetup\ShellNew /v Classes /t REG_MULTI_SZ /d .library-ms\0.txt\0Folder /f
  2. reg add HKLM\Tmp_Default\Software\Microsoft\Windows\CurrentVersion\Explorer\Discardable\PostSetup\ShellNew /v ~reserved~ /t REG_BINARY /d 0800000000000600 /f
复制代码


需要是可配置的话,我会放到SYSTEM\main.bat中, 给一个文本框,
-------------------------------------
右键新建菜单: .txt,Folder
-------------------------------------
没有必要吧?



点评

我用了你的方法,还是没用。附件中有日志,日志字数超出限制,所以把日志压缩上传附件。  详情 回复 发表于 2019-1-27 20:09
回复

使用道具 举报

 楼主| 发表于 2019-1-26 22:28:32 | 显示全部楼层
nonameman 发表于 2019-1-26 13:44
Yes, I've tested with v1809.
Judging from your success, there seems to be a problem with my bui ...

Hi, nonameman

Windows explorer shell + Admin + DWM / without DWM + not reduced imageres.dll + Full Winre.wim /  light WinSxS + full software hive / merge hive + even more PURE wimbuilder-master version from Github(i.e., original defualt version without my any modification)


  • full software hive
  • not reduced imageres.dll

This is done auto, you needn't set them.
你不需要选择使用完整的SOFTWARE注册表和替换完整imageres.dll文件
它们已经在下面的批处理中进行了处理。

WimBuilder2\Projects\WIN10XPE\prepare.bat
:BEFORE_HIVE_LOAD
if "x%opt[system.admin_enabled]%"=="xtrue" (
    set opt[build.registry.software]=full
)

if "x%opt[build.registry.software]%"=="xfull" (
  call AddFiles \Windows\System32\config\SOFTWARE
  set REGCOPY_SKIP_SOFTWARE=1
)
goto :EOF



WimBuilder2\Projects\WIN10XPE\00-Configures\System\Admin\SwitchToAdmin.bat
+mui
;need install.wim's imageres.dll
imageres.dll

AuthExt.dll,InputSwitch.dll,twinapi.appcore.dll,Windows.UI.Immersive.dll


  • Full Winre.wim /  light WinSxS


It works with light WinSxS, so both them OK.
精简的WinSxS就可以启用Administrator帐户,设置成哪个选项都是可以的。


even more PURE wimbuilder-master version from Github(i.e., original defualt version without my any modification)

Win10 v1809 + pure wimbuilder-master + DEFAULT settings + Enable Admin Option + PECMD  => Administrator Session
I just download it, copy PECMD patch, it is OK.
(The session confirm dialog don't show, because download from github, the WimBuilder2\Projects\WIN10XPE\00-Configures\System\Admin\X_SYS\PecmdAdmin.ini's line coding be changed to UNIX(LF), next code failed.)

  1. if %opt[system.admin_countdown]% GTR 0 (
  2.   [b][color=Red]call TextReplace "%X_SYS%\PecmdAdmin.ini" "CALL ADMIN#r#n//CALL SWITCHTOADMINQUESTION" "#//CALL ADMIN#r#nCALL SWITCHTOADMINQUESTION"[/color][/b]
  3.   call TextReplace "%X_SYS%\PecmdAdmin.ini" "#YN *3000 $N" "#YN *%opt[system.admin_countdown]%000 $N"
  4. )
复制代码


Win10 v1809 加上从github下载的wimbuilder-master,在默认选项的基础上选择 启用 Admin 帐户(需要PECMD补丁),将进入Administrator帐户。
我刚刚测试过是OK的。
(不过我发现 确认 是否使用Administrator还是SYSTEM帐户的对话框将不会显示,因为从github上下载的代码导致PecmdAdmin.ini配置文件的换行符变成了UNIX格式,导致配置文件替换处理失败。)

PECMD (2019-01-02)       on reply #71
http://bbs.wuyou.net/forum.php?m ... DEyfDQxMTM5OQ%3D%3D

Do you miss the PECMD patch?
你是否沒有包含PECMD补丁?

@all/所有人
If your build failed, please rebuild with 1-Build(LOG), then "Open log folder", upload the last_wimbuilder.log file.
当你构建PE失败时,请选择 1-运行(日志) 进行构建,然后 “打开日志文件夹” 将 last_wimbuilder.log 文件上传上来。
回复

使用道具 举报

 楼主| 发表于 2019-1-26 22:34:33 | 显示全部楼层
我发现 确认是否使用Administrator还是SYSTEM帐户的对话框 不会显示,将默认进入Administrator帐户。
因为从github上下载的代码导致PecmdAdmin.ini配置文件的换行符变成了UNIX(LF)格式,导致配置文件替换处理失败。
所有bat文件也变了,不过批处理可以正常运行。
有些新的功能在做,我不好中途改变文件编码,下个版本我会修复。
请下载了附件的,手动将
WimBuilder2\Projects\WIN10XPE\00-Configures\System\Admin\X_SYS\PecmdAdmin.ini
的换行符另存为Windows(CRLF)格式。

回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-3-29 23:01

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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