无忧启动论坛

 找回密码
 注册
搜索
WEPE笔记本电脑手机维修小包 IT发烧友的必备工具最纯净的「微PE装机优盘」UEPON大师作品卡瑞飞系统和装机二合一超级U盘
杏雨梨云专业量产版USB-CD启动U盘,装机专用系统gho:最纯净好用系统下载站广告联系 QQ:184822951 微信:wuyouceo
查看: 9415|回复: 55

[分享] 手把手一起做WIN10维护PE,有渔也有鱼

    [复制链接]
发表于 2016-7-6 22:39:05 | 显示全部楼层 |阅读模式
本帖最后由 slore 于 2016-8-30 21:36 编辑

----------------------------------------------------------------------
XP时代之后的PE都太大了,就没有自己编辑过PE了,拿来主义很省事。
最近做了个WIM构建框架,发现编辑起来比想象中容易很多,
这个帖子将在boot.wim的基础上,一步步补充我想要的功能。
并给出这些功能的PATCH目录。
希望各位可以更加了解WIM_Builder的设计和用法,最最主要的是
抛砖引玉,希望大家可以分享PE修改PATCH。
----------------------------------------------------------------------

首先,列出一个维护PE,我想要的功能。

  • 安装系统
  • 访问文件系统,备份文件
  • 硬盘分区/格式化等
  • 小巧些,删除无用的功能组件
  • 网络功能


除了网络,boot.wim基本上满足了维护要用的基本功能(cmd/diskpart)。

访问文件系统,我们可以打开“记事本”-> 文件 -> 打开文件,进行选择。
但是仍有不方便的地方。

  • 无法查看文件/文件夹属性
  • 设置安全权限,删除文件
  • 打开多个窗口复杂
  • 无法进行拖拽
  • 复制文件没有进度条显示
  • 不能最小化任务
  • 任务切换不方便
  • 无法快速启动程序


第一步,方便文件操作,任务切换,我们先加入个简单的SHELL+文件资源管理器吧。
shell的选择:bblean,EmergeDesktop,PExlorer等。
文件资源管理器:explorer.exe++,XYplorer等。

这里我用PExlorer.exe,因为直接运行就可以,方便,也不用集成到内核。
以下是PExlorer的补丁。



  1. PExlorer
  2. |   DEL_FILES.txt  <- 内容为:Windows\System32\WallpaperHost.exe
  3. |   LAST.bat
  4. |
  5. \---X
  6.     \---Windows
  7.         \---System32
  8.                 PExlorer.jcfg
  9.                 PExlorer_x64.exe
  10.                 PExlorer_x86.exe
  11.                 wallpaper.jpg
复制代码


LAST.bat

  1. if "%PB_PE_ARCH%"=="x64" (
  2.   del X:\Windows\System32\PExlorer_x86.exe
  3. ) else (
  4.   del X:\Windows\System32\PExlorer_x64.exe
  5. )
  6. ren X:\Windows\System32\PExlorer_%PB_PE_ARCH%.exe PExlorer.exe

复制代码

这个PATCH运行的话,会复制PExlorer到System32下,并删除掉内核的WallpaperHost.exe,
LAST批处理会根据内核体系结构删除掉无用的文件并改名对应x86/x64版本的为PExlorer.exe

如果只这样我们构建出来的boot.wim还是启动到系统安装界面,
光加入文件不行,boot.wim的启动对象我们也改改。

boot.wim的启动顺序简单如下:
winpeshl.exe -> wallpaperhost.exe (不使用PExlorer的话,这个程序不删除,会被winpeshl.exe调起来,显示壁纸)
             -> winpeshl.ini
             -> setup.exe
             -> startnet.cmd (不存在setup.exe, winpeshl.ini)

所以我们写个启动PATCH。


  1. PE_Startup
  2. |   INIT.bat         <- 复制startnet.cmd到System32下,复制PEconfig到X盘根目录
  3. |   DEL_FILES.txt    <- 内容为:setup.exe
  4. |   startnet.cmd     <- wpeinit.exe后调用X:\PEConfig\INIT.bat
  5. |
  6. \---PEConfig
  7.         INIT.bat     <- 启动处理
复制代码


