无忧启动论坛

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

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

    [复制链接]
571#
 楼主| 发表于 2019-10-14 07:26:54 | 显示全部楼层
本帖最后由 slore 于 2019-10-14 09:20 编辑
gazi06 发表于 2019-10-14 00:45
我试图将这些代码放在相应的文件夹中,但是没有用


main.bat是  离线的补丁 脚本中写。不是放到 Startup 目录。
你想直接改启动脚本的话,添加到
Startup\PinShortcuts.lua

PinToTaskbar('MInstLink.exe')
PinToStartmenu('MInst.exe')
回复

使用道具 举报

572#
 楼主| 发表于 2019-10-14 20:05:22 | 显示全部楼层
本帖最后由 slore 于 2019-10-14 20:09 编辑
saiz 发表于 2019-10-14 18:53
大家的SWITCH USER功能都沒問題啊?
只有TW版會有問題嗎?
如果1010只是多SWITCH USER


更新说明里面都是1010与0901版比较的改动的内容。。。

功能性改变的3个,打印机,用户切换,USB手机连接共享上网。
其他是细节完善,比如安全精简,zh-TW的字体就是这里多删除了,master已经保留了。

(替换旧版本pecmd.ini和pecmdadmin.ini,应该和原来一样)


你切换用户是默认就有问题?还是你修改pecmd.ini后有问题。
新版本,修改都应该在Startup目录中添加,启动脚本就是框架用,没实际内容。这样,任何启动当时都一样。微软原生starnet.cmd制作纯净版也通用。
回复

使用道具 举报

573#
 楼主| 发表于 2019-10-14 21:11:09 | 显示全部楼层
saiz 发表于 2019-10-14 20:54
請問下 PIN功能要怎麼用啊?
我寫在00-InitPinIcons.lua,PinShortcuts.lua都沒用


字符串需要引用起来啊。否则是代码的变量。

00-InitPinIcons.lua
Taskbar:Pin('X:\\Windows\\System32\\Explorer.exe', '檔案總管')


PinShortcuts.lua
PinToStartmenu('X:\\Windows\\System32\\control.exe', '控制台')


System32和Windows下命令,可以省略路径。
可以不指定名字,自动获取对应语言的名字。

  1. Taskbar:Pin('Explorer.exe') -- 不是已经有了?
  2. Startmenu:Pin('X:\\Windows\\System32\\notepad.exe') -- 不是已经有了?

  3. Startmenu:Pin('control.exe')
  4. Startmenu:Pin('regedit.exe')
  5. Startmenu:Pin('cmd.exe')
复制代码
回复

使用道具 举报

574#
 楼主| 发表于 2019-10-14 22:20:27 | 显示全部楼层
saiz 发表于 2019-10-14 20:54
請問下 PIN功能要怎麼用啊?
我寫在00-InitPinIcons.lua,PinShortcuts.lua都沒用

最佳实践来说,不推荐直接修改PinShortcuts.lua文件。。。
今后也许文件路径,或者格式会改变。

推荐做法:
自制补丁目录下\
   main.html
   last.bat 中使用 宏命令,通过宏命令修改。

  1. call PinToTaskbar Explorer.exe
  2. call PinToStartMenu X:\Windows\System32\notepad.exe
  3. call PinToStartMenu -paramlist "'control.exe', '控制台'"
  4. call PinToStartMenu regedit.exe
  5. call PinToStartMenu cmd.exe
复制代码


回复

使用道具 举报

575#
 楼主| 发表于 2019-10-15 07:17:02 | 显示全部楼层
wchongy 发表于 2019-10-15 06:25
win10微软已经取消了库,这个估计是生成的

那就是shell explorer下面的注册表,有上面的项目。删除就行了。
回复

使用道具 举报

576#
 楼主| 发表于 2019-10-15 19:18:49 | 显示全部楼层
wchongy 发表于 2019-10-15 18:42
HKEY_CLASSES_ROOT\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\ShellFolder
不知道怎么删除,!正常 ...

