无忧启动论坛

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

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

    [复制链接]
631#
 楼主| 发表于 2019-10-26 00:05:11 | 显示全部楼层
本帖最后由 slore 于 2019-10-26 00:12 编辑
gazi06 发表于 2019-10-25 23:55
What is the master ImDisk main.bat command? the following did not work.

call V2X ImDisk -extract  ...


What's the output on Building?

@echo on
call V2X ImDisk -extract "imdiskinst.exe" "%X_SYS%\ImDisk\"
pause




It works for me.

点评

thank you it worked. I'll also pass reg in this way but this code doesn't work copy /y ImDisk_Settings.reg "%X_SYS%\ImDisk\" call RunBeforeShell "reg import #qX:\Windows\System32\ImDisk\ImDisk_Set  详情 回复 发表于 2019-10-26 00:33
回复

使用道具 举报

632#
 楼主| 发表于 2019-10-26 00:50:34 | 显示全部楼层
gazi06 发表于 2019-10-26 00:33
thank you it worked. I'll also pass reg in this way but this code doesn't work

copy /y ImDisk_S ...

New Version use X_Startup folder for init:

  1. (
  2.   echo RunOnce=1
  3.   echo reg import X:\Windows\System32\ImDisk\ImDisk_Settings.reg
  4. )>> "%X_Startup%\BeforeShell\RegisterImDisk.bat"
复制代码

点评

Master did it like this but it didn't work  详情 回复 发表于 2019-10-26 01:36
回复

使用道具 举报

633#
 楼主| 发表于 2019-10-26 06:17:23 | 显示全部楼层
本帖最后由 slore 于 2019-10-26 06:20 编辑
gazi06 发表于 2019-10-26 01:36
Master did it like this but it didn't work



  copy /y ImDisk_Settings.reg "%X_SYS%\ImDisk\"


  echo RunOnce=1
  echo reg import X:\Windows\System32\ImDisk\ImDisk_Settings.reg
)>> "%X_Startup%\BeforeShell\RegisterImDisk.bat"


AND it is better to put ImDisk_Settings.reg in vendor/ImDisk.

copy /y "%V%\ImDisk\ImDisk_Settings.reg" …………
回复

使用道具 举报

634#
 楼主| 发表于 2019-10-26 15:18:05 | 显示全部楼层
本帖最后由 slore 于 2019-10-26 15:20 编辑
WAIGO 发表于 2019-10-26 14:37
注意身体啊。
18995之后,到下个release版本才支持。需要更新vendor的WinXShell到最新版。
------------ ...


其实随时可以发布(18MB的附件我也懒的分包上传),不过我没觉得有必要刷版本,特别是20H1变的比较快。

用户切换以及打印机支持的关键指令,版本稍微变化下就有所不同。

初步计划每月月份和日期相同时发布打包的正式Release版本,下一次即使 2019.11.11。
如果有特别更新倒是可以发布Beta Release版本。不过目前等下正式的1909再看吧。

有时间了,晚上单独发一个WinXShell.exe的更新附件,替换了19002就支持了,
不过好像有出了19008,我测试下,没啥问题就再更新下。



管理员字体问题,以前用的自己加载用户Profile,新更新补充了UsrClass.dat,系统可以自动加载了,我这里测试字体显示都正常。
要么是精简选项可能字体精简的有问题?

(X:\Users\Administrator目录存在么?)
回复

使用道具 举报

635#
 楼主| 发表于 2019-10-26 15:25:02 | 显示全部楼层
834772509 发表于 2019-10-26 14:58
楼主,为啥我这个RNDIS还是不行?


默认Release包+默认构建+组件 RNDIS勾选 进行测试,看看是否可用。
先不要自定义太多选项,或者用自己的补丁。

默认插上手机选择共享网络自动识别的,不需要自己用命令加载驱动。

如果还有问题报告下版本。

点评

还是不行,默认构建+勾选RNDIS,版本号是18362.418  详情 回复 发表于 2019-10-26 16:16
回复

使用道具 举报

636#
 楼主| 发表于 2019-10-26 16:12:34 | 显示全部楼层
834772509 发表于 2019-10-26 14:58
楼主,为啥我这个RNDIS还是不行?

有网友反馈 韩语 19008 登录 Admin 用问题,就顺便用 韩语测试了下 MTP和RNDIS。



沒有问题,而且【网络支持】都不用勾选,组件下勾一下就可以了。
回复

使用道具 举报

637#
 楼主| 发表于 2019-10-27 23:51:40 | 显示全部楼层