PEConfig\INIT.bat

  1. rem add for PExlorer.exe
  2. if exist X:\Windows\System32\WallpaperHost.exe (
  3.   taskkill /f /im WallpaperHost.exe
  4. )
  5. set USERPROFILE=X:\Users\Default
  6. start PExlorer.exe -winpe
复制代码



运行WIM_Builder构建启动镜像,此时我们应该看到桌面和一个命令提示符画面了。
但是此时按WIN+E不能打开我的电脑,因为PExlorer使用的是高版本的“文件打开对话框”模拟
文件资源管理器操作,记事本这种可以使用低版本“文件打开对话框”外,系统的
任务管理器,WIN+R运行的浏览按钮是无法使用的。

这里有2个方向,第一,使用explorer.exe++之类的第3方程序(走这条路太没意思了),
第二,我们来研究下如何使PE可以使用新版的“文件打开对话框”。

=================================================================================
后续的PATCH及更新会上传到以下地址
链接: http://pan.baidu.com/s/1kVwbKOZ 密码: k6ut (2016/08/30补链接)
无特殊说明,提供的PATCH为通用补丁,应该不限体系结构(x86/x64),不限语言,不限系统版本,适当修改config.ini进行构建
=================================================================================

评分

参与人数 4无忧币 +20 收起 理由
yimingnet + 5 赞一个!
天使的魔翼 + 5 很给力!
2013wuy2013 + 5 对PE拓展很有教学意义的文章!赞一个!
xzf680 + 5 很给力!科普赞一个!

查看全部评分

发表于 2016-7-7 16:53:49 | 显示全部楼层
其实,我只要XP那样简单风格的SHELL, 任务栏+桌面+资源管理器, 第三方的,如果好用,我要原版做什么?

任务栏, 目前这个基本可以,如果可以加个目录到任务栏就好了, 原版的可以弄个目录动任务栏,里面可以再建目录,可以放快捷方式,文件,用来做"开始菜单"
8,10我都是这么弄的,除了位置靠近系统托盘,其它没什么,用惯了就好了. 我链接在系统根目录"开始"目录.

桌面,原版SHELL的习惯了拖放个文件,右键什么的.  
资源管理器,XP那个比较习惯.(其实是:我的电脑 ,平时是直接打开我的电脑,而不是资源管理器), 如果实现打开目录功能, 和原版SHELL差不了多少文件了

点评

希望可以提供原版SHELL的PATCH目录。 自然有很多已经实现系统原版的explorer.exe,但是文件还有很多才稳定,而且注册表要添加的项目更复杂。 还有系统的explorer目前WIN+D没人解决,很不方便。还有窗口的按  详情 回复 发表于 2016-7-7 21:54
开始菜单可以使用ClassicShell。加目录的话,不多的话直接放到快速启动栏目录。 其实左边的导航树还挺方便的。可以删除中间文件夹,在#2楼补充了注册表内容。  发表于 2016-7-7 21:49
回复

使用道具 举报

 楼主| 发表于 2016-7-6 22:39:31 | 显示全部楼层
本帖最后由 slore 于 2016-7-7 21:46 编辑

第一个内核PATCH---文件打开对话框(NewFileOpenDlg)

渔:
如何知道内核需要补充那些文件?

a.论坛搜索,互联网搜索
——没找到。(懒不了了-。-)

b.是否是未解决问题
NO,是个PE任务管理器都可以打开浏览窗口。

OK,那我们来偷吧。

找一个此功能有效PE(假设叫OKPE.wim),获取System32的文件列表,
和boot.wim的System32比较,看看都加了什么文件。

例如:

  1. apphelp.dll
  2. audiodg.exe
  3. AudioEng.dll
  4. ...
  5. ExplorerFrame.dll
  6. ...
  7. PECMD.exe
  8. ...
  9. wlandlg.dll
  10. WLanConn.dll
  11. ...
复制代码


我找的带这个功能的是有声音和网络功能的,所以列表下来100+,头疼。。。

WIM_Builder新建一个工程:FileOpenDlg
config.ini中配置基础PE文件为OKPE.wim