这个键下面有一个:
System.IsPinnedToNameSpaceTree

英文就是翻译过来就是 固定到 命名空间树 上。

默认系统是0, 不显示。
PE的话,我没主动添加,估计是winre.wim默认的注册表是1?

你离线改成0,或者Startup里面放一个改成0的批处理就好了。
回复

使用道具 举报

577#
 楼主| 发表于 2019-10-15 19:58:18 | 显示全部楼层
834772509 发表于 2019-10-15 19:28
反馈一个问题,当没有选择install源文件,只选择基础镜像时,使用"对WinSxS进行精简的WinRE"没有增加x86的W ...

没选install源的话,对winre.wim想干嘛?只做精简?

这种情况,选择使用完整的WinRE。既然是精简,那就精简掉,也许之后自己打算,
手动进行二次加工?
回复

使用道具 举报

578#
 楼主| 发表于 2019-10-15 21:49:26 | 显示全部楼层
834772509 发表于 2019-10-15 20:02
是的,就是对PE进行二次加工,按道理来说应该会保留x86的winSxS相关文件才对呀


这个是【构建】的【精简选项】。具体步骤是,
删除全部WinSxS,然后从install.wim提取指定文件。
没有install.wim的话,应该为空目录,或者不存在了,不只是32位程序不能运行应该。

记得以前发过一个 AddWinSxSFileList 从winre.wim提取的例子。
是个单独的精简WinSxS的补丁。我找找看。
回复

使用道具 举报

579#
 楼主| 发表于 2019-10-15 21:58:25 | 显示全部楼层
ster1357A 发表于 2019-10-15 21:48
我用的 win10 ltsc 2019 版本
我构建成功在虚拟中测试,启动后出现以下内容:
your pc ran into a proble ...

沒有选择ISO挂载的驱动器(例如: H:),而是只选了 install.wim 文件?
用的默认选项构建,还是自己进行了选项的设定进行的构建?

有没有提示你:
当前_ISO_模板目录不可用,您无法创建可启动的ISO镜像。
请手动创建您的ISO模板,或者选择Windows镜像路径,将自动为您创建。

The _ISO_ folder is not available, you can't create bootable ISO image.
Please make your ISO template manually, or select the Windows ISO folder/drive for auto creating.


回复

使用道具 举报

580#
 楼主| 发表于 2019-10-15 23:21:46 | 显示全部楼层
wchongy 发表于 2019-10-15 22:20
reg delete "HKLM\tmp_SOFTWARE\Classes\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\ShellFolder" /f
BAT ...

Startup是进入PE运行的,不是离线。所以tmp_SOFTWARE找不到,去掉tmp。
因为是进入PE运行,所以也可以直接用HKCR。
回复

使用道具 举报

581#
 楼主| 发表于 2019-10-15 23:46:25 | 显示全部楼层
saiz 发表于 2019-10-15 23:26
發現PECMD的SHEL功能 好像不能在多使用者下同時起作用?
不管是SHEL explorer.exe,SHEL -user explorer.exe ...

PECMD我不熟悉,这里我折腾了就几个小时就放弃了。改成EXEC了。

貌似,SHEL方式的话,只认一个Explorer.exe进程,导致多用户没法共存,只能用一个。
可以第一次登陆的用SHEL,如果进程存在EXEC改善吧。

或者等PECMD更新?也不知道到啥时候了。

SYSTEM黑屏,应该是StartIsBack啥的,某些操作导致外壳崩溃了,
因为没有SHEL的监控了,所以得自己重新加载。

不知道谁清楚-sys, -user的用法。如果没有的话,
就是一个进程监控,还有 关机 函数处理,WinXShell倒是可以做,
正常系统也不用这样,所以一直没有觉得有要加的必要。
回复

使用道具 举报

582#
 楼主| 发表于 2019-10-16 00:38:55 | 显示全部楼层
本帖最后由 slore 于 2019-10-16 01:47 编辑
wchongy 发表于 2019-10-15 22:15
这个项删不掉,在PE下没有权限删除