gazi06 发表于 2019-10-27 23:40
master. WinX Shell> UI System Info x86 also works. but does not work on x64.

x64 without Wow64 support , the System Info menu won't work, so I use UI_SYSTEMINFO for only pure x64 PE.

x64+Wow64 and x86 will use the system default one.

WinXShell.lua, you can change the logic for system_info_handle.
回复

使用道具 举报

638#
 楼主| 发表于 2019-10-28 12:55:05 | 显示全部楼层
liuzhaoyzz 发表于 2019-10-28 09:06
右击我的电脑→属性,点击上面的控制面板主页会弹出“系统找不到指定的文件”对话框,这个应该是精简了cont ...


UI_SYSTEMINFO.zip\main.lua。点下home_button的动作时exec('control.exe')。可以改成别的,也可以main.xml中隐藏,或者按钮无效。没有特别针对WinXShell处理,没有控制面板打开啥,我不知道啊。

远程那几个按钮是你精简了。
回复

使用道具 举报

639#
 楼主| 发表于 2019-10-28 21:21:13 | 显示全部楼层
gazi06 发表于 2019-10-28 00:46
Okay, there's a slowdown when loading applications in the minstall program. If I install the video c ...

Where can we get the software?

I search it on Internet. It was packed with other software in 4GB.

点评

winpe in the application link. I can reduce it if the size is large. https://sergeistrelec.ru/winpe-10-8-sergei-strelec-english/177-winpe-10-8-sergei-strelec-x86-x64-native-x86-20191002-english-ver  详情 回复 发表于 2019-10-28 21:41
回复

使用道具 举报

640#
 楼主| 发表于 2019-10-28 21:52:13 | 显示全部楼层
gazi06 发表于 2019-10-28 21:41
winpe in the application link. I can reduce it if the size is large.

https://sergeistrelec.ru/w ...

Please reduce it. The download url needs 5 days to download it...

点评

Master tried a different computer at the moment did not encounter any problems. just getting stuck in the mouse occasionally and the favorites in the start menu are not added when the first login is  详情 回复 发表于 2019-10-28 22:51
回复

使用道具 举报

641#
 楼主| 发表于 2019-10-29 10:11:40 | 显示全部楼层
weisheng12990 发表于 2019-10-29 10:01
大神 我搞了半天  看不懂bat里面需要添加哪些文件啊 能不能详细点啊 谢谢指导

你看到的文件从install.wim中提取就好了啊。
我私信你需要你的PE,看看是不是以winre.wim为基础做的,如果不是差的东西比较多。
回复

使用道具 举报

642#
 楼主| 发表于 2019-10-29 19:21:03 | 显示全部楼层
weisheng12990 发表于 2019-10-29 10:01
大神 我搞了半天  看不懂bat里面需要添加哪些文件啊 能不能详细点啊 谢谢指导

构建演示:


二次功能更新测试:


回复

使用道具 举报

643#
 楼主| 发表于 2019-10-29 19:54:35 | 显示全部楼层
本帖最后由 slore 于 2019-10-29 20:03 编辑
gazi06 发表于 2019-10-29 00:44
Master, the right-click plugin of the bitlocker driver lock causes the tr-TR language to not be disp ...


ONLY the unlock works, you should delete other menu(when you use FULL SOFTWARE), or add the exe or dll file for them.
(fvewiz.dll, tr-TR\fvewiz.dll.mui)

Keep HKLM\Tmp_software\Classes\Drive\shell\unlock-bde
Delete HKLM\Tmp_software\Classes\Drive\shell\encrypt-bde-elev

点评

thank you it worked. Master, How to remove pecmd icon from taskbar ?  详情 回复 发表于 2019-10-29 22:31
回复

使用道具 举报

644#
 楼主| 发表于 2019-10-29 20:05:48 | 显示全部楼层
Re: foxfirefox
没有提供那么多的语言,用户可自行翻译。。  发表于 2 小时前


不是的。WimBuilder2是全语言对应的, 不在乎大小添加对应的dll就行了。
如果又想要多语言,又想精简dll,参考:
Z:\WimBuilder2\Projects\WIN10XPE\za-Slim\SlimResources\UpdateRegResources.lua

自动提取对应语言的资源,不需要自己翻译。

回复

使用道具 举报

645#
 楼主| 发表于 2019-10-30 08:04:37 | 显示全部楼层
834772509 发表于 2019-10-30 07:45
有没有什么宏命令是提取boot.wim的文件的?想直接以boot.wim的驱动为基础

