无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: slore
打印 上一主题 下一主题

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

    [复制链接]
361#
 楼主| 发表于 2019-9-6 08:44:30 | 显示全部楼层
liuzhaoyzz 发表于 2019-9-6 08:27
wimbuilder2很灵活啊,解决的方法很多。我就觉得main.bat直接搞注册表或者写批处理容易懂。wimbuil ...


变量是启动管理的main.bat设置的,不知道的直接写X:\PEMetrial\AutoRuns\Startup也可以就是长了点儿。
我回头看看有啥Sample的补丁包,或者readme添加吧。

以后这些会自动生成选项,使用者没必要在意路径。。。
回复

使用道具 举报

362#
 楼主| 发表于 2019-9-8 20:43:09 | 显示全部楼层
本帖最后由 slore 于 2019-9-8 20:50 编辑
liuzhaoyzz 发表于 2019-9-8 19:41
问下slore大神,以H:\WimBuilder2-20190901\Projects\WIN10XPE\za-Slim\main_Ultra.bat为例,


...


网页中class设定了,opt_item自动传递到批处理。
标准方法preset中设置默认值。

可以省略。但是传递到P处理中,自己要注意。

设定页面必须在 补丁页面点一下,这个变量会变成true'false。如果你一次都没点开,这个变量是空。

如果
默认是不选中,必须到页面选择打勾,
if x变量==xtrue逻辑处理打勾的情况。
这样没选是xfalse,页面没打开是x,都能处理。

如果默认是选中(html中设置checked),不想使用时
必须点开页面去掉对勾,那么你批处理中就用
if not x变量==false处理逻辑。


slim.xxxx的名字,没有要求,随便写。
写成我这种格式,排序,还有分页面比较容易看。


html页面到批处理中,是自动的。是用js自动处理的。
回复

使用道具 举报

363#
 楼主| 发表于 2019-9-8 21:33:49 | 显示全部楼层
本帖最后由 slore 于 2019-9-8 21:44 编辑
liuzhaoyzz 发表于 2019-9-8 20:58
我发现一个问题,就是html页面里面,checkbox的name值不能和具体的文字内容搞成一样的,否则就会导致js获取 ...


"> shell new bat_reg_txt file<":"> 新建菜单<"  多语言对应是字符串替换的,你多带2个符号区分就好了。

只是在中文环境下使用的话,html中直接用中文,不需要zh-CN.js翻译,更简单。name写英文就好。

点评

明白了。以后注意了。  发表于 2019-9-8 21:35
回复

使用道具 举报

364#
 楼主| 发表于 2019-9-8 21:36:25 | 显示全部楼层
liuzhaoyzz 发表于 2019-9-8 20:58
我发现一个问题,就是html页面里面,checkbox的name值不能和具体的文字内容搞成一样的,否则就会导致js获取 ...

另外关于右键菜单,其实我以前在私人订制里面有一个文本框。
.txt.reg这种格式,这样可以自己追加项目,比你用 复选框 要好。

点评

怎么现在的版本,私人订制里面取消了追加txt reg这样子的新建文件格式?  详情 回复 发表于 2019-9-9 08:37
回复

使用道具 举报

365#
 楼主| 发表于 2019-9-8 21:42:24 | 显示全部楼层
本帖最后由 slore 于 2019-9-8 21:47 编辑
liuzhaoyzz 发表于 2019-9-8 21:31
用LUA启动器+winxshell作为shell,penetwork似乎运行不了,提示见附图。
是不是如果用winxshell作为shell ...


开始菜单用不了,StartIsBack,只支持开源的Classic Shell,
winxshell内核不补充文件直接运行,PENetwork需要些explorer也要用的内核dll,所以运行不了。补充了dll就可以。
选择winxshell是要简单,小内核,快速加载启动,但是又比单纯cmd方便的方式。

100多MB的PE,安装下系统,做做维护啥的。
快速网络部署。

点评

WinXShell只是多一种选择。不是强制。看自己的需要而定。  发表于 2019-9-8 21:47
回复

使用道具 举报

366#
 楼主| 发表于 2019-9-8 23:41:21 | 显示全部楼层