建立一个DEL_FILES.txt,记录上述文件列表,补足路径并开头加分号。

  1. ;Windows\System32\apphelp.dll
  2. ;Windows\System32\audiodg.exe
  3. ;Windows\System32\AudioEng.dll
  4. ...
  5. ;Windows\System32\ExplorerFrame.dll
  6. ...
  7. ;Windows\System32\PECMD.exe
  8. ...
  9. ;Windows\System32\wlandlg.dll
  10. ;Windows\System32\WLanConn.dll
  11. ...
复制代码


把自己知道的肯定和这个功能没关系的文件前面的分号去掉。

保存,构建,测试功能是否有效。

有效,这些文件删除不影响我们要的功能,去掉分号的号移动到文件末尾(记得住,不移动也行)

无效的话,自己判断失误,有必要文件被删除了,通过加分号保留,再构建,来确定。

固态硬盘上,基本上30秒可以构建一次,20~30个文件左右后,大概1小时可以确定出来必要文件了。

鱼1:
经过不断尝试,得出了新版打开文件对话框需要的文件列表如下:

NewOpenDlg:
ADD_ITEMS.txt

  1. Windows\System32\ExplorerFrame.dll
  2. Windows\System32\shellstyle.dll
  3. Windows\System32\StructuredQuery.dll

  4. ;some version of WIN10 need this file,
  5. ;some version will broke if have this file.
  6. Windows\System32\edputil.dll
复制代码


注意:如文件列表的注释,有的内核需要edputil.dll否则错误,有的则不能存在edputil.dll否则错误。
     10586需要此文件,10240不需要此文件,默认PATCH会改名为edputil_dll替换到内核,如果错误,
     可能内核中运行ren edputil_dll edputil.dll来,把这个PATCH放到我们的MaintPE工程下面吧。

构建,运行,WIN+E
...
...
...
没有反映,任务管理器,新建,浏览
...
...
...
仍然没有反映。

好吧,看来这个机能只加文件是不行的,应该还缺注册表。
那么问题来了,
如何知道内核需要补充那部分注册表信息呢?

a.论坛搜索,互联网搜索
——没找到。(懒不了了-。-)

b.是否是未解决问题
NO,是个PE任务管理器都可以打开浏览窗口。

好吧,那么这个能运行的PE的差分我们搞出来就好了吧,
确实是的,但是内容太多了,差分作为我们后续手段吧。

一个dll一般会在注册表的CLSID中注册,并有文件位置信息,
我们在能运行的PE或者正常系统下搜素上面补充的几个DLL试试。


哈哈,狗屎运(后面测试通过咯),只要补充ExplorerFrame.dll的注册表项目就可以了。



鱼2:
完整的文件打开对话框(NewFileOpenDlg)PATCH

NewOpenDlg:
ADD_ITEMS.txt

  1. Windows\System32\ExplorerFrame.dll
  2. Windows\System32\shellstyle.dll
  3. Windows\System32\StructuredQuery.dll

  4. ;some version of WIN10 need this file,
  5. ;some version will broke if have this file.
  6. Windows\System32\edputil.dll
复制代码


NewOpenDlg.reg

  1. Windows Registry Editor Version 5.00

  2. ;explorerframe.dll
  3. [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{056440FD-8568-48e7-A632-72157243B55B}]
  4. @="Explorer Navigation Bar"
  5. [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{056440FD-8568-48e7-A632-72157243B55B}\InProcServer32]
  6. @=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  7.   00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,65,00,78,00,\
  8.   70,00,6c,00,6f,00,72,00,65,00,72,00,66,00,72,00,61,00,6d,00,65,00,2e,00,64,\
  9.   00,6c,00,6c,00,00,00
  10. "ThreadingModel"="Apartment"

  11. [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{AE054212-3535-4430-83ED-D501AA6680E6}]
  12. @="Shell Name Space ListView"
  13. [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{AE054212-3535-4430-83ED-D501AA6680E6}\InProcServer32]
  14. @=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  15.   00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,65,00,78,00,\
  16.   70,00,6c,00,6f,00,72,00,65,00,72,00,66,00,72,00,61,00,6d,00,65,00,2e,00,64,\
  17.   00,6c,00,6c,00,00,00
  18. "ThreadingModel"="Apartment"
  19. ;@="X:\\Windows\\system32\\explorerframe.dll"
复制代码


来,把这个PATCH放到我们的MaintPE工程下面吧。
构建,运行,WIN+E,OK可以看到我的电脑的内容了。