刪除会残留一个 空白图标,而且还在那里显示。

正常系统不显示,PE系统显示的原因知道了。

文件夹选项,是有这个设定的, 默认是不显示库。
通过修改这个选项,将更新:
System.IsPinnedToNameSpaceTree 为0,或者 1。

但是,SYSTEM用户的配置定义,没有ShowLibraries的定义,
对于0,1表示显示还是不表示不知道。所以设定无效。

而正常系统当前用户是有这个定义的。

修改也很简单,给SYSTEM也复制下下面的定义即可。

set _target_key=Microsoft\Windows\CurrentVersion\Explorer\Advanced\NavPane
reg copy HKLM\src_SOFTWARE\%_target_key% HKLM\tmp_DEFAULT\%_target_key% /s

另外,显示全部文件夹选项必须关闭(只修改这里)。

Z:\WimBuilder2\Projects\WIN10XPE\01-Components\00-Shell\Shell_RegDefault.reg
[HKEY_LOCAL_MACHINE\Tmp_Default\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
"NavPaneShowAllFolders"=dword:00000000

master开发版本,把这个选项移动到:
Projects\WIN10XPE\_CustomFiles_\MyCustom\Last\_NavPaneShowAllFolders.bat

不需要显示所有文件夹的话,删除此文件即可。(懒得做界面的选项了)
回复

使用道具 举报

583#
 楼主| 发表于 2019-10-16 02:02:07 | 显示全部楼层
青青草 发表于 2019-10-15 23:12
用WimBuilder2 v2019.10.10.e0179016制作win10_18362_X64PE,选择Lite,制作的PE无法进入桌面。
难道都沒 ...

Lite预设19H1之后有问题。 NLS文件需要保留的多了,所以强力精简 就蓝屏NLS文件错误。

手动, 强力精简 改 安全精简,可以进入启动管理器,但是Explorer依赖dll变多了,
被精简掉导致卡在初始化界面。调出 任务管理器,运行WinXShell可以进入。

得排除精简的文件了。 精简的批处理,按字母 一批一批的定位需要文件。
回复

使用道具 举报

584#
 楼主| 发表于 2019-10-16 07:54:28 | 显示全部楼层
qingyi78 发表于 2019-10-16 04:31
老大重新审视精简所需文件时也顺便把影响磁盘性能的文件找出来。磁盘性能很影响效率的

你有没有试过,不勾选 整个 精简,速度是否有改善。
我测试的时候,不勾选 精简,秒进Admin。

还有立邦说的,电源管理,你设置下。看看有没有改进。
回复

使用道具 举报

585#
 楼主| 发表于 2019-10-16 08:34:06 | 显示全部楼层
saiz 发表于 2019-10-16 08:26
POSTSHELL需要先執行explorer.exe才能執行?
切換到system時都卡在這
手動執行 explorer.exe就繼續了


有一句

  1. WinXShell.exe -luacode Taskar:WaitForReady()
复制代码


等待 外壳程序 加载后才继续。你可以去掉不等待,
不过为部分功能是需要Explorer存在的,比如 Pin 命令,等固定到任务栏,
或者是进入桌面后,可见运行的,启动内容可能会不正常。

回复

使用道具 举报

586#
 楼主| 发表于 2019-10-16 11:49:43 | 显示全部楼层
本帖最后由 slore 于 2019-10-16 11:51 编辑
wchongy 发表于 2019-10-16 11:43
[HKEY_CLASSES_ROOT\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\ShellFolder]
"Attributes"=dword:b ...


Startup相当于手动进去,执行批处理。
你添加一个pause,双击运行,看看错误信息,看看注册表是否修改成功。

离线按理说应该权限都有,不够的话,调用
call _ACLRegKey Tmp_SOFTWARE\Classes\CLSID\{xxxxxx}

先获取权限。
回复

使用道具 举报

587#
 楼主| 发表于 2019-10-16 17:52:11 | 显示全部楼层
本帖最后由 slore 于 2019-10-16 18:00 编辑
gazi06 发表于 2019-10-16 17:18
如何将以pecm.ini开头的命令传递给主服务器。 例如,我想从lua启动以下命令。

EXEC !=REGEDIT /S %Windi ...


放到Autoruns\Starup\BeforeShell\myinit.ini
再创建一个:
myinit.bat
pecmd.exe myinit.ini


你的补丁
  main.html
  myinit.ini
  myinit.bat
  main.bat 复制这2个文件。
copy /y myinit.* "%X_Startup%\BeforeShell\"

点评

谢谢你 成功创建。 WinBuilder菜单中是否有一部分可以保存我们选择的设置  详情 回复 发表于 2019-10-17 13:50
回复

使用道具 举报

588#
 楼主| 发表于 2019-10-16 17:54:04 | 显示全部楼层
ster1357A 发表于 2019-10-16 17:26
用默认的构建可以,自己手动再勾选其他选项就 构建后 启动就出错。用默认的构建可以,添加一些常用软件,是 ...

那你要说你选择了什么。

红色的 合并 SYSTEM 注册表, 你不知道是干嘛的话。
精简的选项,开始也别选。

只去选择需要的功能,一般构建都不会出问题。

回复

使用道具 举报

589#
 楼主| 发表于 2019-10-16 17:55:15 | 显示全部楼层
ster1357A 发表于 2019-10-16 17:26
用默认的构建可以,自己手动再勾选其他选项就 构建后 启动就出错。用默认的构建可以,添加一些常用软件,是 ...

WimBuilder2的构架,放任何地方都可以。

推荐,软件放到Apps目录,参考7-zip程序。
回复

使用道具 举报

590#
 楼主| 发表于 2019-10-16 17:56:37 | 显示全部楼层
gazi06 发表于 2019-10-16 16:19
@slore大师。 在运行某些应用程序时。 应用程序并行配置未获得准确的警告。 我该如何解决。

sxstrace.exe说明是运行库的问题。  VCRuntime 20xx 你需要自己集成到PE。
回复

使用道具 举报

591#
 楼主| 发表于 2019-10-16 18:28:11 | 显示全部楼层
本帖最后由 slore 于 2019-10-16 18:30 编辑
gazi06 发表于 2019-10-16 17:18
如何将以pecm.ini开头的命令传递给主服务器。 例如,我想从lua启动以下命令。

EXEC !=REGEDIT /S %Windi ...


LUA启动管理器,只有100来行,只包含:
隐藏运行命令 exec,
创建快捷方式 link,
固定任务栏和菜单的 pin 必须编程实现的方法。

其他是LUA自己的语法与功能。

不是pecmd的完全代替品,图上的SHOW命令不支持,加载wcs脚本也不支持。

for的部分,lua是支持的,但是我觉得bat批处理的
for *.reg 调用 regedit更简单,直接放到Startup目录即可。
回复

使用道具 举报

592#
 楼主| 发表于 2019-10-16 20:51:04 | 显示全部楼层
wchongy 发表于 2019-10-16 19:08
LZ,离线挂载注册表,"Attributes"=dword:b080010d
,改为b090010d可以去掉库文件夹!但是还是希望能有 ...

WimBuilder2离线修改,没有权限问题,直接就修改了啊。

最新版的话,放到MyCustom\Last目录即可。
Z:\WimBuilder2\Projects\WIN10XPE\_CustomFiles_\MyCustom\Last\
        _NavPaneHideLibraries.bat
  1. reg add HKLM\Tmp_SOFTWARE\Classes\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\ShellFolder /v Attributes /t REG_DWORD /d 0xb090010d /f
复制代码


是10.10版本的话,reg命令放到自己的补丁的last.bat,或者添加到下面的文件
Z:\WimBuilder2\Projects\WIN10XPE\_CustomFiles_\last.bat
回复

使用道具 举报

593#
 楼主| 发表于 2019-10-16 21:11:48 | 显示全部楼层
saiz 发表于 2019-10-16 21:05
指定的網域不存在或無法連線

請問這是什麼問題?
  1. Applying Patch:D:\WimBuilder2-Full.2019-10-10\Projects\WIN10XPE\za-Slim\main.bat
  2. Safely Sliming...
  3. Got code page: 950
  4. move "\Windows\Fonts\app950.fon,consola.ttf,marlett.ttf,micross.ttf,tahoma.ttf,segmdl2.ttf,tahoma.ttf,tahomabd.ttf" "X:\[KEEP]\Windows\Fonts"
  5. 移動         1 個檔案。
  6. 移動         1 個檔案。
  7. 移動         1 個檔案。
  8. 移動         1 個檔案。
  9. 移動         1 個檔案。
  10. 移動         1 個檔案。
  11. 系統找不到指定的檔案。
  12. 移動         1 個檔案。
  13. move "\Windows\Fonts\svgafix.fon,svgasys.fon,vga950.fon,vgafix.fon,vgafixr.fon,vgaoem.fon,vgasys.fon,vgasysr.fon" "X:\[KEEP]\Windows\Fonts"
  14. 移動         1 個檔案。
  15. 移動         1 個檔案。
  16. 移動         1 個檔案。
  17. 移動         1 個檔案。
  18. 移動         1 個檔案。
  19. 移動         1 個檔案。
  20. 移動         1 個檔案。
  21. 移動         1 個檔案。
  22. move "\Windows\System32\KBDUS.DLL" "X:\[KEEP]\Windows\System32"
  23. 移動         1 個檔案。
复制代码


你沒有更新 最新开发版,【安全精简】把zh-TW需要的字体删除了。

自己补充下面的字体保留代码。
Z:\WimBuilder2\Projects\WIN10XPE\za-Slim\Slim_Safely.bat
if "x%WB_PE_LANG%"=="xzh-TW" (
  call :KEEP_FILES \Windows\Fonts\ "mingliub.ttc,mingliu.ttc,kaiu.ttf,msjh.ttc,msjhbd.ttc,msjhl.ttc"
)

if "x%WB_PE_LANG%"=="xru-RU" (
  call :KEEP_FILES \Windows\Fonts\ "cour.ttf,courbd.ttf,courbi.ttf,courer.fon,lucon.ttf,serifer.fon"
)

点评

這麼怪@@ 我明明有COPY回個人檔案 內有包含字型的 之前沒字型也是藍黑交換閃 這次變有訊息了!! 再重做試一次!  详情 回复 发表于 2019-10-16 21:14
回复

使用道具 举报

594#
 楼主| 发表于 2019-10-16 21:26:57 | 显示全部楼层
saiz 发表于 2019-10-16 21:05
指定的網域不存在或無法連線

請問這是什麼問題?

指定的網域不存在或無法連線

往往是PE启动加入WORKGROUP失败造成的。
默认情况是系统启动自动加入的,不应该错。
但是你的last_wimbuilder.log看不到个人补丁。

点评

因為我都是掛載WIM後 直接丟檔案進去的 所以製作LOG內不會有記錄  详情 回复 发表于 2019-10-16 21:30
回复

使用道具 举报

595#
 楼主| 发表于 2019-10-16 21:46:30 | 显示全部楼层
本帖最后由 slore 于 2019-10-16 23:16 编辑
2011wanglei5207 发表于 2019-10-15 11:57
昨天对比了ku588大佬的的,捞取补充的文件为:System32:VAN.dll vaultcli.dll vcruntime140_clr0400.dll ...

  1. ; copy files (PC -> Phone)
  2. VAN.dll,vaultcli.dll,vcruntime140_clr0400.dll,verifier.dll,vmbuspipe.dll,vss_ps.dll
复制代码


MTP的main.bat中添加这行,就可以复制了啊。
你不会是手动复制的吧?

测试只补这1个就行了。
vaultcli.dll

verifier.dll,vmbuspipe.dll,vss_ps.dll 文件winre.wim默认就有。

点评

对啊 手动复制的 没有成功 呵呵 手动不行吗?  详情 回复 发表于 2019-10-17 10:44
回复

使用道具 举报

596#
 楼主| 发表于 2019-10-17 00:34:30 | 显示全部楼层
834772509 发表于 2019-10-16 06:55
可以尝试下我的精简方案,也有安全精简和极限精简 http://bbs.wuyou.net/forum.php?mod=viewthread&tid=4 ...

WimBuilder的补丁的话,建议直接
main.html 里面设置 精简模式,界面选择了,自动传递到批处理了。

  1. <fieldset>
  2. <legend>请选择精简方式:</legend>
  3. <label><input type="radio" class="opt_item" name="PESlim.mode" value="1" checked="checked" /> 安全精简</label>
  4. <label><input type="radio" class="opt_item" name="PESlim.mode" value="2" /> 极限精简(一般可精简为460MB左右)</label>
  5. </fieldset>
复制代码


last.bat
  1. rem 参数一为PE所在路径,参数二为精简方案(1或2)

  2. if "x%opt[PESlim.mode]%"=="x" set opt[PESlim.mode]=1

  3. call 一键精简Win10PE.cmd %X% %opt[PESlim.mode]%
复制代码

点评

好的,感谢指点  详情 回复 发表于 2019-10-17 07:53
回复

使用道具 举报

597#
 楼主| 发表于 2019-10-17 00:38:58 | 显示全部楼层
本帖最后由 slore 于 2019-10-17 00:49 编辑
青青草 发表于 2019-10-15 23:12
用WimBuilder2 v2019.10.10.e0179016制作win10_18362_X64PE,选择Lite,制作的PE无法进入桌面。
难道都沒 ...


从强力精简中把 一部分精简 做成 【安全精简】选项了。

关于语言码的初始化代码放到 安全精简了,结果强力精简也需要使用,

新增的【安全精简】默认Lite预设没有选择,所以导致没有保留
936.NLS, 中文的NLS,所以蓝屏了。

解决方法:
1. 勾选【安全精简】项目。
2. 更新到最新开发版本。

另外,20H1的Explorer外壳依赖aepic.dll,所以 (仅维护) 精简选项勾选了,
进入系统是黑屏。WinXShell外壳正常。

解决方法:
1. rem注释掉这个文件的精简。
2. 更新到最新开发版本。

点评

谢谢! 老大辛苦了! 最新开发版本从哪下载? 再次谢谢!  详情 回复 发表于 2019-10-17 21:22
回复

使用道具 举报

598#
 楼主| 发表于 2019-10-17 13:00:02 | 显示全部楼层
本帖最后由 slore 于 2019-10-17 13:33 编辑
happysong21 发表于 2019-10-17 12:46
请问楼主:

远程桌面服务(外部远程桌面连接PE)  (RS5) (2019-06-21)


RS5是功能测试正常的版本。

后续版本服务也是可以打开,但是连接是黑屏。不知道是不是要装显卡,就没再继续调查了。因为radmin之类的第三方程序更好,可以访问SYSTEM桌面,还是屏幕同时显示。
回复

使用道具 举报

599#
 楼主| 发表于 2019-10-17 14:00:46 | 显示全部楼层
本帖最后由 slore 于 2019-10-17 14:45 编辑
gazi06 发表于 2019-10-17 13:50
谢谢你 成功创建。
WinBuilder菜单中是否有一部分可以保存我们选择的设置


自建立预设(define your own preset)
回复

使用道具 举报

600#
 楼主| 发表于 2019-10-17 14:43:42 | 显示全部楼层
wchongy 发表于 2019-10-17 14:30
ini配置默认是放到system32的文件夹里面,用于PEcmd读取,如果我把pecmd.ini配置文件放到Program Files ...

Pecmd.ini加载的注册表setup\CmdLine你改了就行。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-7 12:09

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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