2011mtw35 发表于 2019-9-7 16:28
提几个BUG
1、drvinst.exe禁止数字签名,好像不是很完美,显卡不能安装,网卡可以,
不知道是什么原 ...

1、drvinst.exe禁止数字签名,好像不是很完美,显卡不能安装,网卡可以,
不知道是什么原因。

drvinst_patch\main.bat, 修改安装测试驱动, 进PE, 右键安装该驱动, 如果提示安装成功,
则驱动没有问题.
是不是你的显卡驱动本身有问题?或者试试不要安装基本显卡驱动?


2、桌面右键不能新建文本文档,不知道注册表在哪?可否提供一下。
3、文本没有默认关联,修改了几次注册表也没有生效。

新的20H1的话, 记事本转到商店了, 所以默认关联没有,
之前版本是正常默认右键新建菜单有文本文件和文件夹.

自己修改注册表
HKEY_ROOT\.txt
HKLM\Tmp_Default\Software\Microsoft\Windows\CurrentVersion\Explorer\Discardable\PostSetup\ShellNew

4、原版喇叭图标是否可以默认不隐藏,没有有点不习惯。
发现pecmd.exe版本偏低,右键选择分辨率出现英文的情况,建议更新到1201.88.5.82版本。




默认选项勾选 音频 是显示 声音图标的, 并没有隐藏.
分辨率设置跟PECMD没有关系,默认如图所示, 中文会正确显示.
PECMD是原版WIN10XPE中带的英文版本, 如果换成中文版, 英文系统制作PE, PECMD的帮助是乱码不好看.
如果需要升级,请自行替换vendor目录文件即可.

回复

使用道具 举报

367#
 楼主| 发表于 2019-9-9 10:54:50 | 显示全部楼层
saiz 发表于 2019-9-9 10:03
跟我一樣...
一開始缺2個檔 rdyboost.sys iorate.sys
補上後就變開機藍屏 critical process died

不要勾选 使用完整的SYSTEM注册表

点评

十分感謝!! 改過後可以開機 但無法使用網芳 不能連其它電腦分享 不能用網路磁碟機 使用\\IP\連線會跳出DOS畫面 要求我輸入帳密 但我沒有設定啊~? 也找不到我NAS的分享 手動輸入也不行 網路功能部份我全打勾了  详情 回复 发表于 2019-9-9 17:19
大佬,我发现勾选完整SYSTEM注册表体积会很大,如果我是用QQ和远程的,能勾选“使用对WINSXS进行精简的WINRE.WIN ” 这个选项吗  详情 回复 发表于 2019-9-9 11:03
回复

使用道具 举报

368#
 楼主| 发表于 2019-9-9 11:26:59 | 显示全部楼层
5603572 发表于 2019-9-9 11:03
大佬,我发现勾选完整SYSTEM注册表体积会很大,如果我是用QQ和远程的,能勾选“使用对WINSXS进行精简的WI ...

完整SOFTWARE是65MB但是压缩到wim并不大。
winsxs精简,可以参考其他PE。运行QQ的话,这个是可以精简的。
不能用了再看补充什么吧。
回复

使用道具 举报

369#
 楼主| 发表于 2019-9-9 11:29:54 | 显示全部楼层
zgvygcj 发表于 2019-9-9 10:46
你好,能详细说下如何加入第三方软件吗,如谷歌浏览器,虚拟光驱软件等,如何加入注册表信息,保证软件能正 ...


首先你是否明白,你怎么将这些软件添加到其他PE?
二,你是想进去PE运行安装,解压,还是直接生成的PE就直接可以用?
虚拟光驱软件,很多,不知道你想装哪个?

添加注册表,你把注册表放到PEMerial\Autoruns\Startup目录,开机会自动导入。

点评

谢谢  发表于 2019-9-12 11:09
回复

使用道具 举报

370#
 楼主| 发表于 2019-9-9 18:09:46 | 显示全部楼层
saiz 发表于 2019-9-9 17:19
十分感謝!!
改過後可以開機
但無法使用網芳 不能連其它電腦分享 不能用網路磁碟機

无密码许可忘了是不是需要哪里设定。你是PE访问Windows还是,
Windows访问PE?
添加一个带密码的用户,设定共享,测试是否可以访问。

我机器,带密码是可以访问的。