补充:
修改我的电脑打开默认内容

中间不显示用户文件夹
NoUserFolders.reg

  1. Windows Registry Editor Version 5.00

  2. ;remove Downloads
  3. [-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{088e3905-0323-4b02-9826-5d99428e115f}]
  4. ;remove Pictures
  5. [-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{24ad3ad4-a569-4530-98e1-ab02f9417aa8}]
  6. ;remove Music
  7. [-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{3dfdf296-dbec-4fb4-81d1-6a3438bcf4de}]
  8. ;remove Documents
  9. [-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{d3162b92-9365-467a-956b-92703aca08af}]
  10. ;remove Videos
  11. [-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{f86fa3ab-70d2-4fc7-9c99-fcbf05467f3a}]
  12. ;remove Destop
  13. [-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}]
复制代码


左侧快速访问:
PE下修改好后,复制以下文件:
X:\Users\Default\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations\f01b4d95cf55d32a.automaticDestinations-ms

PEConfig\INIT.bat添加2行导入注册表和复制文件的命令即可。
效果如图:
MyComputerView.png

点评

在此基础上添加Dism等部署工具,支持分区,网络就已经很好,网络按需添加  详情 回复 发表于 2016-9-1 15:19
回复

使用道具 举报

 楼主| 发表于 2016-7-6 22:41:15 | 显示全部楼层
本帖最后由 slore 于 2016-7-7 15:49 编辑

文件拖拽功能
  • 桌面图标拖拽移动
  • 拖拽复制/移动/删除文件
  • 拖拽到应用程序
  • 拖拽到命令提示符,文本框




注意:Windows 10之前的boot.wim(例如:Win8.1)本来就可以拖拽可跳过此楼PATCH。

如法炮制,我们可以得到图标拖拽需要的文件列表如下:

  1. Windows\System32\d3d11.dll
  2. Windows\System32\DataExchange.dll
  3. Windows\System32\dcomp.dll
  4. Windows\System32\dxgi.dll
  5. Windows\System32\ksuser.dll
复制代码


做一个ADD_ITEMS.txt试试加到我们的MaintPE中。
...
...
...
果然不能用还得加点注册表料啊。

老方法搜索添加的dll文件名,发现同样CLSID下面有DataExchange.dll的定义,
我们加下注册表。

DragAndDrop.reg

  1. Windows Registry Editor Version 5.00

  2. ;dataexchange.dll
  3. [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{9FC8E510-A27C-4B3B-B9A3-BF65F00256A8}]
  4. [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{9FC8E510-A27C-4B3B-B9A3-BF65F00256A8}\InProcServer32]
  5. @=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  6.   00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,64,00,61,00,\
  7.   74,00,61,00,65,00,78,00,63,00,68,00,61,00,6e,00,67,00,65,00,2e,00,64,00,6c,\
  8.   00,6c,00,00,00
  9. "ThreadingModel"="Both"
复制代码


再构建,测试,发现还不行。
考虑是否地方要引用这个CLSID,我们搜索下:
{9FC8E510-A27C-4B3B-B9A3-BF65F00256A8}

bingo!补充下面项目即可。

  1. ;need update ACL rights for offline importing.
  2. ;or you can add this on WinPE startup.
  3. [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole\Extensions]
  4. "DragDropExtension"="{9FC8E510-A27C-4B3B-B9A3-BF65F00256A8}"
复制代码


注意:如注释所述,此项目离线导入是需要更新权限,
     此项目进入PE导入也可以生效。

MaintPE就是在PEConfig\INIT.bat导入此项目。
回复

使用道具 举报

 楼主| 发表于 2016-7-6 22:41:43 | 显示全部楼层
本帖最后由 slore 于 2016-7-7 22:03 编辑

文件/文件夹属性显示
  • 文件/文件夹属性
  • 多个文件/文件夹属性
  • 磁盘驱动器属性
  • 回收站属性


如法炮制,我们可以得到查看文件属性列表如下:

  1. Windows\System32\actxprxy.dll
  2. Windows\System32\apphelp.dll
  3. ;need for "security" tab
  4. Windows\System32\rshx32.dll
复制代码


做一个ADD_ITEMS.txt试试加到我们的MaintPE中。
...
...
...
果然不能用还得加点注册表料啊。

