无忧启动论坛

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

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

    [复制链接]
2251#
发表于 2019-10-17 17:05:59 | 只看该作者
先生,我有这个问题。 在myinit.ini中,KILL explorer.exe命令不起作用,因此它会加载.reg记录,但不会将快捷方式发送到桌面。
打开管理员时不会发生这种情况。

点评

BeforeShell是在Explorer运行前,执行的,没有kill的必要。 创建快捷方式不需要等待explorer启动。  详情 回复 发表于 2019-10-17 17:12
回复

使用道具 举报

2252#
 楼主| 发表于 2019-10-17 17:12:16 | 只看该作者
gazi06 发表于 2019-10-17 17:05
先生,我有这个问题。 在myinit.ini中,KILL explorer.exe命令不起作用,因此它会加载.reg记录,但不会将快 ...

BeforeShell是在Explorer运行前,执行的,没有kill的必要。
创建快捷方式不需要等待explorer启动。

点评

然后有一种方法可以在不打开系统的情况下加载.reg记录  详情 回复 发表于 2019-10-17 19:08
回复

使用道具 举报

2253#
发表于 2019-10-17 17:55:32 | 只看该作者
本帖最后由 saiz 于 2019-10-17 20:15 编辑

有個問題啊 為什麼我以ADMIN登入
可切換SYSTEM.但再切回來 沒有explorer.exe?
而且如果我執行了explorer.exe後
再來回切換 都沒問題了
BUT!
我一開始登入administrator就有explorer.exe啊?
為什麼切換到SYSTEM再切回來就沒了??
但administrator執行explorer.exe後 又都沒問題了?

PECMDINI.7z

2.46 KB, 下载次数: 11, 下载积分: 无忧币 -2

点评

PECMD的代码我也不懂,都是东拼西凑的。 给你说下多用户的启动顺序,你自己体会下,我的构架是按Windows系统走,不是靠配置文件管理,启动管理器只是处理登录阶段, 具体怎么做,是Startup目录来做。 SY  详情 回复 发表于 2019-10-17 20:40
回复

使用道具 举报

2254#
发表于 2019-10-17 19:08:26 | 只看该作者
slore 发表于 2019-10-17 17:12
BeforeShell是在Explorer运行前,执行的,没有kill的必要。
创建快捷方式不需要等待explorer启动。

然后有一种方法可以在不打开系统的情况下加载.reg记录

点评

我的补丁\ last.bat reg import 123.reg change the The key path to Tmp_Software  详情 回复 发表于 2019-10-17 19:13
回复

使用道具 举报

2255#
 楼主| 发表于 2019-10-17 19:13:38 | 只看该作者
gazi06 发表于 2019-10-17 19:08
然后有一种方法可以在不打开系统的情况下加载.reg记录


我的补丁\
  last.bat
    reg import 123.reg


change the The key path to  Tmp_Software, Tmp_SYSTEM in 123.reg

点评

以这种方式导入时,出现蓝屏错误。 attach://402975.7z  详情 回复 发表于 2019-10-17 21:01
回复

使用道具 举报

2256#
发表于 2019-10-17 19:48:48 | 只看该作者
我想知道这里的这个网络是什么注册表显示。

QQ截图20191017194625.png (4.17 KB, 下载次数: 76)

QQ截图20191017194625.png

点评

看来我的注册表还缺其它东西所以不会显示  详情 回复 发表于 2019-10-17 20:45
感谢我去试试  详情 回复 发表于 2019-10-17 20:21
HKEY_CLASSES_ROOT\CLSID\{F02C1A0D-BE21-4350-88B0-7367FC96EF3C}\ShellFolder  发表于 2019-10-17 20:16
回复

使用道具 举报

2257#
发表于 2019-10-17 19:50:35 | 只看该作者
slore 发表于 2019-10-17 14:43
Pecmd.ini加载的注册表setup\CmdLine你改了就行。