点评

我都在VM中測試 本機WINDOWS開分享 在另一台WIN10實體機可找到 網路中也有一台NAS有開分享(有要密碼 也有不要密碼的) 結果我切換到administrator就好了!! 研究下我原有10PE是不是也能切換或移殖過去 感覺問題點  详情 回复 发表于 2019-9-9 18:18
回复

使用道具 举报

371#
 楼主| 发表于 2019-9-9 18:52:00 | 显示全部楼层
5603572 发表于 2019-9-9 16:58
我还在研究添加无线网卡的问题,我发现并非没有无线网卡的驱动,而是PE只识别一个网卡。
是不是大佬在写加 ...
  1. cd /d X:\PEMaterial\MyDrivers
  2. pnputil /add-driver *.inf /subdirs
复制代码

试试
回复

使用道具 举报

372#
 楼主| 发表于 2019-9-9 19:00:29 | 显示全部楼层
saiz 发表于 2019-9-9 17:58
剛重做一個 ISO不能開機 但WIM可以開機
開機進桌面前就提示缺MLANG.DLL
但還可以進桌面

你的日志我看了,你是单独选择的install.wim和boot.wim.

你用第一个按钮选择桌面的 v1903_x64 文件夹(ISO的解压路径),
这样最后可以生成ISO,就可以启动了.

另外你用boot.wim居然可以启动?
推荐使用自动的winre.wim.

点评

沒用過這工具 不太會用 正用WINRE.WIM產生新PE中 看看剛才遇到的那些問題 會不會就消失了  详情 回复 发表于 2019-9-9 19:03
回复

使用道具 举报

373#
 楼主| 发表于 2019-9-10 08:11:13 | 显示全部楼层
saiz 发表于 2019-9-10 07:59
請問一下
rasphone.pbk無法開啟是正常的嗎?
有沒有方法可以正常使用?

繁体输入法,应该是注册表问题吧,我不会用,没试过,确实不能用,建议用第三方输入法吧。


拨号?这个没环境测试。。
回复

使用道具 举报

374#
 楼主| 发表于 2019-9-10 14:56:53 | 显示全部楼层
liuzhaoyzz 发表于 2019-9-10 14:52
问下slore大神,似乎wimbuilder2的注册表没有精简吧?是用的原版的注册表?有没有稳定的精简方案? ...

注册表不选那些Admin' .net,网络等功能,只补充功能需要的。
这几个大件,是直接用完整的。
我没有计划精简注册表,浪费时间精力效果一般。
随便精简下字体,dll这部分空间就剩出来了。
全sofware压缩下才11MB,外置一个软件就剩出来了,何必呢。
回复

使用道具 举报

375#
 楼主| 发表于 2019-9-10 16:53:25 | 显示全部楼层
本帖最后由 slore 于 2019-9-10 16:57 编辑
liuzhaoyzz 发表于 2019-9-10 15:31
做好的PE.ISO,有个启动时有一个运行cd的提示,wimbuilder中有选项或者设置修改吗?
是不是要自己 ...


_CustomFile_中,有个PreISO.bat,里面del掉这个文件。
del /q "%ISO_DIR%\boot\fixboot.bin"
不过我代码处理有点问题,这个批处理是优先运行的,第一次运行,fix.bin还没复制到_ISO_目录没法删除。之后第二次运行就可以了。

选项我有点纠结,这个是所有工程之外的,是单独的,打算单独添加一个ISO选项的页面,一直没做。
再构建ISO右边,多一个设定按钮来处理。
回复

使用道具 举报

376#
 楼主| 发表于 2019-9-10 19:57:18 | 显示全部楼层
liuzhaoyzz 发表于 2019-9-10 19:21
我自己写了个带checkbox的补丁,和添加txt放在了一起。

我认为需要删除 _ISO_\boot\bootfix.bin, X盘没有boot文件夹的啊, 你这个不对吧.
回复

使用道具 举报

377#
 楼主| 发表于 2019-9-10 20:20:41 | 显示全部楼层
本帖最后由 slore 于 2019-9-10 21:11 编辑
WAIGO 发表于 2019-9-10 18:02
老大您好!这几天一直在摆弄个人专用的 PE 制作程序。有些问题还是不太明白,恳请老大讲解一下:

1、如 ...

1、如下图那样"进入睡眠"及"关闭屏幕"状态的时间在何处设置?


只有选项
  1. "system.power.off_disp_bat":3,
  2. "system.power.off_disp_plug":3,
  3. "system.power.off_disk_bat":20,
  4. "system.power.off_disk_plug":2,
  5. "system.power.dis_usb_suspend_bat":true,
  6. "system.power.dis_usb_suspend_plug":true,
复制代码


任意main.bat你可以用
  1. if not "x%opt[system.power.off_disp_bat]%"=="x" call :POWER_SETTINGS
  2. goto :EOF

  3. :POWER_SETTINGS
  4. echo %opt[system.power.off_disp_bat]%
  5. echo %opt[system.power.off_disp_plug]%
  6. ...
  7. 自己根据设定值, 去修改注册表设定, 我觉得没什么用没改, 只是界面选项设计用来参考
  8. goto :EOF
复制代码

2、选择"当任务栏满时合并"选项在何处设置?


这个已经自动根据选项设定了啊.
D:\Dev\WimBuilder2\Projects\WIN10XPE\01-Components\00-Shell\last.bat
  1. rem // 0=Always combine, hide labels, 1=Combine when taskbar is full,2=Never combine
  2. set TaskbarCombineType=2
  3. if "x%opt[shell.taskbar.combine]%"=="xalways" (
  4.     set TaskbarCombineType=0
  5. ) else if "x%opt[shell.taskbar.combine]%"=="xauto" (
  6.     set TaskbarCombineType=1
  7. )
  8. reg add HKLM\Tmp_Default\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced /v TaskbarGlomLevel /t REG_DWORD /d %TaskbarCombineType% /f
  9. set TaskbarCombineType=
复制代码

3、想增加一个选项 "04-System32",内容是 System32 及 SysWOW64 目录下的补充文件。在 WIN10XPE 的 main.bat 增加红圈中的一行后没有反应(如下图):


CheckPatch 是确认你这个选项是否打勾.
你这里不需要用.
另外你的代码好像写错了? 最后少了引号?还是画框盖住了.

不需要修改Projects\WIN10XPE\main.bat,

01-Components\04-System32下面新建一个 main.html, 啥内容都不用写.

01-Components\04-System32
     main.html
     System32.7z
     main.bat

main.bat
你现在是错误的, V2X是从 WimBuilder2\vendor\子目录 下面解压.
你现在的代码, 需要把 System32.7z 放到:
WimBuilder2\vendor\_CUSTOMFILES_

另外, X_WIN你写错了, 需要用环境变量.  "%X_WIN%\"

不想放到vendor分开的话, 建议直接调用7za.exe或者Extract2X宏命令解压.

main.bat
  1. 7za x System32.7z -o"%X_WIN%"
  2. rem 或者用下面这个, 二选一
  3. call Extract2X System32.7z "%X_WIN%"
复制代码


提取install.wim中额外文件的话, 你的SysWOW64的部分不对.

call AddFiles %0 :end_files
goto :end_files

@\Windows\System32\
BioCredProv.dll,....,.....
wpc.dll
+syswow64
;09.01版本添加了syswow64关键字,可以在这里
;需要给System32中添加,也需要给SysWow64中添加的文件.
...
...
...
-syswow64

+if "x%opt[build.wow64support]%"="xtrue"
@\Windows\SysWOW64\
activeds.dll,...,..
mfc40u.dll
-if

:end_files


你的代码不全, 你先按我这个改改看, 如果还不行, 你把04-System32补丁,
传上来吧.

另外:
为了快速测试自制补丁, 强烈推荐先使用 [准备]页面的, 使用 test\boot.wim.
自己的main.bat中,
@echo on
...
...
...
pause
回复

使用道具 举报

378#
 楼主| 发表于 2019-9-10 20:23:34 | 显示全部楼层
liuzhaoyzz 发表于 2019-9-10 20:10
不好意思,你说的是对的,确实X盘不会有bootfix.bin,应该用你说的方法,我刚才在虚拟机测试没 ...

第一次, 不行, 因为_ISO_目录还是空的, _ISO_目录存在之后就可以.