老方法搜索添加的dll文件名,发现同样在CLSID下面有actxprxy.dll和
rshx32.dll的定义,同时搜索下关联的CLSID,发现有几处,
我们一同加入到注册表中。

Prop.reg


  1. [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shellex\PropertySheetHandlers\{1f2e5c40-9550-11ce-99d2-00aa006e086c}]
  2. [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shellex\PropertySheetHandlers\{1f2e5c40-9550-11ce-99d2-00aa006e086c}]

  3. [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\{1f2e5c40-9550-11ce-99d2-00aa006e086c}]
  4. @="rshx32.dll"
  5. "AccessPermission"=hex:01,00,04,80,60,00,00,00,70,00,00,00,00,00,00,00,14,00,\
  6.   00,00,02,00,4c,00,03,00,00,00,00,00,14,00,03,00,00,00,01,01,00,00,00,00,00,\
  7.   05,12,00,00,00,00,00,14,00,07,00,00,00,01,01,00,00,00,00,00,05,0a,00,00,00,\
  8.   00,00,14,00,03,00,00,00,01,01,00,00,00,00,00,05,04,00,00,00,cd,cd,cd,cd,cd,\
  9.   cd,cd,cd,01,02,00,00,00,00,00,05,20,00,00,00,20,02,00,00,01,02,00,00,00,00,\
  10.   00,05,20,00,00,00,20,02,00,00
  11. "DllSurrogate"=""
  12. "LaunchPermission"=hex:01,00,04,80,78,00,00,00,88,00,00,00,00,00,00,00,14,00,\
  13.   00,00,02,00,64,00,04,00,00,00,00,00,14,00,1f,00,00,00,01,01,00,00,00,00,00,\
  14.   05,12,00,00,00,00,00,18,00,1f,00,00,00,01,02,00,00,00,00,00,05,20,00,00,00,\
  15.   20,02,00,00,00,00,14,00,1f,00,00,00,01,01,00,00,00,00,00,05,04,00,00,00,00,\
  16.   00,14,00,0b,00,00,00,01,01,00,00,00,00,00,05,12,00,00,00,cd,cd,cd,cd,cd,cd,\
  17.   cd,cd,01,02,00,00,00,00,00,05,20,00,00,00,20,02,00,00,01,02,00,00,00,00,00,\
  18.   05,20,00,00,00,20,02,00,00

  19. [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{1f2e5c40-9550-11ce-99d2-00aa006e086c}]
  20. @="Security Shell Extension"
  21. "AppId"="{1f2e5c40-9550-11ce-99d2-00aa006e086c}"
  22. "LocalizedString"=hex(2):40,00,25,00,73,00,79,00,73,00,74,00,65,00,6d,00,72,00,\
  23.   6f,00,6f,00,74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,\
  24.   00,5c,00,72,00,73,00,68,00,78,00,33,00,32,00,2e,00,44,00,4c,00,4c,00,2c,00,\
  25.   2d,00,35,00,39,00,00,00

  26. [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{1f2e5c40-9550-11ce-99d2-00aa006e086c}\Elevation]
  27. "Enabled"=dword:00000001
  28. "IconReference"=hex(2):40,00,25,00,73,00,79,00,73,00,74,00,65,00,6d,00,72,00,\
  29.   6f,00,6f,00,74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,\
  30.   00,5c,00,69,00,6d,00,61,00,67,00,65,00,72,00,65,00,73,00,2e,00,64,00,6c,00,\
  31.   6c,00,2c,00,2d,00,33,00,00,00

  32. [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{1f2e5c40-9550-11ce-99d2-00aa006e086c}\InProcServer32]
  33. @=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  34.   00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,72,00,73,00,\
  35.   68,00,78,00,33,00,32,00,2e,00,64,00,6c,00,6c,00,00,00
  36. "ThreadingModel"="Apartment"

  37. [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{9BA05972-F6A8-11CF-A442-00A0C90A8F39}]
  38. @="ShellWindows"
  39. "AppId"="{9BA05972-F6A8-11CF-A442-00A0C90A8F39}"

  40. [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{C90250F3-4D7D-4991-9B69-A5C5BC1C2AE6}]
  41. @="PSFactoryBuffer"

  42. [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{C90250F3-4D7D-4991-9B69-A5C5BC1C2AE6}\InProcServer32]
  43. @="X:\\Windows\\System32\\ActXPrxy.dll"
  44. "ThreadingModel"="Both"

  45. [HKEY_LOCAL_MACHINE\PE_SOFT\Classes\Interface\{08DE05E1-94B8-4A17-A27C-004771A6D3A4}]
  46. @="IStreamGroup"
  47. [HKEY_LOCAL_MACHINE\PE_SOFT\Classes\Interface\{08DE05E1-94B8-4A17-A27C-004771A6D3A4}\ProxyStubClsid32]
  48. @="{fd7f2b29-24d0-4b5c-b177-592c39f9ca10}"

  49. [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{504B27AA-001F-4179-9AD0-663A37C317A9}]
  50. @="ICheckDiskDialog"

  51. [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{504B27AA-001F-4179-9AD0-663A37C317A9}\ProxyStubClsid32]
  52. @="{C90250F3-4D7D-4991-9B69-A5C5BC1C2AE6}"

  53. [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{B0371994-3FA6-4AB5-BD72-B3479FE90894}]
  54. @="IPropertySheetHandler"

  55. [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{B0371994-3FA6-4AB5-BD72-B3479FE90894}\ProxyStubClsid32]
  56. @="{C90250F3-4D7D-4991-9B69-A5C5BC1C2AE6}"
