无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: slore
打印 上一主题 下一主题

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

    [复制链接]
1681#
发表于 2019-9-21 10:42:51 来自手机 | 只看该作者
回复

使用道具 举报

1682#
发表于 2019-9-21 12:22:47 | 只看该作者
使用这个工具一次就能做出能用的PE,感谢楼主的辛勤劳动。

在使用时发现:带触摸屏的机器,当触摸了屏幕,鼠标指针就不见了,但还能控制。
回复

使用道具 举报

1683#
发表于 2019-9-21 12:34:46 | 只看该作者
测试结果,下面这句出错:

echo 7z.exe x "%~dp0Theme%opt[mytheme.Theme_pkg]%.7z -y -aos -o"%X%\Users\Default\AppData\Roaming\Microsoft\Windows"

Theme1.7z 至 Theme4.7z 并没有伴随 Web1.7z 至 Web4.7z 那样,按照选择的主题号码同步转换及复制到目的文件夹。反而代入变成了下面这句:

7z.exe x "D:\WimBuilder2-New\Projects\WIN10XPE\_CustomFiles_\MyTheme\Theme.7z -y -aos -o"A:\Users\Default\AppData\Roaming\Microsoft\Windows"

但是由於本目录下并没有 Theme.7z 文件,故而程序卡死不能继续。

MyTheme.rar (153.01 KB, 下载次数: 3)




回复

使用道具 举报

1684#
 楼主| 发表于 2019-9-21 12:50:20 | 只看该作者
本帖最后由 slore 于 2019-9-21 12:57 编辑
WAIGO 发表于 2019-9-21 12:34
测试结果,下面这句出错:

echo 7z.exe x "%~dp0Theme%opt[mytheme.Theme_pkg]%.7z -y -aos -o"%X%%user ...


main.html界面的 主题包 的选项是:
opt[mytheme.web_pkg]

这个环境变量值会根据你的页面选择,1,2,3,4而设定。
要是没有设定就设置为1。

你Theme1.7z的包,没必要新定义的选项,直接用Theme%opt[mytheme.web_pkg]%.7z

除非,你想
Web1.7z, Theme3.7z
这种可以分别独立选择。才需要
opt[mytheme.Theme_pkg]。

另外,opt[mytheme.Theme_pkg]这个不会凭空根据你的文件夹的7z目录,自动变出来。
需要你在
main.html定义4个按钮才行。

要么共用,要么复制 主题包1~主题包4 的选项, 做4个 Theme1~Theme4 的选项。

你觉得web_pkg的意思不合适,你自己修改 main.html,把名字改成 theme_id。

=============================================================
一开始把你想要的说清楚,不要做一点,提一点。你开始直接说有Web1~4.7z,Theme1~4.7z。
我给的地址,自己照葫芦画瓢可以做出来,你自己摸索下吧。


回复

使用道具 举报

1685#
发表于 2019-9-21 14:22:42 | 只看该作者

感谢分享
回复

使用道具 举报

1686#
发表于 2019-9-21 15:46:49 | 只看该作者
slore 发表于 2019-9-21 12:50
main.html界面的 主题包 的选项是:
opt[mytheme.web_pkg]

您可能没弄清楚我的意思,另做 Theme1~Theme4 四个压缩包,是因为 X:\Uesrs 项目下原本就有个 Themes 目录,此目录内的图片会伴随不同主题而不停变动。首次启用,必须手动设置成和该主题的 img0.jpg 一致。故而必须和 Web1~Web4 同步复制。

上面的图二显示了此目录下有 Web1~Web4,及 Theme1~Theme4 八个压缩包。因为 Theme 包复制的目的地和 Web 包完全不同,故而难以直接用 "Theme%opt[mytheme.web_pkg]%.7z" 一个代码来同时放入两种不同目的地的压缩包。

只有像 WEB 及 Media 两种目的地(%WIN%)相同的目录才容易合并复制。恳请老大替我写个同步复制的代码。再谢!
回复

使用道具 举报

1687#
 楼主| 发表于 2019-9-21 16:17:14 | 只看该作者
WAIGO 发表于 2019-9-21 15:46
您可能没弄清楚我的意思,另做 Theme1~Theme4 四个压缩包,是因为 X:%uesrs 项目下原本就有个 Themes 目 ...

是我沒说清楚?还是你没理解。

文件名中的1,2,3或4,不管是web还是theme你都用 opt[mytheme.web_pkg] 代替就行了。