另外, 删除你处理了, 如果 想保留呢? 你怎么添加回来?

应该是不想提示的时候: 改名fixboot.bin.bak
想提示的时候 fixboot.bin.bak 再改名回来.

不是X盘的东西, 每次都是全新的, 所以这里有点点复杂, 我就一直放着没做呢...
回复

使用道具 举报

379#
 楼主| 发表于 2019-9-10 20:27:41 | 显示全部楼层
zgvygcj 发表于 2019-9-10 20:23
你好,做好的PE启动成功,不过看到根目录下有个PEMaterial的文件夹,想问下这个是做什么用的?


启动调用的脚本, 后续版本自定义驱动, 开机壁纸, 启动声音等文件也会放到这个里面.

如果不想在根目录, 可以到 [启动管理器] 选项中, 修改到 X:\Windows\PEMaterial

这个文件夹的意思是, 系统文件以外的 PE用额外添加的内容都放到这里, 比较清楚,
非系统的文件不会放到Windows中.

后续, 还支持开机自动遍历各个驱动器, 加载PEMaterial中的启动脚本...

自己可以删除, 但是, 其中的脚本不运行的话, PE的某些功能可能不正常.
只是负责启动相关的, 自己PECMD.ini都处理好的话, 可以不要(但是请自己修改).
回复

使用道具 举报

380#
 楼主| 发表于 2019-9-10 21:33:55 | 显示全部楼层
本帖最后由 slore 于 2019-9-10 21:36 编辑
liuzhaoyzz 发表于 2019-9-10 21:19
还是你考虑周到啊。

另外一个问题,我用lua启动器+winxshell作为shell,右侧系统托盘区没有网络和共享 ...


通常设定都是以系统自身为主.

WinXShell最近在进行些小的改进, 打算更新后在
00-Shell\WinXShell中提供:
   口 代替系统托盘网络图标
   口 代替系统托盘音量图标

或者如下:
  1. 外壳\WinXShell
  2.     口 添加托盘网络图标
  3.     口 添加托盘音量图标
  4. 网络支持
  5.     口 隐藏系统网络图标
  6. 音频
  7.     口 隐藏系统音量图标
复制代码



不能自动适配吗?

组合太多了, 自动不了. 用原版explorer, 我也是用WinXShell的WIFI, 没用PENetwork.
所以不是原版就用原版. 自行决定, 然后 推荐自己做一个 补丁,
判断explorer.exe, PENetwork, WinXShell 自己来处理.
回复

使用道具 举报

381#
 楼主| 发表于 2019-9-10 22:04:17 | 显示全部楼层
liuzhaoyzz 发表于 2019-9-10 21:58
还有个问题,我勾上了“使用精简imageres.dll”,为什么这个文件还是22MB之大,没有改啊?wimbuilder2是怎 ...

只是选项, 我没精简, reshacker导出, 然后 extracticon 把 40x40以上的资源删除.
回复

使用道具 举报

382#
 楼主| 发表于 2019-9-10 22:09:36 | 显示全部楼层
liuzhaoyzz 发表于 2019-9-10 21:47
1447楼我的表述确实错了,我知道PE原生开始菜单和wifi,音量不能用。

的确应该是这样子的。
因为不但要了解wimbuilder2,还要了解winxshell的很多参数才行,winxshell的帖子都有649楼啊。


下载的附件中有 UI_TEST.bat, 基本需要用的参数都用, 不需要看主题回帖.

如果想要好的效果, 自己稍微花点儿时间研究. 不想研究就随大流用默认, 等其他人补丁吧.
回复

使用道具 举报

383#
 楼主| 发表于 2019-9-10 22:32:04 | 显示全部楼层
本帖最后由 slore 于 2019-9-10 22:38 编辑
liuzhaoyzz 发表于 2019-9-10 22:17
原来是这样子,我以为勾上了“使用精简imageres.dll”,wimbuilder2就帮助我们hack了imageres.dll呢。
那 ...


原来是这样子,我以为勾上了“使用精简imageres.dll”,wimbuilder2就帮助我们hack了imageres.dll呢。
那么,如果我自己hack过了这个imageres.dll,我该怎么用一个快捷的办法放进ISO?wimbuilder2能替我做这个拷贝进入iso的工作吗?自己写补丁搞进去?