复制代码


再构建,测试,发现还不行。(这都是套路啊。。。回回这样,能不能一次加成功)

这时该怎么办呢?(这里搞了2天-。-)

先确定是不是注册表的问题,我们用OKPE.wim的SOFTWARE替换,
测试。发现确实可以显示了,那就是注册表了。
(这里有个小插曲,我先精简了WinSxs,结果写错为了,丢了2个目录,
x86_microsoft.windows.c..-controls.resources_6595b64144ccf1df_5.82.10586.0_zh-cn_f6ad7353800c302a
x86_microsoft.windows.c..-controls.resources_6595b64144ccf1df_6.0.10586.0_zh-cn_4954983c79a25127
这2个目录没有,注册表完全替换了也没用!当时我不知道,把想到APPID,CLSID,CLASSIC,MICROSOFT,INTERFACE,
几个大项一个个试试了边,最后整个System32目录替换掉了都没有成功显示
文件属性,直到我把Windows整个目录一个个都替换了,才发现是WinSxs精简失误。
所以重要的事情说一下:没有前人开路,精简放到最后做!)

既然,整个SOFTWARE可以用,我们就导出些关键项试试:
APPID.reg
CLSID.reg
INTERFACE.reg
CLASSIC.reg
MICROSOFT.reg

崩溃不行?哎,全部导入算了,ALL.reg,构建,启动测试。
...
...
...
什么,竟然没有用!
等等,完全替换SOFTWARE可以用,用reg文件却不可以?
哪里有问题?

思考1.权限不对?部分项目没写入?(导入命令没有提示权限错误)
思考2.难道注册表多内容也不行?

回忆下,一条龙手动做PE的时候,有说删除注册表的
"RunAs"="Interactive User"

也没见谁将过为什么,这种知其然而不知其所以然我自然也没有去做,
那么,我们现在来看看是不是这个原因,导出2份注册表信息进行比较,
看看有没有"RunAs"被删除的项目。

诶,只看差异部分,立马我们可以找到还确实有一项。
[HKEY_LOCAL_MACHINE\PE_SOFTWARE\Classes\AppID\{448aee3b-dc65-4af6-bf5f-dce86d62b6c7}]

我们bing一下{448aee3b-dc65-4af6-bf5f-dce86d62b6c7},有关于
WIN10下管理者不能查看属性的网页,甚至有这个,早看到就好了CRY。
http://www.ghisler.ch/board/viewtopic.php?t=42571

这里证实了,"RunAs"="Interactive User"删除的必要性,
但是所有都删除是否有必要,自己可以斟酌处理。

至此,我们可以得到显示文件属性的"鱼"了。

FileProperty
  +ADD_ITEMS.txt
  +FileProperty.reg

ADD_ITEMS.txt

  1. Windows\System32\actxprxy.dll
  2. Windows\System32\apphelp.dll
  3. ;need for "security" tab
  4. Windows\System32\rshx32.dll
  5. ;mui
  6. Windows\System32\%PB_PE_LANG%\rshx32.dll.mui
