无忧启动论坛

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

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

    [复制链接]
5191#
发表于 2020-12-6 23:51:44 | 只看该作者
本次的ISO生成是物理D盘上制作的,防止RAM盘指向错误。结果是无切换用户的图标.出来后的图片里外都找不到图标



回复

使用道具 举报

5192#
发表于 2020-12-6 23:58:13 | 只看该作者
我打包了,你看看.

Startup.zip (7.01 KB, 下载次数: 1)


回复

使用道具 举报

5193#
发表于 2020-12-7 00:05:50 | 只看该作者


从文件排序看,没这bat文件

点评

BeforeShell\Shortcuts.lua 到命令提示符为止都创建了。 应该是SwitchUser.bat文件没有复制成功。 我看下代码,可能是我本地用了_Factory_.link 正常,默认情况没有的话, 路径有问题构建的时候出错了。  详情 回复 发表于 2020-12-7 00:11
回复

使用道具 举报

5194#
 楼主| 发表于 2020-12-7 00:11:00 | 只看该作者
550 发表于 2020-12-7 00:05
从文件排序看,没这bat文件

BeforeShell\Shortcuts.lua

  1. LINK([[%Desktop%\#{@printui.dll,12007}.lnk]], [[X:\PEMaterial\EnablePrintFeature.bat]], '', 'shell32.dll', 16)
  2. LINK([[%Desktop%\Internet Explorer.lnk]], [[%ProgramFiles%\Internet Explorer\iexplore.exe]])
  3. LINK([[X:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Windows Media Player.lnk]], [[%ProgramFiles%\Windows Media Player\wmplayer.exe]], '/prefetch:1')
  4. LINK([[%Desktop%\7-Zip.lnk]], [[%ProgramFiles%\7-Zip\7zFM.exe]])
  5. LINK([[%Programs%\7-Zip\7-Zip File Manager.lnk]], [[%ProgramFiles%\7-Zip\7zFM.exe]])
  6. LINK([[%Desktop%\PENetwork.lnk]], [[%ProgramFiles%\PENetwork\PENetwork.exe]])
  7. LINK([[%Desktop%\Dism++镜像工具.lnk]], [[%ProgramFiles%\Dism++\Dism++x64.exe]])
  8. LINK([[%Programs%\镜像制作\Dism++.lnk]], [[%ProgramFiles%\Dism++\Dism++x64.exe]])
  9. LINK([[%Desktop%\Explorer.lnk]], [[Explorer.exe]])
  10. LINK([[%Desktop%\#{@shell32.dll,22022}.lnk]], [[cmd.exe]])
  11. LINK([[%Desktop%\#{@shutdownux.dll,3052}.lnk]], 'SwitchUser.bat', '', 'imageres.dll', 319)
复制代码


到命令提示符为止都创建了。
应该是SwitchUser.bat文件没有复制成功。

我看下代码,可能是我本地用了_Factory_.link 正常,默认情况没有的话,
路径有问题构建的时候出错了。

你 跑下 构建(日志),我也试试去掉UserConfig.cmd的情况下构建。
回复

使用道具 举报

5195#
发表于 2020-12-7 00:11:53 | 只看该作者
本次补丁虽然只改路径,但牵扯文件较多,哪个地方手滑下是可能的。找起来教困难了

点评

lib/macros/CheckPatch.cmd find "%~1" "%WB_TEMP%\_patches_selected.txt" 这里检查是否勾选了 帐户选项,如果没有勾选的话,prepare.bat 中,将 rem update options call CheckPatch "00-Configures\x-A  详情 回复 发表于 2020-12-7 00:24
回复

使用道具 举报

5196#
发表于 2020-12-7 00:23:05 | 只看该作者
本帖最后由 550 于 2020-12-7 00:24 编辑

日志文件
20201207001750_Build[LOG]_WIN10XPE.7z (214.75 KB, 下载次数: 0)

虽然日志里的在删除R盘,但本次操作实在物理D:操作的

点评

都是批处理不难找。 我删除了UserConfig.cmd之后,再现这个问题了。 SetACL finished successfully. Applying Patch:F:\PE\WimBuilder2\WimBuilder2-Full.v2020-11-11\Projects\WIN10XPE\00-Configures\x-Acc  详情 回复 发表于 2020-12-7 00:35
回复

使用道具 举报

5197#
 楼主| 发表于 2020-12-7 00:24:15 | 只看该作者
550 发表于 2020-12-7 00:11
本次补丁虽然只改路径,但牵扯文件较多,哪个地方手滑下是可能的。找起来教困难了

lib/macros/CheckPatch.cmd

find "%~1" "%WB_TEMP%\_patches_selected.txt"

这里检查是否勾选了 帐户选项,如果没有勾选的话,prepare.bat 中,将
rem update options

call CheckPatch "00-Configures\x-Account"
if %errorlevel% EQU 0 (
    set opt[account.admin_enabled]=false
)

强制修改,opt[account.admin_enabled]为不启用Admin帐户。

你登录的时候都是直接SYSTEM的。


lib/macros/CheckPatch.cmd

find "%~1" "%WB_TEMP%\_patches_selected.txt"
的 WB_TEMP改成WB_TMP_PATH就好了。
回复

使用道具 举报

5198#
发表于 2020-12-7 00:26:50 | 只看该作者
我没动任何设置,直接选了“全功能”,就开始构建ISO了

画面是这样的

回复

使用道具 举报

5199#
发表于 2020-12-7 00:28:30 | 只看该作者
set HasPatch=true
find "%~1" "%WB_TEMP%\_patches_selected.txt" 1>nul 2>nul
if %errorlevel% NEQ 0 (
  set HasPatch=false
  errno 0
  goto :EOF
)
errno 1


回复

使用道具 举报

5200#
发表于 2020-12-7 00:31:16 | 只看该作者
改好了,再试...

回复

使用道具 举报

5201#
发表于 2020-12-7 00:34:11 | 只看该作者
本帖最后由 550 于 2020-12-7 00:35 编辑

你登录的时候都是直接SYSTEM的。


是的,因为启动时有时自动加载外部的驱动,运行库,组件等,假如ADMIN,运行库不会运行
不是每次都加载的

喜欢 静默安装版MSVC-Redistributabl-v14.28.29515.1.exe,他全集成了
回复

使用道具 举报

5202#
 楼主| 发表于 2020-12-7 00:35:07 | 只看该作者

都是批处理不难找。

我删除了UserConfig.cmd之后,再现这个问题了。

SetACL finished successfully.
Applying Patch:F:\PE\WimBuilder2\WimBuilder2-Full.v2020-11-11\Projects\WIN10XPE\00-Configures\x-Account\main.bat
Applying Patch:F:\PE\WimBuilder2\WimBuilder2-Full.v2020-11-11\Projects\WIN10XPE\01-Components\main.bat
Applying Patch:.\DWM\main.bat

日志明显看到,x-Account\main.bat 啥也没做,就结束了。

然后 到main.bat添加 echo on,
Applying Patch:F:\PE\WimBuilder2\WimBuilder2-Full.v2020-11-11\Projects\WIN10XPE\00-Configures\x-Account\main.bat

F:\PE\WimBuilder2\WimBuilder2-Full.v2020-11-11\Projects\WIN10XPE\00-Configures\x-Account>set "_UI_LogonPE_jcfg=X:\PEMaterial\UI_LogonPE.jcfg"

F:\PE\WimBuilder2\WimBuilder2-Full.v2020-11-11\Projects\WIN10XPE\00-Configures\x-Account>if not exist "X:\PEMaterial\UI_LogonPE.jcfg" set _UI_LogonPE_jcfg=

F:\PE\WimBuilder2\WimBuilder2-Full.v2020-11-11\Projects\WIN10XPE\00-Configures\x-Account>if not "xX:\PEMaterial\UI_LogonPE.jcfg" == "x" (if not "x" == "x" (call TextReplace "X:\PEMaterial\UI_LogonPE.jcfg" "#qshadow#q:#qAdministrator:;\\nSYSTEM:;#q" "#qshadow#q:#qAdministrator:;\\nSYSTEM:;#q" ) )

F:\PE\WimBuilder2\WimBuilder2-Full.v2020-11-11\Projects\WIN10XPE\00-Configures\x-Account>if "xfalse" == "xtrue" (
pushd Admin  
call SwitchToAdmin.bat  
popd
)

F:\PE\WimBuilder2\WimBuilder2-Full.v2020-11-11\Projects\WIN10XPE\00-Configures\x-Account>set _UI_LogonPE_jcfg=


选项被是false,和界面不一样。

这个和32位程序支持选项一样,如果是x86的话没必要,
这里选项的处理几乎都是 Projects\WIN10XPE\prepare.bat 中处理的。

所以可以知道CheckPatch宏命令的路径有问题。

WB_TEMP现在是相对路径,所以不能用了。
新版本用WB_TMP_PATH指向绝对路径。
回复

使用道具 举报

5203#
发表于 2020-12-7 00:39:27 | 只看该作者
成功了.

最后一个图标,N次构建没看见,感觉久违了

点评

唉,这个路径变更,每个文件就是改变量名,但是改的位置特别多,js, lib, projects, 我也反复测试了好久。不过现在正常系统切PE,不用重新复制代码和vendor, 也节省了虚拟盘的空间效果还是不错的。 改完一直没  详情 回复 发表于 2020-12-7 00:45
回复

使用道具 举报

5204#
发表于 2020-12-7 00:42:06 | 只看该作者
lib/macros/CheckPatch.cmd

建议立马更新,否则大量的爱好者若用到双用户,都将歇菜...
回复

使用道具 举报

5205#
发表于 2020-12-7 00:43:46 | 只看该作者
现在评测 显卡驱动后的黑底,是否有效果。我仅仅把“CheckPatch.cmd”替换就可以了
回复

使用道具 举报

5206#
 楼主| 发表于 2020-12-7 00:45:16 | 只看该作者
550 发表于 2020-12-7 00:39
成功了.

最后一个图标,N次构建没看见,感觉久违了

唉,这个路径变更,每个文件就是改变量名,但是改的位置特别多,js, lib, projects,
我也反复测试了好久。不过现在正常系统切PE,不用重新复制代码和vendor,
也节省了虚拟盘的空间效果还是不错的。
改完一直没测试不带 重定向工作区的默认版本,这里漏改了。

WB_TMP/WB_TEMP就这一处使用。
提交一版修正废除掉,统一用WB_TMP_PATH。
回复

使用道具 举报

5207#
发表于 2020-12-7 00:52:23 | 只看该作者
目前在虚拟里暂时没发现问题,转到实体机去....

点评

预设统一的话,给你一个方案。 "D:\WimBuilder2\AppData\Projects\WIN10XPE\_CustomFiles_\MyCustom" 这个目录会比组件优先执行,你可以根据x86,x64进行修改。 _MyPreset_.bat(名字其实随意) if "%WB_PE_  详情 回复 发表于 2020-12-7 01:13
回复

使用道具 举报

5208#
发表于 2020-12-7 00:59:58 | 只看该作者
本帖最后由 550 于 2020-12-7 01:20 编辑

切换用户 第2轮后,就进入黑底了。失败



任务栏的图标加载后,刷新桌面的速度回来了,与原来一样迅速。看来的确与“切换图标”消失有关


PS:最近RMDISK的TK版,用出味道来了,足够方便,所以也在PE里加入了一个。省的到时候想用时,到处乱找。

就是与构建软件配合欠点,每次构建完了,构建工具自动清除不了挂载,需要外部命令来清楚。命令如下,老大看看,不知道能否协调

rem 将所有文件/目录的所有者更换到 administrators 组,还有将 DACL 权限设置为可继承,而 SACL 权限则不变。
setacl.exe -on "R:\WimBuilder2-Full.v2020-11-11\_Factory_\target\WIN10XPE\mounted" -ot file -actn setprot -op "dacl:np;sacl:nc" -rec cont_obj -actn setowner -ownr "n:S-1-5-32-544;s:y" >nul 2>nul

rd /s /q "R:\WimBuilder2-Full.v2020-11-11\_Factory_\target\WIN10XPE\mounted"  >nul 2>nul
这2句我是单独的的BAT,放在D盘里的。
猜想:大概R盘本身就是虚拟挂载的,在虚拟挂载的盘里再挂载,上去容易,下来可能得2此卸载命令,说不好,就是卸载再卸载,大概是这个意思。但如何写代码就不知道了




点评

你这样设置权限不花费时间吗? 界面上的0-清理 是什么提示? D:\WimBuilder2\AppData\Projects\WIN10XPE\_CustomFiles_\ _Prepare_.bat 构建最开始的动作。 里面有3段, 构建前,镜像加载前,注册表加载  详情 回复 发表于 2020-12-7 01:33
不知道是不是双屏的缘故啊。 我这里壁纸一直存在,切换不会变化。 要不你放一个 FixDualScreen.bat 到系统目录。 start WinXShell.exe -code Screen:Disp() PECMD WALL X:\Windows\Web\Wallpaper.jpg Win  详情 回复 发表于 2020-12-7 01:18
回复

使用道具 举报

5209#
 楼主| 发表于 2020-12-7 01:13:23 | 只看该作者
本帖最后由 slore 于 2020-12-8 23:22 编辑
550 发表于 2020-12-7 00:52
目前在虚拟里暂时没发现问题,转到实体机去....

预设统一的话,给你一个方案。

"D:\WimBuilder2\AppData\Projects\WIN10XPE\_CustomFiles_\MyCustom"
这个目录会比组件优先执行,你可以根据x86,x64进行修改。

_MyPreset_.bat(名字其实随意)

if "%WB_PE_ARCH%"=="x86" (
    set opt[config.computername]=WIN10PEX86
    set opt[account.precreate_admin_profile]=false
)

界面上预设你按照x64的选,这里判断如果是x86进行一些修改。
这个只能更改选项,如果 左侧树 打勾不同,需要不同的预设。
回复

使用道具 举报

5210#
 楼主| 发表于 2020-12-7 01:18:37 | 只看该作者
550 发表于 2020-12-7 00:59
切换用户 第2轮后,就进入黑底了。失败

不知道是不是双屏的缘故啊。
我这里壁纸一直存在,切换不会变化。

要不你放一个 FixDualScreen.bat 到系统目录。

start WinXShell.exe -code Screen:Disp()
PECMD WALL X:\Windows\Web\Wallpaper.jpg

WinXShell也有一个
start WinXShell.exe -code "app:call('Desktop::SetWallpaper',[[X:\Windows\Web\Wallpaper.jpg]])"

然后把  FixDualScreen.bat 固定到任务栏。

你先试试手动,执行更改壁纸的命令可行不。

不行的话,中间 试试 WAIT 500 等待下。
回复

使用道具 举报

5211#
发表于 2020-12-7 01:31:25 | 只看该作者
start WinXShell.exe -code Screen:Disp()

PECMD WALL "X:\Windows\Web\Wallpaper\Windows\img0.jpg"

把他变成BAT文件,放在桌面,双击 无效果
回复

使用道具 举报

5212#
 楼主| 发表于 2020-12-7 01:33:57 | 只看该作者
550 发表于 2020-12-7 00:59
切换用户 第2轮后,就进入黑底了。失败

你这样设置权限不花费时间吗?

界面上的0-清理 是什么提示?


D:\WimBuilder2\AppData\Projects\WIN10XPE\_CustomFiles_\
_Prepare_.bat 构建最开始的动作。

里面有3段, 构建前,镜像加载前,注册表加载前。

构建前,你直接 rd /s /q "%FACTORY_PATH%\target\%WB_PROJECT%\mounted" 可以么?

rd /s /q "%_WB_MNT_PATH%" (用这个吧,短点,而且与版本路径无关,也支持新版本的重定向目录)

哦,刚才的 x64 预设,其实你添加到这里任意位置也行。



回复

使用道具 举报

5213#
发表于 2020-12-7 01:33:57 | 只看该作者
另一句,无法执行,不知道错哪儿

点评

引号就成了标题了啊。 另外WinXShell.exe不用写路径。按我发给你的命令写就好了。  详情 回复 发表于 2020-12-7 01:35
回复

使用道具 举报

5214#
 楼主| 发表于 2020-12-7 01:35:13 | 只看该作者
本帖最后由 slore 于 2020-12-7 01:50 编辑
550 发表于 2020-12-7 01:33
另一句,无法执行,不知道错哪儿

start的第一个带引号的参数是标题。

WinXShell.exe不用写路径。按我发给你的命令写就好了。
  1. start WinXShell.exe -code "app:call('Desktop::SetWallpaper',[[X:\Windows\Web\Wallpaper.jpg]])"
复制代码

或者

start "SetWallpaper" "%ProgramFiles%\WinXShell\WinXShell.exe" -code "app:call('Desktop::SetWallpaper',[[X:\Windows\Web\Wallpaper.jpg]])"
回复

使用道具 举报

5215#
发表于 2020-12-7 01:43:35 | 只看该作者
双击执行,无任何动静

点评

你试试PECMD的WALL命令,能不能更改? 还有,右键 img0.jpg,设置为壁纸,是否有变化。 2点了,我先睡了。有时间你可以试试单显示器。。  详情 回复 发表于 2020-12-7 01:50
回复

使用道具 举报

5216#
发表于 2020-12-7 01:49:20 | 只看该作者
连合起来,一起运行,无任何动静,哪怕桌面抖动一下,也算成功,可是没反应。路径的壁纸应该是对的,复制粘贴的

点评

那你试试,设定不同 图片,找一个img1.jpg,切换看看。 主要看下右键设置为背景,系统可以设置壁纸么?  详情 回复 发表于 2020-12-7 01:52
回复

使用道具 举报

5217#
 楼主| 发表于 2020-12-7 01:50:05 | 只看该作者
550 发表于 2020-12-7 01:43
双击执行,无任何动静

你试试PECMD的WALL命令,能不能更改?

还有,右键 img0.jpg,设置为壁纸,是否有变化。

2点了,我先睡了。有时间你可以试试单显示器。。

点评

550
非常感谢。我试试  详情 回复 发表于 2020-12-7 01:52
回复

使用道具 举报

5218#
发表于 2020-12-7 01:52:07 | 只看该作者
slore 发表于 2020-12-7 01:50
你试试PECMD的WALL命令,能不能更改?

还有,右键 img0.jpg,设置为壁纸,是否有变化。

非常感谢。我试试
回复

使用道具 举报

5219#
 楼主| 发表于 2020-12-7 01:52:36 | 只看该作者
550 发表于 2020-12-7 01:49
连合起来,一起运行,无任何动静,哪怕桌面抖动一下,也算成功,可是没反应。路径的壁纸应该是对的,复制粘 ...

那你试试,设定不同 图片,找一个img1.jpg,切换看看。

主要看下右键设置为背景,系统可以设置壁纸么?
回复

使用道具 举报

5220#
发表于 2020-12-7 01:52:52 | 只看该作者
重启桌面进程,就会显示。那是属于手动的

点评

你试试开机运行这个程序(放到Startup目录)。然后再试试切换和执行Screen:Disp()是否有改善。  详情 回复 发表于 2020-12-7 01:57
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-28 23:08

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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