last.bat
if "x%opt[mytheme.web_pkg]%"=="x" set opt[mytheme.web_pkg]=1
7z.exe x "%~dp0Web%opt[mytheme.web_pkg]%.7z" -y -aos -o"%X_WIN%"
7z.exe x "%~dp0Theme%opt[mytheme.Theme_pkg]%.7z -y -aos -o"%X%\Users\Default\AppData\Roaming\Microsoft\Windows"


改成

if "x%opt[mytheme.web_pkg]%"=="x" set opt[mytheme.web_pkg]=1
7z.exe x "%~dp0Web%opt[mytheme.web_pkg]%.7z" -y -aos -o"%X_WIN%"
7z.exe x "%~dp0Theme%opt[mytheme.web_pkg]%.7z -y -aos -o"%X%\Users\Default\AppData\Roaming\Microsoft\Windows"


另外, 你建立一个X目录,把2个包解压进去,再打包,
7z.exe -x xxxx.7z -o"%X%\"
不是也能解决?
回复

使用道具 举报

1688#
发表于 2019-9-21 17:03:03 | 只看该作者
slore 发表于 2019-9-3 08:28
每次打开, 选项变成默认选项, 如何保存之前的设定?

WimBuilder2之后会有导出选项, 保存选项的功能,  ...

老大,这个功能是每个人、每次运行都要用到的,尽快搞一个可保存配置的吧

点评

自己用能改多少参数啊,先手动做一个预设就好了。  发表于 2019-9-21 23:54
回复

使用道具 举报

1689#
发表于 2019-9-21 17:28:40 | 只看该作者
本帖最后由 黑中见白 于 2019-9-21 17:52 编辑

X:\Windows\System33\ApplicationFrame.dll        信任程序        应用程序框架
X:\Windows\System33\Windows.CloudStore.dll        信任程序        云数据存储
X:\Windows\System32\ncsi.dll        信任程序        网络连接状态指示器


真的 不闪了
回复

使用道具 举报

1690#
 楼主| 发表于 2019-9-21 23:54:04 | 只看该作者
反向人 发表于 2019-9-21 23:28
验证啦 WimBuilder2_1204_x64这个版本可以

IE啥版本? 没有任何错误? @echo on你看下,WimBuilder.cmd在
mshta前pause下。

另外你程序路径放在什么地方?
建议D:\WimBuilder2_0901试试。
回复

使用道具 举报

1691#
发表于 2019-9-22 06:42:11 来自手机 | 只看该作者
s大,用你的wimbuilder有一段时间了,真的很好。但是有几个问题,试了好多遍都不行。一是
回复

使用道具 举报

1692#
发表于 2019-9-22 06:46:05 来自手机 | 只看该作者
一是X86版,启动惠普台式机,USB鼠标键盘没有反应。x64的可以。不知道怎么搞的。是不是要自己加驱动?机器是8代i7,q370芯片组。X64下,缺

点评

虚拟机下是否正常。正常的话,与机器有关了,没法确认。  发表于 2019-9-22 08:05
U.盘可以接麽。可以的话,就是驱动了。你对比下生成的x64.86的文件列表看看差异。  发表于 2019-9-22 08:02
回复

使用道具 举报

1693#
发表于 2019-9-22 06:47:39 来自手机 | 只看该作者
X64下,缺dll文件。二是选admin,只出现过一次登陆,不知道哪个地方没选对。

点评

startnet.cmd方式没有Admin,你自己转pecmdadmij.ini为批处理。。。  发表于 2019-9-22 08:04
回复

使用道具 举报

1694#
发表于 2019-9-22 06:49:29 来自手机 | 只看该作者
我只用无任何第三方工具的,因此只选startnet。
回复

使用道具 举报

1695#
发表于 2019-9-22 08:36:23 | 只看该作者
老大您好!个性化修改终於全部完工了。但是制作前点击至补丁项目时,有部分选项并未打开(图一红圈内)。能否设置成如图二所示全部展开状态?谢谢!



回复

使用道具 举报

1696#
 楼主| 发表于 2019-9-22 08:57:03 | 只看该作者
WAIGO 发表于 2019-9-22 08:36
老大您好!个性化修改终於全部完工了。但是制作前点击至补丁项目时,有部分选项并未打开(图一红圈内)。能否 ...

参考默认预设下面的xxxx_tree_node的代码,展开[组件]的代码。收起来是因为没必要设置,尤其是 外壳,Explorer和WinXShell都是空的。
回复

使用道具 举报

1697#
发表于 2019-9-22 09:17:03 来自手机 | 只看该作者
        slore大神,请问下PE启动过程中,在开始菜单和桌面创建快捷方式,可否隐藏运行?现在是逐一显示的,隐藏运行会不会加快启动速度?
回复

使用道具 举报