复制代码



FileProperty.reg

  1. Windows Registry Editor Version 5.00

  2. [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shellex\PropertySheetHandlers\{1f2e5c40-9550-11ce-99d2-00aa006e086c}]
  3. [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shellex\PropertySheetHandlers\{1f2e5c40-9550-11ce-99d2-00aa006e086c}]

  4. [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\{1f2e5c40-9550-11ce-99d2-00aa006e086c}]
  5. @="rshx32.dll"
  6. "AccessPermission"=hex:01,00,04,80,60,00,00,00,70,00,00,00,00,00,00,00,14,00,\
  7.   00,00,02,00,4c,00,03,00,00,00,00,00,14,00,03,00,00,00,01,01,00,00,00,00,00,\
  8.   05,12,00,00,00,00,00,14,00,07,00,00,00,01,01,00,00,00,00,00,05,0a,00,00,00,\
  9.   00,00,14,00,03,00,00,00,01,01,00,00,00,00,00,05,04,00,00,00,cd,cd,cd,cd,cd,\
  10.   cd,cd,cd,01,02,00,00,00,00,00,05,20,00,00,00,20,02,00,00,01,02,00,00,00,00,\
  11.   00,05,20,00,00,00,20,02,00,00
  12. "DllSurrogate"=""
  13. "LaunchPermission"=hex:01,00,04,80,78,00,00,00,88,00,00,00,00,00,00,00,14,00,\
  14.   00,00,02,00,64,00,04,00,00,00,00,00,14,00,1f,00,00,00,01,01,00,00,00,00,00,\
  15.   05,12,00,00,00,00,00,18,00,1f,00,00,00,01,02,00,00,00,00,00,05,20,00,00,00,\
  16.   20,02,00,00,00,00,14,00,1f,00,00,00,01,01,00,00,00,00,00,05,04,00,00,00,00,\
  17.   00,14,00,0b,00,00,00,01,01,00,00,00,00,00,05,12,00,00,00,cd,cd,cd,cd,cd,cd,\
  18.   cd,cd,01,02,00,00,00,00,00,05,20,00,00,00,20,02,00,00,01,02,00,00,00,00,00,\
  19.   05,20,00,00,00,20,02,00,00

  20. [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{1f2e5c40-9550-11ce-99d2-00aa006e086c}]
  21. @="Security Shell Extension"
  22. "AppId"="{1f2e5c40-9550-11ce-99d2-00aa006e086c}"
  23. "LocalizedString"=hex(2):40,00,25,00,73,00,79,00,73,00,74,00,65,00,6d,00,72,00,\
  24.   6f,00,6f,00,74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,\
  25.   00,5c,00,72,00,73,00,68,00,78,00,33,00,32,00,2e,00,44,00,4c,00,4c,00,2c,00,\
  26.   2d,00,35,00,39,00,00,00

  27. [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{1f2e5c40-9550-11ce-99d2-00aa006e086c}\Elevation]
  28. "Enabled"=dword:00000001
  29. "IconReference"=hex(2):40,00,25,00,73,00,79,00,73,00,74,00,65,00,6d,00,72,00,\
  30.   6f,00,6f,00,74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,\
  31.   00,5c,00,69,00,6d,00,61,00,67,00,65,00,72,00,65,00,73,00,2e,00,64,00,6c,00,\
  32.   6c,00,2c,00,2d,00,33,00,00,00

  33. [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{1f2e5c40-9550-11ce-99d2-00aa006e086c}\InProcServer32]
  34. @=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  35.   00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,72,00,73,00,\
  36.   68,00,78,00,33,00,32,00,2e,00,64,00,6c,00,6c,00,00,00
  37. "ThreadingModel"="Apartment"

  38. [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{9BA05972-F6A8-11CF-A442-00A0C90A8F39}]
  39. @="ShellWindows"
  40. "AppId"="{9BA05972-F6A8-11CF-A442-00A0C90A8F39}"

  41. [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{C90250F3-4D7D-4991-9B69-A5C5BC1C2AE6}]
  42. @="PSFactoryBuffer"

  43. [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{C90250F3-4D7D-4991-9B69-A5C5BC1C2AE6}\InProcServer32]
  44. @="X:\\Windows\\System32\\ActXPrxy.dll"
  45. "ThreadingModel"="Both"

  46. [HKEY_LOCAL_MACHINE\PE_SOFT\Classes\Interface\{08DE05E1-94B8-4A17-A27C-004771A6D3A4}]
  47. @="IStreamGroup"
  48. [HKEY_LOCAL_MACHINE\PE_SOFT\Classes\Interface\{08DE05E1-94B8-4A17-A27C-004771A6D3A4}\ProxyStubClsid32]
  49. @="{fd7f2b29-24d0-4b5c-b177-592c39f9ca10}"

  50. [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{504B27AA-001F-4179-9AD0-663A37C317A9}]
  51. @="ICheckDiskDialog"

  52. [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{504B27AA-001F-4179-9AD0-663A37C317A9}\ProxyStubClsid32]
  53. @="{C90250F3-4D7D-4991-9B69-A5C5BC1C2AE6}"

  54. [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{B0371994-3FA6-4AB5-BD72-B3479FE90894}]
  55. @="IPropertySheetHandler"

  56. [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{B0371994-3FA6-4AB5-BD72-B3479FE90894}\ProxyStubClsid32]
  57. @="{C90250F3-4D7D-4991-9B69-A5C5BC1C2AE6}"

  58. ;this(PE_SOFTWARE) isn't a typo, WIM_Builder will also import this to offline hive file.
  59. ;need update ACL rights for offline importing.
  60. ;or you can add this on WinPE startup.(PE_SOFTWARE->SOFTWARE)
  61. [HKEY_LOCAL_MACHINE\PE_SOFTWARE\Classes\AppID\{448aee3b-dc65-4af6-bf5f-dce86d62b6c7}]
  62. ;"RunAs"="Interactive User"
  63. "RunAs"=-