imageres.dll.mun (5MB)
last.bat
copy /y imageres.dll.mun "%X_WIN%\SystemResources\"


1、WINXSHELL的UI_WIFI我启动了,为什么网络已经通了,可以上网了,托盘区图标还是断开的红色?


有线上网? netperfm服务没有, 无法获取有线网络状况. (正常Windows也一样)

2、另外,我点了网络和internet设置,应该是我精简掉了相关文件,倒底是什么文件?
这个提示是winxshell抛出来的,从winxshell的源代码里面可以看到吗?


按钮, 可以自定义, 点击运行的程序自己可以改, 也可以让点击无效.
UI_WIFI比较老, 在main.jcfg中修改定义即可, 新版本已经用 main.lua代替了.
D:\Dev\WimBuilder2\vendor\WinXShell\X_x64\Program Files\WinXShell\wxsUI\UI_WIFI.zip\
     main.jcfg

"JS_CMD":
  {
    "::enable_firewall":{
      "command":"Wpeutil.exe",
      "parameters":"Enablefirewall",
      "flags meaning":"0 - SW_HIDE",
      "showflags":0
    },
    "::disable_firewall":{
      "command":"Wpeutil.exe",
      "parameters":"DisableFirewall",
      "showflags":0
    },
    "inetcpl":{
      "command":"rundll32.exe",
      "parameters":"Shell32.dll,Control_RunDLL inetcpl.cpl,,4"
    },
    "netsetting":{
      "command":"control.exe",
      "parameters":"/name Microsoft.NetworkAndSharingCenter"
    },
    "osk":{
      "command":"osk.exe"
    }
  }

点评

1、imageres.dll.mun (5MB)能否通杀WIN10所有的版本?如果可以,请分享下。 2、我点的是网络和internet设置,应该对应的是"parameters":"Shell32.dll,Control_RunDLL inetcpl.cpl,,4"吧? inetcpl.cpl这个文件我  详情 回复 发表于 2019-9-10 22:49
回复

使用道具 举报

384#
 楼主| 发表于 2019-9-10 23:04:06 | 显示全部楼层
liuzhaoyzz 发表于 2019-9-10 22:49
1、imageres.dll.mun (5MB)能否通杀WIN10所有的版本?如果可以,请分享下。
last.bat
copy /y imager ...

19H1之后,系统原版的imageres.dll只有3kb,资源改成mun文件,syswow64共用。

5MB是个例子,俄罗斯的PE比较小,不通用,所以要动态reshacker修改。

网络设置就是netsetting。控制面板的网络设置,你在正常系统运行这个命令试试。

inetcpl.cpl是代理那个按钮。
回复

使用道具 举报

385#
 楼主| 发表于 2019-9-11 07:41:22 | 显示全部楼层
liuzhaoyzz 发表于 2019-9-11 07:05
是在虚拟机里面测试的有线上网,为什么netperfm服务没有启动,这个服务要怎么启动?
是在虚拟机里面测试的有线上网,为什么netperfm服务没有启动,这个服务要怎么启动?


netprofm服务, 服务中显示的名字是
Network List Service
识别计算机已连接的网络,收集和存储这些网络的属性,并在更改这些属性时通知应用程序。

网络 补丁中, 需要勾选 网络和共享中心.
这个服务的依赖:
D:\Dev\WimBuilder2\Projects\WIN10XPE\01-Components\02-Network\_networklist.bat

某些PE, netprofm服务部完整, 导致Windows API卡住, UI_WIFI启动会卡在左上角,
配置这个参数就忽略有线网络状态, 只有扇形表示是否连接, 或者无线信号.
(没有netprofm服务, 如果存在有线网卡, 就像你现在这样显示有线图标, 但是无法知道是否连接成功)
回复

使用道具 举报

386#
 楼主| 发表于 2019-9-11 07:57:21 | 显示全部楼层
本帖最后由 slore 于 2019-9-11 08:01 编辑
WAIGO 发表于 2019-9-11 06:48
非常感谢!马上测试看看……

另外,"2、选择"当任务栏满时合并"选项在何处设置?",这句指的是程序 ...