1698#
 楼主| 发表于 2019-9-22 09:57:45 | 只看该作者
反向人 发表于 2019-9-22 09:15
ok了;放根目录就行了 ,二级目录下不行

多级目录也是可以。(我个人目录是 Z:\D e v\WimBuilder2)
只是后续版本,用了相对路径,避免文件夹名中有括号,特殊字符等,影响批处理运行。

你之前不能运行的目录是啥?发给我看看。
回复

使用道具 举报

1699#
 楼主| 发表于 2019-9-22 10:08:15 | 只看该作者
本帖最后由 slore 于 2019-9-22 10:10 编辑
liuzhaoyzz 发表于 2019-9-22 09:17
slore大神,请问下PE启动过程中,在开始菜单和桌面创建快捷方式,可否隐藏运行?现在是逐一显示的 ...


Z:\D e v\WimBuilder2\vendor\WinXShell\X_x64\Program Files\WinXShell\wxsUI\UI_Logon.zip\main.lua
local function regist_logon_coroutine()
  cor_logon_lua = coroutine.create(call_logon_lua)
  suilib.call('SetTimer', DOLOGON_TIMER_ID, 500)
  suilib.call('SetTimer', UIUPDATE_TIMER_ID, 200)
end


每条UI显示的交互命令,延时200毫秒用于显示。所以回答是, 是的,隐藏会提高启动速度。
这里改成10,20毫秒也行,但是闪的太快眼睛开不清进度,就没有显示的必要了。

快捷方式创建这种比较多的话,10个的话,总的等待要2秒。

旧的link命令是这种的。新的LinkToDesktop,LinkToStartMenu是没有等待的,
不与UI交互显示。除了特别的处理进度,用pecmd.lua表示阶段,
比如: 提示初始化用户桌面,创建桌面快捷方式。。。
这种总的阶段提示信息更新即可,详细的没必要。

Z:\D e v\WimBuilder2\Projects\WIN10XPE\_CustomFiles_\PEMaterial\pecmd.lua
   最下面, 添加2个减号,注释掉 set_progress,就没有UI更新了, 单纯的创建快捷方式。

function LINK(lnk, target, param, icon, index, showcmd)
  -- set_progress(t('Create shortcut:') .. app:call('envstr',lnk))
  link(lnk, target, param, icon, index, showcmd)
end


另外,不知道你是否注意到 【构建】页面最上面的提示。
因为WimBuilder2已经把winre.wim挂载到 X: ,可以在构建时就把桌面开始菜单的快捷方式做好,
以提高PE的启动速度。快捷方式也不大,对wim大小也没影响。
回复

使用道具 举报

1700#
 楼主| 发表于 2019-9-22 11:22:38 | 只看该作者
WAIGO 发表于 2019-9-22 08:36
老大您好!个性化修改终於全部完工了。但是制作前点击至补丁项目时,有部分选项并未打开(图一红圈内)。能否 ...

Windows Media Player 组件可否分享下?

清单我有,但是一直没有添加测试,你这个应该是测试过的,方便的话给我一份我直接加到工程。

Windows NT?这个是啥功能?
回复

使用道具 举报

1701#
 楼主| 发表于 2019-9-22 12:19:33 | 只看该作者
本帖最后由 slore 于 2019-9-22 12:30 编辑

关于Administrator用户启动速度问题。

因为代码有句:
exec('/wait /hide', [[secedit.exe /configure /db %WinDir%\security\database\unattend.sdb /cfg %WinDir%\security\templates\unattend.inf /log %WinDir%\security\logs\unattend.log]])

目的是不管什么语言系统,强制更新管理员用户名为Administrator。
对于中文来说,本身就是Administrator,没必要这个了。

删除或者添加2个减号在pecmd.lua中注释掉,3,4秒左右就Administrator登录了,感觉比SYSTEM用户还快。有兴趣的可以测试下。

默认选项
+启用Administrator用戶
+自动登录的确认时间(秒): 0


+ 启动管理器
PECMD的话,编辑PecmdAdmin.ini, 注释或删除以下语句:
  1. // Force the administrator name whatever language
  2. // EXEC != secedit.exe /configure /db %WinDir%\security\database\unattend.sdb /cfg %WinDir%\security\templates\unattend.inf /log %WinDir%\security\logs\unattend.log
复制代码



LUA的话,编辑Pecmd.lua,注释或删除以下语句:
  1.   -- set_progress(t('Update database ...'))
  2.   -- // Force the administrator name whatever language
  3.   --  exec('/wait /hide', [[secedit.exe /configure /db %WinDir%\security\database\unattend.sdb /cfg %WinDir%\security\templates\unattend.inf /log %WinDir%\security\logs\unattend.log]])