复制代码


遗留问题,选项卡改变所有者会提示无法打开控制程序,看来还是缺点什么。(解决不了就右键加个命令行)
回复

使用道具 举报

 楼主| 发表于 2016-7-6 22:42:05 | 显示全部楼层
本帖最后由 slore 于 2018-1-27 17:09 编辑

复制文件时的进度条

本帖最后由 slore 于 2016-07-08 20:40 编辑

ADD_ITEMS.txt
  1. Windows\System32\chartv.dll
复制代码


REG-REDUCE.png


CopyProgressBar_INTERFACE_REG.zip (180.16 KB, 下载次数: 27)
回复

使用道具 举报

 楼主| 发表于 2016-7-6 22:42:21 | 显示全部楼层
添加应用程序
回复

使用道具 举报

 楼主| 发表于 2016-7-6 22:42:48 | 显示全部楼层
本帖最后由 slore 于 2016-7-6 22:46 编辑

通过ADK添加网络功能

点评

最关心的是添加网络功能,adk。 史上最好的教程贴之一。  详情 回复 发表于 2017-10-18 13:34

评分

参与人数 1无忧币 +5 收起 理由
freesoft00 + 5

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2016-7-6 22:42:52 | 显示全部楼层
占一楼备用
回复

使用道具 举报

发表于 2016-7-6 23:18:10 | 显示全部楼层
史上最好帖子之一。
楼主高人,能耐心科普,鱼渔兼备,更难得。

小建议:
“固态硬盘上,基本上30秒可以构建一次,20~30个文件左右后,大概1小时可以确定出来必要文件了。”
考虑一次构建一批供测试,下一批基于上一批结果。
设法利用正交试验法之类,或许不用1小时。

点评

这里是抛砖啦,我机器上就这个速度也可以了,其实过了一遍,很多功能的必要文件都可以出来。 批量的话,根据结果整理也是很麻烦的一件事,这里做一点确认一点。  发表于 2016-7-6 23:51
构建后,启动确认的时候(也得1分钟),整好这个时候改下一行分号新的构建就生成了。 批量是可以,全生成出来了,一个个看的时间没有利用,同时硬盘占的很厉害。  发表于 2016-7-6 23:48
回复

使用道具 举报

发表于 2016-7-6 23:25:22 来自手机 | 显示全部楼层
楼主辛苦,支持动手,支持技术分享。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2019-7-17 02:58

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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