就是调用wimlib-image命令,wim文件换成挂载的PE的环境变量就好了。AddFiles.bat你复制一个,改1行代码就行了。

点评

Master, system slowdown problem MacriumReflect application once you run is corrected. Will you try it for me? Applications and accelerating system https://drive.google.com/open?id=1LyouDj1mS7fo-Hqh  详情 回复 发表于 2019-10-31 15:30
回复

使用道具 举报

646#
 楼主| 发表于 2019-10-31 23:25:01 | 显示全部楼层
本帖最后由 slore 于 2019-10-31 23:40 编辑
gazi06 发表于 2019-10-31 22:50
I found the source of the problem. Once the windows start, the power options are taking him to balan ...


add a power_set.bat to Startup folder.
  1. powercfg.exe /s 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
复制代码


or

Z:\WimBuilder2\Projects\WIN10XPE\_CustomFiles_\MyCustom\_HighPerformancePowerScheme.bat
  1. reg add HKLM\tmp_SYSTEM\ControlSet001\Control\Power\User\PowerSchemes /v "ActivePowerScheme" /d "8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c" /f
复制代码

The power options on UI is not work for now.

点评

thank you master it worked  详情 回复 发表于 2019-10-31 23:58
回复

使用道具 举报

647#
 楼主| 发表于 2019-11-1 11:13:31 | 显示全部楼层
WAIGO 发表于 2019-11-1 10:12
dism命令可以获取。wimlib也可以获取。diam++也能。你看bin\getwiminfo.cmd
---------------------------- ...


另外输出到什么地方?pecmd.ini不能输出信息吧。
getwiminfo.cmd就是批处理输出到控制台,你可以保存到文件,再读取pecmd处理,托盘信息,或者提示。

直接调用批处理是没用的。
另外wimlib或者dism你需要,还有路径你也得传递。

WiNver的信息,批处理中ver得出后得自己判断。
getwiminfo无法得到。

点评

EXEC =*GetWimInfo.cmd SET &WinVerStr=10 %WIM_VER% %WIM_ARCH% `设置 PE 启动标题 对应这句:TEXT 正在准备 Windows %&WinVerStr% 企业版 PE,请稍侯 …… #0xFFFFFF,$22  详情 回复 发表于 2019-11-1 11:29
回复

使用道具 举报

648#
 楼主| 发表于 2019-11-1 12:22:44 | 显示全部楼层
WAIGO 发表于 2019-11-1 11:29
EXEC =*GetWimInfo.cmd
SET &WinVerStr=10 %WIM_VER% %WIM_ARCH%                                    ` ...

这个是PECMD的范畴,怎么获取命令的返回信息保存到变量,
我不懂PECMD的用法,只会启动相关的最简单的几个命令。

点评

尝试在 GetWimInfo.cmd 的末尾加上 set WIM_VER=%WIM_VER% 及 set WIM_ARCH=%WIM_ARCH% 命令 (见图一),想使用批次文件的的 SET 功能来保存变量也不成功,在命令提示符打 SET 并没有出现此两项 (见图二)。难道就没有  详情 回复 发表于 2019-11-1 15:33
回复

使用道具 举报

649#
 楼主| 发表于 2019-11-1 16:33:58 | 显示全部楼层
WAIGO 发表于 2019-11-1 15:33
尝试在 GetWimInfo.cmd 的末尾加上 set WIM_VER=%WIM_VER% 及 set WIM_ARCH=%WIM_ARCH% 命令 (见图一), ...

环境变量不是全局的,你在一个cmd,批处理中call 调用getwiminfo.cmd,这个cmd和批处理中可以用这些环境变量。

你新启动一个cmd是无法使用的。需要跨程序使用,就将信息输出到临时文件,另一个里面再读取。
回复

使用道具 举报

650#
 楼主| 发表于 2019-11-1 21:25:05 | 显示全部楼层
本帖最后由 slore 于 2019-11-1 21:32 编辑
WAIGO 发表于 2019-11-1 20:07
环境变量不是全局的,你在一个cmd,批处理中call 调用getwiminfo.cmd,这个cmd和批处理中可以用这些环境变 ...


仔细看了下,你是显示当前PE的版本信息。不是获取其他的wim镜像信息。那么有几个方案:

方案1(推荐):
直接离线用WimBuilder2的补丁 使用TextReplace 替换。

MyPECMD\
    pecmd.ini 预先写上
TEXT 正在准备 Windows #WIM_VER_STR# 企业版 PE,请稍侯 ……

    last.bat