复制代码


去掉输入法IME的好像更快。。。


我回头测试下其他语言,特别是法语系统等,界面提供选择,是否更改 管理员名为Administrator。
如果可以从install.wim中识别管理员名,进行对比执行。
如果是Administrator这个就注释掉,或者
回复

使用道具 举报

1702#
发表于 2019-9-22 12:56:07 | 只看该作者
slore 发表于 2019-9-1 09:21
可能是Admin支持的文件不全, 我使用的uup上的镜像,或者正式release的Win 10 ISO。
但是没有试过  ...


大神你好,能发分享一个做好带手机MTP功能的PE,多谢了,没时间研究制作啊,邮箱3030-26524@qq.com[/email][/email]
回复

使用道具 举报

1703#
 楼主| 发表于 2019-9-22 13:09:39 | 只看该作者
qty51c 发表于 2019-9-22 12:56
大神你好,能发分享一个做好带手机MTP功能的PE,多谢了,没时间研究制作啊,邮箱[/email][/email]


看3楼的GIF,2分钟。


下载, 09.01 的5个附件,2分钟。

按照3楼GIF操作:
挂载Windows.ISO到驱动器(例如: H:\)。
解压打开WimBuilder2运行WimBuilder.cmd,
【准备】页面第一个按钮选择 H: 盘符,
下一步,下一步到【补丁】页面,选择【组件】,勾选 【MTP】。
下一步到【构建】页面,点击【1-构建(CMD)】,
带制作完毕,点击【2-创建镜像】。

WimBuilder2\_Factory_\BOOTPE.iso 就是可以启动的PE。

点点鼠标,3,5分钟就搞定了。我上传ISO到网盘要2个小时,还浪费空间。
自己做,有错误的话,可以反馈。

用我的工具添加了MTP功能的PE,在 PE作品发布区,第一页有很多,
如果需要成品,直接去下载成品吧。

回复

使用道具 举报

1704#
发表于 2019-9-22 15:46:18 | 只看该作者
slore 发表于 2019-9-22 13:09
看3楼的GIF,2分钟。

会提示有些文件找不到
last_wimbuilder.zip (14.24 KB, 下载次数: 3)
回复

使用道具 举报

1705#
 楼主| 发表于 2019-9-22 16:01:50 | 只看该作者
永恒心锁 发表于 2019-9-22 15:46
会提示有些文件找不到

第一次构建先用默认设定测试下。(看日志你勾选了,强力精简)

看了你的日志,构建是成功的。

提示找不到文件是精简的部分,不同的版本可能不同,
反正是要删除,找不到也无所谓的。


不过,
Dism命令没有卸载成功。挂载盘符是A盘,
你是否是在PE下运行?还是某次运行有残留。

如果是正常系统下,可以运行下 0-清理, 选择X盘再运行 0-清理。

回复

使用道具 举报

1706#
发表于 2019-9-22 17:20:30 | 只看该作者
slore 发表于 2019-9-22 16:01
第一次构建先用默认设定测试下。(看日志你勾选了,强力精简)

看了你的日志,构建是成功的。

我是正常系统下运行的。  X盘我自己再用 所以自动弄成了A盘
回复

使用道具 举报

1707#
发表于 2019-9-22 20:40:19 | 只看该作者
本帖最后由 liuzhaoyzz 于 2019-9-22 21:39 编辑
slore 发表于 2019-9-22 10:08
Z:\D e v\WimBuilder2\vendor\WinXShell\X_x64\Program Files\WinXShell\wxsUI%uI_Logon.zip\main.lua
...

        
1、
旧的link命令是这种的。新的LinkToDesktop,LinkToStartMenu是没有等待的,
不与UI交互显示。

https://github.com/slorelee/wimbuilder2/releases
https://github.com/slorelee/wimbuilder2/archive/master.zip
我用WimBuilder2-20190901.7z,解压缩到WimBuilder2-20190901,然后下载了wimbuilder2-master2019年9月22日.zip解压并覆盖WimBuilder2-20190901目录同目录下的文件,LinkToDesktop,LinkToStartMenu似乎还是有UI交互?还是能够看到创建快捷方式的过程。
补丁写法如下:
  1. xcopy /yh "Anydesk.exe" "%X_PF%\anydesk"
  2. call LinkToDesktop "Anydesk.lnk" "#pProgramFiles#p\anydesk\Anydesk.exe"
  3. call LinkToStartMenu "Anydesk.lnk" "#pProgramFiles#p\anydesk\Anydesk.exe"
复制代码