预设清单default或者你的custom中添加:

"shell.taskbar.combine":"auto",

还有三个重要问题忘记列出:
1、许多文件都必须加上 zh-CN 目录下的同名 .mui 文件,怎样写才可以让制作程序自动检查后加上去?


System32SysWOW64的文件, AddFiles会自动添加 .mui文件, 只写dll, exe等文件即可.

如果是其他目录:
  1. @\Windows\System32\drivers\
  2. cdrom.sys
  3. %WB_PE_LANG%\cdrom.sys.mui
  4. ;或者
  5. ??-??\cdrom.sys.mui
  6. ;(所有语言的cdrom.sys.mui都会添加, 但是默认都把其他语言目录删除了, 所以可以模糊匹配)
复制代码

当文件多的时候, 还可以直接使用mui关键字.
  1. @\Windows\System32\drivers\
  2. +mui
  3. cdrom.sys
  4. dmvsc.sys
  5. disk.sys
  6. -mui
复制代码


会得到:
  1. \Windows\System32\drivers\cdrom.sys
  2. \Windows\System32\drivers\zh-CN\cdrom.sys.mui
  3. \Windows\System32\drivers\dmvsc.sys
  4. \Windows\System32\drivers\zh-CN\dmvsc.sys.mui
  5. \Windows\System32\drivers\disk.sys
  6. \Windows\System32\drivers\zh-CN\disk.sys.mui
复制代码

2、想换用自家的 PecmdAdmin.ini,PECMD.EXE,PECMD.INI 文件,这几个文件必须放在何处及写什么代码?


D:\Dev\WimBuilder2\Projects\WIN10XPE\_CustomFiles_\PEMaterial\
     PecmdAdmin.ini
     PECMD.INI

D:\Dev\WimBuilder2\vendor\PECMD\
    Pecmd_x64.exe
    Pecmd_x86.exe

自己替换.

为了方便, 建议采用独立补丁的形式:
  1. MyPECMD\
  2.      main.html
  3.      PecmdAdmin.ini
  4.      PECMD.INI
  5.      Pecmd_x64.exe
  6.      Pecmd_x86.exe
  7.      last.bat
复制代码

last.bat:
  1. copy /y *.ini "%X_SYS%"
  2. copy /y Pecmd_%WB_PE_ARCH%.exe "%X_SYS%\Pecmd.exe"
复制代码

3、代码中如何区分 x86 或 x64 位的文件系统,有没有自行适应两种系统的写法


%WB_PE_ARCH%这个环境变量可以获取PE是 x86 还是 x64 的.
%opt[support.wow64]% 或者 %opt[build.wow64support]% 环境变量, 可以判断是否是64位PE, 且需要支持32位程序.

32位PE的话, 这2个环境变量, 不管界面怎么选, 会强制设置为false.
回复

使用道具 举报

387#
 楼主| 发表于 2019-9-11 07:58:55 | 显示全部楼层
本帖最后由 slore 于 2019-9-11 08:03 编辑
liuzhaoyzz 发表于 2019-9-11 07:53
D:\Dev\WimBuilder2\Projects\WIN10XPE\01-Components\02-Network\_networklist.bat

if not "x%opt[netw ...


H:\WimBuilder2-20190901\Projects\WIN10XPE\01-Components\02-Network\main.bat
if "x%opt[network.networklist_and_sharecenter]%"=="xtrue" (
    set opt[network.networklist]=true
    set opt[network.sharecenter]=true

)
call _networklist.bat
call _discovery.bat
call _netcenter.bat


点评

看到了,原来“网络和共享中心”这个小勾要勾上才行啊。默认是没勾上的。  详情 回复 发表于 2019-9-11 08:04
回复

使用道具 举报

388#
 楼主| 发表于 2019-9-11 08:02:37 | 显示全部楼层
WAIGO 发表于 2019-9-11 07:44
使用以下两句会不会导致在安装完 x64 PE 系统后,忘记去除下图红圈里面的小勾,从而导致后续安装 x86   ...


不用操心, 32位PE的话, 这2个环境变量, 不管界面怎么选, 会强制设置为false.