call TextReplace "%X_SYS%\pecmd.ini" #WIM_VER_STR# "%WIM_VER% %WIM_ARCH%"


推荐理由,不用额外exec调用getwiminfo,也不用把wimlib-image.exe放到PE。

(离线的话,也可以直接改写注册表,添加一个全局的环境变量,如果只给pecmd.ini用的话,直接改文本简单)


方案2(启动时动态获取):

getwiminfo.cmd之后把结果输出到临时文件
pecmd中读取文件,获取字符串,设置为变量给TEXT使用

或者调用系统的setx命令,设置为全局变量,pecmd中可直接使用。

注意点:
需要setx命令
全局变量,如果中途不删除的话,会一直带到桌面,所有程序运行都有此信息

PECMD也一定有管道获取批处理的输出使用的方法,不过PECMD的语法设计比较难懂,而且不是面向对象,
字符串操作可以做,同样代码很难看懂。


至于你说的在PECMD.ini前运行,也是可以的,不过批处理窗口不是隐藏的,
pecmd调用exec, 批处理,批处理中继续调用pecmd.exe pecmd.ini,需要3层进程运行,为了这么点功能没必要。

pecmd.exe
    cmd.exe xxxx.bat
         pecmd.exe pecmd.ini


动态获取还有个问题,得循环找启动光盘是吧。要是别的磁盘上上sources\boot.wim,或者修改boot.wim就不行了。
不过直接从 ver命令获取系统版本信息就够了,好像也不要查询wim文件。

当然动态的好处是,一次写好不用修改了。
(WimBuilder2把编辑pecmd.ini改成批处理代码的话,1句补丁,永久有效,所以优点也不明显。)

点评

非常感谢!就采用方案一吧。有点不太明白的就是 #WIM_VER_STR# 包含 "%WIM_VER% 及 %WIM_ARCH%" 两个内容吗? 我需要的 PECMD.INI 代码是: SET &WinVerStr=10 %WIM_VER% %WIM_ARCH%  详情 回复 发表于 2019-11-1 22:01
回复

使用道具 举报

651#
 楼主| 发表于 2019-11-1 22:36:23 | 显示全部楼层
本帖最后由 slore 于 2019-11-1 22:39 编辑
WAIGO 发表于 2019-11-1 22:01
非常感谢!就采用方案一吧。有点不太明白的就是 #WIM_VER_STR# 包含 "%WIM_VER%  及 %WIM_ARCH%" 两个内 ...


我只是一个例子,TextReplace就是文本内容替换,pecmd.ini你预先用#WIM_VER_STR#占一个位置,

替换成你想要的就行了,你想拼接多少,什么顺序你自己决定啊。

任何补丁能运行到的last.bat都可以。你想放到那里很自由,我不知道你自定义补丁是什么结构。

你放到工程的last.bat,或者final.bat都行,只要是 pecmd.ini已经复制过之后都可以。


如果不是连续的字符串,你多调用几次TextReplace一次替换一个变量即可(g参数,文件中的所有匹配字符串都替换)。

call TextReplace "%X_SYS%\pecmd.ini" #WIM_ARCH# "%WB_PE_ARCH%" g
call TextReplace "%X_SYS%\pecmd.ini" #WIM_VER# "%WB_PE_VER%" g

点评

今天又发现了一个问题,#WIM_VER# "%WB_PE_VER%" 并没有记录下完整的版本编号,只有编号的整数部分。如图一及二所示,"18362.10024" 被缩短成 "10.0.18362" 了。其实这个 "10.0" 是可以精简掉的,但小数的部分却不可  详情 回复 发表于 2019-11-2 09:35
依照老大的提议终于改好了,下面图一、二都是根据自动获取的资料编辑的。再次感谢! [attachimg]404276[/attachimg] [attachimg]404277[/attachimg]  详情 回复 发表于 2019-11-2 05:49
回复

使用道具 举报

652#
 楼主| 发表于 2019-11-2 09:38:59 | 显示全部楼层
本帖最后由 slore 于 2019-11-2 09:40 编辑
WAIGO 发表于 2019-11-2 09:35
今天又发现了一个问题,#WIM_VER# "%WB_PE_VER%" 并没有记录下完整的版本编号,只有编号的整数部分。如图 ...

看到 last_wimbuilder.log 构建信息的开头有如下叙述:

工序:获取WIM文件信息
WB_PE_ARCH=x64
WB_PE_BUIID=1
WB_PE_LANG=zh-CN
WB_PE_VER=10.0.19013