[HKEY_LOCAL_MACHINE\SYSTEM\Setup]
"CmdLine"="Pecmd.exe Main %Windir%\\System32\\PecmdAdmin.ini"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"Userinit"="userinit.exe,Pecmd.exe MAIN -user %Windir%\System32\pecmd.ini"
这两个注册表需要修改那个?都是什么意思

点评

一个SYSTEM默认PE启动的入口,调用PecmdAdmin.ini进行用户选择加载。 后一个是系统用户登录,系统会调用的位置,啥也不写就只是进桌面,这里写了,可以有创建快捷方式等启动时调用命令的机会。 要改都改,要么  详情 回复 发表于 2019-10-17 19:55
回复

使用道具 举报

2258#
 楼主| 发表于 2019-10-17 19:55:31 | 只看该作者
wchongy 发表于 2019-10-17 19:50
[HKEY_LOCAL_MACHINE\SYSTEM\Setup]
"CmdLine"="Pecmd.exe Main %Windir%\\System32\\PecmdAdmin.ini"
...


一个SYSTEM默认PE启动的入口,调用PecmdAdmin.ini进行用户选择加载。

后一个是系统用户登录,系统会调用的位置,啥也不写就只是进桌面,这里写了,可以有创建快捷方式等启动时调用命令的机会。

要改都改,要么你只改pecmd.ini这个你自己决定啊。

点评

我的PE是直接进admin账户,不需要转换system账户!是不是只需要修改下面一个注册表就可以 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon] "Userinit"="userinit.exe,Pecmd.exe MA  详情 回复 发表于 2019-10-17 20:16
回复

使用道具 举报

2259#
发表于 2019-10-17 20:16:04 | 只看该作者
slore 发表于 2019-10-17 19:55
一个SYSTEM默认PE启动的入口,调用PecmdAdmin.ini进行用户选择加载。

后一个是系统用户登录,系统会 ...

我的PE是直接进admin账户,不需要转换system账户!是不是只需要修改下面一个注册表就可以

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"Userinit"="userinit.exe,Pecmd.exe MAIN -user %Windir%\System32\pecmd.ini"

点评

啥也不用改,【帐户】设定把用户选择时间改成0就行了。  详情 回复 发表于 2019-10-17 20:41
回复

使用道具 举报

2260#
发表于 2019-10-17 20:21:48 | 只看该作者
我是小青蛙 发表于 2019-10-17 19:48
我想知道这里的这个网络是什么注册表显示。

感谢我去试试
回复

使用道具 举报

2261#
 楼主| 发表于 2019-10-17 20:40:20 | 只看该作者
saiz 发表于 2019-10-17 17:55
有個問題啊 為什麼我以ADMIN登入
可切換SYSTEM.但再切回來 沒有explorer.exe?
而且如果我執行了explorer. ...

PECMD的代码我也不懂,都是东拼西凑的。

给你说下多用户的启动顺序,你自己体会下,我的构架是按Windows系统走,不是靠配置文件管理,启动管理器只是处理登录阶段,
具体怎么做,是Startup目录来做。


   SYSTEM 先登录,pecmd中exec/shel启动explorer.exe。

   运行切换用户登录Admin用户,系统调用winlogon的shell项目,自动启动explorer.exe (正常Windows系统的机制)

   Admin用户,不需要启动管理器,是正常用户登录。

   但是,作为PE,我们往往需要准备快捷方式,进入用户时运行些东西,所以在winlogon的userinit项目,

   追加了 userinit.exe,pecmd.exe -MAIN -user pecmd.ini, 使得登录Admin用户时,有一个自己处理的阶段。

  但是explorer.exe是系统调用的,当然你winlogon\shell不写估计就不调用了。2个是并行运行的。

  

  Admin 先登录,启动管理器 pecmd pecmdAdmin.ini在 SYSTEM 用户环境,运行 WinXShell WaitSession('SYSTEM')等待切换,啥也不做。

  Admin 的 explorer.exe 和 userinit和上面说的一样,所以进行了用户的初始化,同时 explorer.exe 被系统自己调起来。

  点击桌面的用户切换,WinXShell发现用户切换,退出,程序继续走 LOAD PECMD.ini, 进行SYSTEM用户的初始化。

  可以完全一样,也可以不同。比如启动explorer.exe, SYSTEM用户需要自己EXEC,所以有 FIND %USERNAME%=SYSTEM。

  具体怎么处理,看个人喜好了。与其他的Administrator用户 和 SYSTEM “权限” 切换的模拟双用户不同,

  WimBuilder2构建的PE是多用户登录,Admin用户和SYSTEM用户是独立的,切换不仅不会杀掉自己打开程序,也不杀掉另一个用户操作的程序,

  是Windows的用户机制,所以是多用户进程稳定的,独立的。而且一旦2个用户都初始化好了,WinXShell不再初始化用户环境,

  而是直接调用SwitchSession(<用户>),进行用户切换,是微软原生的用户切换,互相切换不会报错,速度也非常快。