D:\Dev\WimBuilder2\Projects\WIN10XPE\main.bat
  1. if "x%opt[build.wow64support]%"=="xtrue" (
  2.   if not "x%WB_PE_ARCH%"=="xx64" set opt[build.wow64support]=false
  3. )
复制代码
回复

使用道具 举报

389#
 楼主| 发表于 2019-9-11 08:29:48 | 显示全部楼层
本帖最后由 slore 于 2019-9-11 08:37 编辑
liuzhaoyzz 发表于 2019-9-11 08:15
不行啊,用LUA启动器+winxshell作为shell,penetwork似乎运行不了?
1384楼,http://wuyou.ne ...


你精简的问题. winre.wim原版就可以 运行 WinXShell和 PENetwork没有新的dll依赖.

把所有精简都勾选了, 190MB的 18975 测试也可以, 不过网卡驱动也精简掉了,
提示没有检出网卡,程序退出.

default配置, 改LUA+WinXShell, 加PENetwork都能正常. 问题还是在精简上.
回复

使用道具 举报

390#
 楼主| 发表于 2019-9-11 20:09:30 | 显示全部楼层
WAIGO 发表于 2019-9-11 19:32
还有以下问题,恳请帮忙解决:

1、因为我毎次制作前,都必须修改一下 PECMD.INI 文件 (长度98.1 KB),故 ...
1、因为我毎次制作前,都必须修改一下 PECMD.INI 文件 (长度98.1 KB),故而把它直接放入 PEMaterial 目录下,不料完成制作后,检视此文件竟然长度为零。构建信息有如下显示,请问要如何处理?


出现下面错误的时候, 已经变成0了.
你最好找出什么补丁造成的, 或者把你的MyPECMD发出来, 告诉我你选的是什么.
完整的日志去排查, 最多改不了, 不应该变成0才对.

2.我有个预先制作好的 DEFAULT 文件,想把它取代 CONFIG 目录下的同名文件,及 Default 目录下的 NTUSER.DAT 文件,文件放在 _CustomFiles_\MyPECMD 目录下

想要最开始替换, 途中的补丁直接修改这个DEFAULT, 还是你这个DEFAULT到最后想直接替换掉,
途中对于DEFAULT的修改都不要了.

如果是最终就想要config是你做好的DEFAULT, 把它放到
Projects\WIN10XPE\
   DEFAULT

这个位置, 会自动替换.

或者:
D:\Dev\WimBuilder2\Projects\WIN10XPE\_CustomFiles_\final.bat
copy /y DEFAULT "%X_SYS%\config\"

如果想一开始就替换winre.wim的DEFAULT, 你需要在
D:\Dev\WimBuilder2\Projects\WIN10XPE\_CustomFiles_\_Prepare_.bat
:BEFORE_HIVE_LOAD
copy 复制 ...


如果想在补丁途中, 因为WimBuilder2已经自动将DEFAULT挂在到 HKLM\Tmp_DEFAULT了,
所以你不卸载是无法修改的.

  1. rem 先卸载PE的注册表
  2. call PERegPorter.bat Tmp UNLOAD
  3. rem 复制替换config\DEFAULT
  4. rem ...
  5. rem ...
  6. rem 重新挂载
  7. call PERegPorter.bat Tmp LOAD
复制代码


当然, 只是DEFAULT的话, 你可以直接
reg unload HKLM\Tmp_DEFAULT
复制 NTUSER.DAT
reg load HKLM\Tmp_DEFAULT "%X_SYS%\config\DEFAULT"

你中间有注册表操作不到, 导致挂载失败, X盘被占用了,
你需要clean, 选X盘, clean.

所以代码中 X:不要写死, 请用 "%X%"

点评

出现下面错误的时候, 已经变成0了. 你最好找出什么补丁造成的, 或者把你的MyPECMD发出来, 告诉我你选的是什么. 完整的日志去排查, 最多改不了, 不应该变成0才对. --------------------------------------------  详情 回复 发表于 2019-9-11 21:16
如果是最终就想要config是你做好的DEFAULT, 把它放到 DEFAULT ----------------------------------------------------------------------- 那就直接放到 Projects\WIN10XPE\ 目录下算了。但是还想一开始就  详情 回复 发表于 2019-9-11 20:57
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-16 06:17

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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