2、cn_windows_10_enterprise_ltsc_2019_x64_dvd_9c09ff24.iso搭配上面搭建的软件包,选择LUA启动器,G:\WimBuilder2-20190922\Projects\WIN10XPE\_CustomFiles_\PEMaterial\pecmd.lua里面搜索database那几行已经用“--”注释了,然而admin进入速度没什么变化?我说的没变化指的是从加载完ISO之后到见到桌面并可以操作的总的启动时间没有本质的提升。
  1.   -- set_progress(t('Update database ...'))
  2.   -- // Force the administrator name whatever language
  3.   -- exec('/wait /hide', [[secedit.exe /configure /db %WinDir%\security\database\unattend.sdb /cfg %WinDir%\security\templates\unattend.inf /log %WinDir%\security\logs\unattend.log]])
复制代码

3、右击我的电脑→管理变成了英文manage,右击桌面空白处→个性化变成了英文Personalize,怎么修改成为中文?有网友在问。
4、环境同上,实体机测试,以前版WimBuilder2-20190901版本勾选破解drvinst驱动签名之后,可以在PE中安装驱动,wimbuilder2-master2019年9月22日版本,无论是否勾选破解drvinst驱动签名,都无法安装无线网卡驱动,提示“windows无法验证此设备所需的驱动程序的数字签名”。
然而我用beyondCompare对比了这两个版本里面的Projects\WIN10XPE\01-Components\Patch_drvinst目录,似乎没变啊,怎么驱动会安装不了,实在是令人费解。

Windows 10 x64-2019-09-22-20-39-38.png (1.07 MB, 下载次数: 133)

Windows 10 x64-2019-09-22-20-39-38.png

Windows 10 x64-2019-09-22-20-39-31.png (1.07 MB, 下载次数: 147)

Windows 10 x64-2019-09-22-20-39-31.png

无法验证此设备所需的驱动程序的数字签名.jpg (33.12 KB, 下载次数: 154)

无法验证此设备所需的驱动程序的数字签名.jpg
回复

使用道具 举报

1708#
发表于 2019-9-22 22:03:15 | 只看该作者
liuzhaoyzz 发表于 2019-9-22 20:40
1、
https://github.com/slorelee/wimbuilder2/releases
https://github.com/slorelee/wimbu ...

我的也是9377网卡,系统有自带网卡,不用另行安装
回复

使用道具 举报

1709#
发表于 2019-9-22 22:05:12 | 只看该作者
slore 发表于 2019-9-22 12:19
关于Administrator用户启动速度问题。

因为代码有句:

我有测试pecmd.ini,不见有效果
回复

使用道具 举报

1710#
 楼主| 发表于 2019-9-22 22:13:57 | 只看该作者
本帖最后由 slore 于 2019-9-23 08:22 编辑


1.

似乎还是有UI交互?

这个pecmd.lua中自带了一些创建快捷方式的代码。
你看Shortcuts(),以前的link宏是添加到CustomShortcuts()

如果不想要,你直接删除这些快捷方式。
如果你还想保留,只是不想UI交互来加速的话,最下面
注释掉 set_progress()函数(这个是用于设置UI进度文字的)。
function LINK(lnk, target, param, icon, index, showcmd)
  -- set_progress(t('Create shortcut:') .. app:call('envstr',lnk))
  link(lnk, target, param, icon, index, showcmd)
end


2.不勾选网络试试。
如果能提速的话,我可以考虑把网络初始化放到进入桌面后。(搜索网卡,加载驱动需要5,6秒。)

我一会录屏给你演示吧。从wpeinit.log看,几乎2,3秒,就完了。启动Shell花费几秒。


3.
管理菜单
HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\Manage
MUIVerb = @%systemroot%\system32\mycomput.dll,-400

补充这个dll和mui文件可以显示中文。如果为了精简,只针对中文,
自己写个补丁,或者扔到 MyCustom中,直接改成  MUIVerb = "管理"

个性化菜单,DesktopBackground注册表项目下面。默认的dll是:
Z:\Dev\WimBuilder2\Projects\WIN10XPE\01-Components\00-Shell\main.bat
@\Windows\System32\
; resources for desktop background contextmenu
Display.dll
themecpl.dll


我专门添加的,应该是被精简掉了。
同理,补充dll,或者自己直接改成中文不用dll资源引用。
个性化(&R)

图标资源也是dll中的,自己可以解出来,或者不要菜单图标。

4. drvinst.exe
你看日志(搜索 Patch_drvinst ),是否成功应用补丁,会有提示信息,代码没变,如果ISO的版本不同,可能通用补丁不适用。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-1 07:02

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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