其中的 "WB_PE_VER=10.0.19013" 以及 "WB_PE_ARCH=x64" 这两段信息可以设置成全局变数吗?我在 PECMD.INI 把它设置成划线下的格式又是失败了。奈何!


另外有一个 VER[3] 的环境变量代表 19013 .

点评

我上面写的是今天做的另一个版本编号为 10.0.18362.10024 的 Windows 预览版 PE,它另有正式版为 18362.449。故而同称 10.0.18362 并不妥当。 昨晚做的那个 10.0.19013 版 PE 的全名是 "10.0.19013.1",最后那个  详情 回复 发表于 2019-11-2 10:33
回复

使用道具 举报

653#
 楼主| 发表于 2019-11-2 10:22:11 | 显示全部楼层
liuzhaoyzz 发表于 2019-11-2 10:09
请问下slore大神,用LUA+WINXSHELL方案,组件→外壳→开始菜单→startisback已经勾选了,同时也勾选了winxs ...

只能用开源的Open-Shell。StartIsBack检测条件不知道。

点评

open-shell 是原来的classicshell中的ClassicStartMenu组件的开源项目。。。  详情 回复 发表于 2019-11-4 12:00
StartIsBack必须要依赖explorer.exe作为shell是吗?如果用winxshell作为shell就不能用StartIsBack,只能用开源的Open-Shell,是这个意思吗?  详情 回复 发表于 2019-11-2 12:16
回复

使用道具 举报

654#
 楼主| 发表于 2019-11-2 12:24:09 | 显示全部楼层
本帖最后由 slore 于 2019-11-2 12:26 编辑
liuzhaoyzz 发表于 2019-11-2 12:16
1、StartIsBack必须要依赖explorer.exe作为shell是吗?如果用winxshell作为shell就不能用StartIsBack, ...


另外安装。WinXShell里面有截图,就是以前的Classic Shell,一个贝壳图标的。作者不更新就开源了。

风格有很多种也挺好的,所以WinXShell的开始菜单我没有开发,要做的话,会是移植Linux或者Windows 10 X 的新风格。

最新版会检测程序名字必须是explorer.exe,用binmay修改下dll中的unicode字符串,或者改名WinXShell.exe才可以用。

双11版本,我添加下好了。
你可以提前使用配置下自己的风格。
回复

使用道具 举报

655#
 楼主| 发表于 2019-11-3 14:14:43 | 显示全部楼层
狼人72105 发表于 2019-11-3 13:49
大佬。。这个是什么问题?怎么解决啊?

版本,还有构建选项。去掉自定义的补丁和精简,是否有问题?
回复

使用道具 举报

656#
 楼主| 发表于 2019-11-4 00:44:40 | 显示全部楼层
gazi06 发表于 2019-11-4 00:41
This account does not work when I select and create an admin account

V2X -extract only means
extract the files to system32\ImDisk folder.
you need register/install the driver offline/on booting.

点评

The program cannot install imdisk when it is created with admin account.  详情 回复 发表于 2019-11-4 01:38
回复

使用道具 举报

657#
 楼主| 发表于 2019-11-4 07:52:21 | 显示全部楼层
gazi06 发表于 2019-11-4 01:38
The program cannot install imdisk when it is created with admin account.

put the install bat to OSInit\ than Starup\ folder.
回复

使用道具 举报

658#
 楼主| 发表于 2019-11-4 07:54:31 | 显示全部楼层
gazi06 发表于 2019-11-4 01:38
The program cannot install imdisk when it is created with admin account.

If you want me to try it, you should share your ImDisk patch, not just 78setup.exe.

点评

also fails in startup folder  详情 回复 发表于 2019-11-4 12:02
回复

使用道具 举报

659#
 楼主| 发表于 2019-11-4 07:56:39 | 显示全部楼层
834772509 发表于 2019-11-4 07:25
楼主,这是为啥?

文件名用英文试试。另外mui文件不用自己写。自动会添加,不过你只做中文PE,无所谓。
回复

使用道具 举报

660#
 楼主| 发表于 2019-11-5 00:33:29 | 显示全部楼层
gazi06 发表于 2019-11-4 12:02
also fails in startup folder

Everything is right on my side.
You didn't give me the ImDisk Patch(main.bat show me how you install imdisk),
so I don't know why you failed.

Here is my ImDisk Patch:
ImDisk_Patch.zip (517.21 KB, 下载次数: 6)

点评

setup with your code successfully. The code in me didn't work. I just put imdisk.cmd in the startup folder. thanks master  详情 回复 发表于 2019-11-5 15:04
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-4 03:52

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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