点评

找到錯誤了.自己手殘改到PECMD.INI內的FIND $%USERNAME%=SYSTEM,EXEC %WinDir%\explorer.exe, =變==就出事了.但看起來不是影響SYSTEM嗎?結果是切回ADMIN出問題?@@ 還有PECMDADMIN.INI內的LOAD PECMD.INI,原來是給S  详情 回复 发表于 2019-10-17 22:02
感謝! 我研究下. 而且我剛發現LogonAdmin.bat內就有LOAD PECMD.INI了 但在PECMDADMIN.INI內 CALL SWITCHTOADMINQUESTION後就又LOAD PECMD.INI了 重覆了 目前把PECMDADMIN.INI內的註解掉 可正常進入桌面  发表于 2019-10-17 21:50
回复

使用道具 举报

2262#
 楼主| 发表于 2019-10-17 20:41:26 | 只看该作者
本帖最后由 slore 于 2019-10-17 20:49 编辑
wchongy 发表于 2019-10-17 20:16
我的PE是直接进admin账户,不需要转换system账户!是不是只需要修改下面一个注册表就可以

[HKEY_LOCAL ...


啥也不用改,【帐户】设定把用户选择时间改成0就行了。


非RAMOS模式,都是先走CmdLine调用 pecmdadmin.ini,只是时间设置为0的话,就直接调用logonAdmin.bat。


WimBuilder2的多用户快速自由切换模式,是微软的用户机制不新增任何dll文件,不改写任何注册表,
不占额外资源,不占额外启动时间
,是开启Administrator用户功能附送的,仅仅是多2个快捷方式,
你不用把快捷方式生成的代码删除即可。

回复

使用道具 举报

2263#
发表于 2019-10-17 20:45:24 | 只看该作者
我是小青蛙 发表于 2019-10-17 19:48
我想知道这里的这个网络是什么注册表显示。

看来我的注册表还缺其它东西所以不会显示

点评

HKEY_CLASSES_ROOT\CLSID\{F02C1A0D-BE21-4350-88B0-7367FC96EF3C}\InProcServer32 %systemroot%\system32\NetworkExplorer.dll  详情 回复 发表于 2019-10-17 20:47
回复

使用道具 举报

2264#
 楼主| 发表于 2019-10-17 20:47:36 | 只看该作者
我是小青蛙 发表于 2019-10-17 20:45
看来我的注册表还缺其它东西所以不会显示

HKEY_CLASSES_ROOT\CLSID\{F02C1A0D-BE21-4350-88B0-7367FC96EF3C}\InProcServer32
        %systemroot%\system32\NetworkExplorer.dll

点评

我把整个CLSID都导入了还是不会显示看来是其地方注册表文件也是不缺的,我用wimbuilder2创建的相同版本的PE注册表替换是正常显示的,看来需要花点时间比对一下。  详情 回复 发表于 2019-10-17 20:55
回复

使用道具 举报

2265#
发表于 2019-10-17 20:55:39 | 只看该作者
slore 发表于 2019-10-17 20:47
HKEY_CLASSES_ROOT\CLSID\{F02C1A0D-BE21-4350-88B0-7367FC96EF3C}\InProcServer32
        %systemroot ...

我把整个CLSID都导入了还是不会显示看来是其地方注册表文件也是不缺的,我用wimbuilder2创建的相同版本的PE注册表替换是正常显示的,看来需要花点时间比对一下。

点评

复制注册表替换启动了试了下,是DEFAUTL的注册表。  详情 回复 发表于 2019-10-17 21:11
回复

使用道具 举报

2266#
发表于 2019-10-17 21:01:45 | 只看该作者
slore 发表于 2019-10-17 19:13
我的补丁\
  last.bat
    reg import 123.reg

以这种方式导入时,出现蓝屏错误。

http://wuyou.net/forum.php?mod=attachment&aid=NDAyOTc1fDczYjhlY2ExODc3YjlhYTllZWZkNzAxNDUxNTJmMWIzfDE3MTUwNzE3MTI%3D&request=yes&_f=.7z

点评

WimBuilder2 will auto RegCopy Wow6432Node\CLSID, Wow6432Node\Interface. You only need add the custom registry, like And HKEY_CLASSES_ROOT\WOW6432Node\TypeLib\ HKEY_CLASSES_ROOT\WOW6432  详情 回复 发表于 2019-10-17 21:23
回复

使用道具 举报

2267#
发表于 2019-10-17 21:11:30 | 只看该作者
本帖最后由 我是小青蛙 于 2019-10-17 21:13 编辑
我是小青蛙 发表于 2019-10-17 20:55
我把整个CLSID都导入了还是不会显示看来是其地方注册表文件也是不缺的,我用wimbuilder2创建的相同版本的 ...


复制注册表替换启动了试了下,是DEFAUTL的注册表,我的PE的注册表跟wimbuilder2创建的PE可以互相替换不会蓝屏。

QQ截图20191017211239.png (61.86 KB, 下载次数: 76)

QQ截图20191017211239.png

点评

Z:\WimBuilder2\Projects\WIN10XPE\01-Components\00-Shell\Shell_RegDefault.reg 不知道有关系没。  详情 回复 发表于 2019-10-17 21:28
回复

使用道具 举报

2268#
发表于 2019-10-17 21:22:13 | 只看该作者
slore 发表于 2019-10-17 00:38
从强力精简中把 一部分精简 做成 【安全精简】选项了。

关于语言码的初始化代码放到 安全精简了,结 ...

谢谢!
老大辛苦了!
最新开发版本从哪下载?
再次谢谢!

点评

首页有说,  详情 回复 发表于 2019-10-17 21:26
回复

使用道具 举报

2269#
 楼主| 发表于 2019-10-17 21:23:20 | 只看该作者
gazi06 发表于 2019-10-17 21:01
以这种方式导入时,出现蓝屏错误。

http://wuyou.net/forum.php?mod=attachment&aid=NDAyOTc1fDczYjhlY2ExODc3YjlhYTllZWZkNzAxNDUxNTJmMWIzfDE3MTUwNzE3MTI%3D&request=yes&_f=.7z

WimBuilder2 will auto RegCopy Wow6432Node\CLSID, Wow6432Node\Interface.

rem ==========update registry==========

rem [Reg_WoW64]
rem //RegImportFile,%ScriptDir%\WoW64_RegSoftware.txt
call RegCopy HKLM\Software\Classes\Wow6432Node\CLSID
call RegCopy HKLM\Software\Classes\Wow6432Node\Interface


You only need add the custom registry, like

  1. [HKEY_LOCAL_MACHINE\Tmp_Software\WOW6432Node\Classes\TypeLib\{1F9B20F0-0AA5-4EEB-B5ED-FADA0C41D073}\1.0\HELPDIR]
  2. ""="x:\\Program Files\\HashTab Shell Extension"

  3. [HKEY_LOCAL_MACHINE\Tmp_Software\WOW6432Node\Classes\TypeLib\{1F9B20F0-0AA5-4EEB-B5ED-FADA0C41D073}\1.0\0\win64]
  4. ""="x:\\Program Files\\HashTab Shell Extension\\HashTab64-6.0.0.34.dll"
复制代码


And HKEY_CLASSES_ROOT\WOW6432Node\TypeLib\
HKEY_CLASSES_ROOT\WOW6432Node\CLSID\

are wrong.

HKEY_CLASSES_ROOT\WOW6432Node\TypeLib\ =>
HKLM\Tmp_Software\Classes\WOW6432Node\TypeLib\

[HKEY_USERS\S-1-5-18\Tmp_Software\Microsoft\Windows\CurrentVersion\Explorer]
[HKEY_USERS\S-1-5-18\Tmp_Software\Microsoft\Windows Photo Viewer\Viewer]
[HKEY_USERS\S-1-5-18\Tmp_Software\Microsoft\Windows Photo Viewer\Slideshow]
is wrong.



[HKEY_USERS\.DEFAULT\Tmp_Software\Classes\Local Settings\MuiCache\1\8F259D79]
should be =>

[HKEY_LOCAL_MACHINE\tmp_DEFAULT\Software\Classes\Local Settings\MuiCache\1\8F259D79]


[HKEY_USERS\.DEFAULT\Tmp_Software\Classes\Local Settings\MuiCache\1\8F259D79]
"@X:\\Windows\\regedit.exe,-309"="Kayıt Girdileri"
"@X:\\Windows\\Tmp_SYSTEM32\\setupapi.dll,-2000"="Kur Bilgileri"
"@X:\\Windows\\Tmp_SYSTEM32\\notepad.exe,-469"="Metin Belgesi"
"@X:\\Windows\\Tmp_SYSTEM32\\windows.storage.dll,-10152"="Dosya klasörü"
"@windows.storage.dll,-8517"="Ye&ni pencerede aç"

you replaced wrong key paths.


use HKEY_LOCAL_MACHINE\SYSTEM\ => HKEY_LOCAL_MACHINE\tmp_SYSTEM\
then SYSTEM => tmp_SYSTEM


点评

感谢您的耐心回答。 我今天去修理。 好吧,我该如何插入磁盘。 PECMD无法加载驱动程序  详情 回复 发表于 2019-10-17 23:19
回复

使用道具 举报

2270#
 楼主| 发表于 2019-10-17 21:26:54 | 只看该作者
青青草 发表于 2019-10-17 21:22
谢谢!
老大辛苦了!
最新开发版本从哪下载?

首页有说,

======================================================
关于最新开发版

1. 从github下载最新开发版代码
https://github.com/slorelee/wimbuilder2/archive/master.zip
2. 从主题附件,或者https://github.com/slorelee/wimbuilder2/releases页面,下载包含vendor文件夹的最新完整版。
3. 只需将vendor文件夹复制至【步骤1】解压目录即可。

======================================================
回复

使用道具 举报

2271#
 楼主| 发表于 2019-10-17 21:28:36 | 只看该作者
我是小青蛙 发表于 2019-10-17 21:11
复制注册表替换启动了试了下,是DEFAUTL的注册表,我的PE的注册表跟wimbuilder2创建的PE可以互相替换不 ...

Z:\WimBuilder2\Projects\WIN10XPE\01-Components\00-Shell\Shell_RegDefault.reg

不知道有关系没。

点评

我用的DEFAULT注册表包含我的个性化设置 桌面小图标 大任务栏 时间显示秒星期 自动排列图标 资源管理器此电脑展开显示 硬盘文件平铺 不显示隐藏文件。  详情 回复 发表于 2019-10-19 20:30
正在比对测试  详情 回复 发表于 2019-10-17 21:39
回复

使用道具 举报

2272#
发表于 2019-10-17 21:39:15 | 只看该作者
slore 发表于 2019-10-17 21:28
Z:\WimBuilder2\Projects\WIN10XPE\01-Components\00-Shell\Shell_RegDefault.reg

不知道有关系没。

正在比对测试
回复

使用道具 举报

2273#
发表于 2019-10-17 22:02:58 | 只看该作者
本帖最后由 saiz 于 2019-10-17 22:11 编辑
slore 发表于 2019-10-17 20:40
PECMD的代码我也不懂,都是东拼西凑的。

给你说下多用户的启动顺序,你自己体会下,我的构架是按Windo ...


PECMDADMIN.INI內的LOAD PECMD.INI,原來是給SYSTEM用的
註解掉 切到SYSTEM都沒explorer.exe 也沒跑pecmd.ini

点评

上面说了啊。Admin用户是由 userinit注册表调用PECMD.ini的。 这里就是 WaitSession('SYSTEM')或者选择 SYSTEM用户时,调用。  详情 回复 发表于 2019-10-17 22:11
回复

使用道具 举报

2274#
 楼主| 发表于 2019-10-17 22:11:37 | 只看该作者
saiz 发表于 2019-10-17 22:02
找到錯誤了.自己手殘改到PECMD.INI內的FIND $%USERNAME%=SYSTEM,EXEC %WinDir%\explorer.exe,
=變==就出 ...


上面说了啊。Admin用户是由 userinit注册表调用PECMD.ini的。

这里就是 WaitSession('SYSTEM')结束,或者直接选择 SYSTEM用户时,调用。
回复

使用道具 举报

2275#
发表于 2019-10-17 22:26:48 | 只看该作者
本帖最后由 wchongy 于 2019-10-17 22:47 编辑

请问,system32下的pecmd.log日志是调用那个文件生成的!我想取消这个log的生成,该怎么修改

点评

pecmd.ini 开头的 LOGS去掉  发表于 2019-10-17 22:52
回复

使用道具 举报

2276#
发表于 2019-10-17 23:19:52 | 只看该作者
本帖最后由 gazi06 于 2019-10-17 23:23 编辑
slore 发表于 2019-10-17 21:23
WimBuilder2 will auto RegCopy Wow6432Node\CLSID, Wow6432Node\Interface.


thank you for your patience answers. I'll fix them today.
how can i add IMDISK. PECMD failed to load driver
回复

使用道具 举报

2277#
发表于 2019-10-18 03:29:21 | 只看该作者
When I start the system with lua kill explorer command does not work. how can I solve this problem.

点评

exec('/hide', 'taskkill /f /im explorer.exe') for now. lua_helper/shell_helper.lua,you can copy Taskbar:Wait ForReady()'s code, write a Taskbar:Close() function with sending WM_CLOSE message.  详情 回复 发表于 2019-10-18 07:40
回复

使用道具 举报

2278#
 楼主| 发表于 2019-10-18 07:40:18 | 只看该作者
本帖最后由 slore 于 2019-10-18 07:42 编辑
gazi06 发表于 2019-10-18 03:29
When I start the system with lua kill explorer command does not work. how can I solve this problem.


exec('/hide', 'taskkill /f /im explorer.exe') for now.

lua_helper/shell_helper.lua,you can copy Taskbar:WaitForReady()'s code, write a Taskbar:Close() function with sending WM_CLOSE message.

点评

kill explorer command is available in many applications we use. is there a way to make the lua system compatible with this code instead of changing them one by one? for example, it was stuck in the  详情 回复 发表于 2019-10-18 15:38
回复

使用道具 举报

2279#
发表于 2019-10-18 14:13:59 来自手机 | 只看该作者
Win10的任务栏电源图标资源是哪个文件里???

点评

我用的PE启动管理器是Lua,修改了 \WimBuilder2-Full.2019-10-10\Projects\WIN10XPE\_CustomFiles_\PEMaterial\Autoruns\Startup\00-InitPinIcons.lua 注释了这一行 Taskbar:Pin('%ProgramFiles%\\WinXShell\\WinX  详情 回复 发表于 2019-10-24 14:39
回复

使用道具 举报

2280#
发表于 2019-10-18 14:15:53 来自手机 | 只看该作者
wchongy 发表于 2019-10-17 22:26
请问,system32下的pecmd.log日志是调用那个文件生成的!我想取消这个log的生成,该怎么修改

pecmd.ini  这个文件生成的,貌似在第一行。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-7 16:48

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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