书接上回 全网首发,自制ADK To Win11PE(1)中文+包
我这里用的win11版本是10.0.22621.963(22H2)
pe的制作其实就是文件和注册表的修改加入而已,难谈不上,就是烦
本文讲的就是加入explorer中的文件和注册表操作,可能仅适用于Win11,win10也许适用(11和10的内核一样)
Win11PE加入explorer
1.权限更改
开始之前请改权限,包括之后的注册表都一样要改权限,防止遇到各种拒绝访问的情况。以%PE%的目录WinPE_amd64
为例,右键-属性-安全-高级
修改权限总步骤如下,这个是最全面最管用的步骤:
1.1更改所有者为当前用户
点击所有者旁边蓝色的更改,然后直接看图操作,选择这个只有一个小人的Administrator
(你当前用户名)
1.2替换子容器所有者
确定完回到总步骤的那个窗口,勾上替换子容器和对象的所有者
1.3继承
勾选使用可从此对象继承的权限项目替换所有子对象的权限项目
1.4添加当前用户权限
点击添加,选择主体,勾选完全控制,看下图
最后按改完图中的确定就行,弹出来的窗口都点是就行
1.5补充
1.因为接下来就要添加explorer等功能缺失的文件了,同版本的官方正常镜像是必不可少的(如都是10.0.22621),可以去新版MSDN登录后用迅雷下载。
2.注意ADK的描述,如下载时为22H2版本的64位win11ADK,就要下载22H2版本的64位business Win11(consumer版本好像是缺功能)。
3.解压官方镜像的sources\install.wim
出来的Win11Pro
目录也要改权限,解压命令类似imagex /apply install.wim 3 D:\Win11Pro
(卷3为专业版),为了便于操作,该目录我也加到了环境变量mount11
。
4.如版本不一样继续操作的话在个人对比成品PE注册表和bcompare对比成品PE看缺失文件时会很难受,也可以重新换用Win11Pro\Windows\System32\Recovery
下的winre.wim,这个的版本与正常OS肯定一样,就是文件大了点,再按照上篇文章操作加入包和中文就可以接着淦了。
5.用regedit操作注册表的权限时,如果出现"注册表编辑器无法在当前所选的项及其部分子项上设置安全性"之类的提示,大多是按照本文方法去修改Win10PE的注册表出现的,只需要关掉regedit去Registry Workshop再设置一边所有者就行。
6.这个权限的修改操作得刻进DNA里面,因为后面用的比较多
2.文件加入
文件加入有三种可以学习的办法,淦出来的列表中文件能不替换还是尽量别替换,具体看文中阐述。每一个方法都有自己的特点,都值得学习。
2.1 tasklist
tasklist命令可以准确分析出进程运行时所用的DLL文件,可以用于分析explorer.exe
的依赖,但有些dll分析出来如系统核心的ntdll.dll这种不替换也是亲测可运行的。
2.1.1 获取文件列表并去重
PS:进行下列操作前请将下面出现的第一条命令复制好,因为浏览器会关掉(我的是Chrome)建议先看完这一节再操作
Ctrl+Shift+Esc打开任务管理器,先点击左上角文件-运行新任务,输入cmd
,勾选以系统管理权限创建此任务
,粘贴但不运行以下命令:
explorer.exe | tasklist /M /FI "ImageName eq explorer.exe" /FO LIST
接着点详细信息,选择explorer.exe
,结束进程树
PS:除了任务管理器的大部分东西都会关掉,画面有部分全白,这里截不了图,看文字
运行刚刚粘贴的命令,这个是开启explorer的同时使用tasklist
看explorer的依赖,文件就会自己出来(doge)
等到运行的命令不动的时候(很快就可以出来的了),将输出的"模块:"
后面的文件名都复制到一个文本文档里面,我这里起的名字是explorerdll.txt,记住该文件路径,然后直接关掉cmd,对刚打开的explorer没影响,此时为刚启动的依赖DLL。
新开一个命令行,去掉前面explorer运行一遍,毕竟运行时
和刚启动
所需DLL是可能不同的,为了让依赖更全面一点:
tasklist /M /FI "ImageName eq explorer.exe" /FO LIST
再复制到explorerdll.txt里面,两次复制都记得去掉空格(选中前面空格Ctrl+H替换,替换栏什么都不要写(这里两次的DLL有重复的,excel/WPS表格去重是一个不错的选择)
把它粘贴到excel里面,Ctrl+A选中那一列,看图操作
然后窗口弹出直接选删除重复项,确定就行,想排序直接点重复项左边的“排序”即可,再粘贴回explorerdll.txt,保存,此时获得的explorerdll.txt即为explorer运行时所需真正的DLL,不过有一部分是非必要加入的。
接下来就自由选择复制操作了,可以用beyond compare4(循环搜索),也可以自己写脚本xcopy,反正把文件复制进去PE目录就行(一定要记得复制DLL目录(System32等)\zh-CN\xx.mui文件(虽然有些DLL没有)和\Windows\SystemResources\xx.mun文件!!!.mun不多但很关键,往往和决定你的explorer启动成败)。注意,tasklist复制完成的文件还缺了一点才能启动explorer.exe,请见2.3。
2.2 Dependency Walker
此软件也是一个分析依赖的好手,但最烦的就是要逐级展开一个个文件细看,再去bcompare4搜索,效率不如tasklist,还有一个最大的问题是这里的DLL套DLL的引用重复率较高,也就是说你还要靠脑子来记住哪个dll复制过了。除了左边的展开栏,其他的东西全都不用看,只看文件名就行,没啥好讲的(很全面,但就是太全面了)。
2.3 借鉴前人的文件列表(推荐小白!)
文件列表不是万能的,但是做win11pe时参考他人的文件列表就不用自己找文件,稍微方便一点点。但随着各种功能的更新,新的依赖就会出现,文件列表就不全了,可能提供文件列表的大神再做其他功能的时候加进去的dll误打误撞就能启动explorer.exe,但人家不知道,如果我们一味死板照搬,explorer.exe是启动不了的(食用指南有描述),做出来的pe就成功不到哪里去,2.1的tasklist方法就挺全面的。
文件列表目前网上流传的有wing大的https://www.wingwy.com/archives/2011_03_868.html,不过这个是win7的,已经过时了,这里我们就看Slore大的Wimbuilder2(2022-02-02版本)的文件列表(目录:WimBuilder2-Full.v2022-02-02\Projects\WIN10XPE\01-Components\00-Shell\Explorer
,文件为submain.bat
),真的很感谢S大,不然我的explorer都显示不出来(缺文件)(Wimbuilder2传送门无忧论坛http://bbs.c3.wuyou.net/forum.php?mod=viewthread&tid=409685&extra=page%3D5)
先贴一份代码出来
\Windows\SystemResources\Windows.UI.ShellCommon @\Users\Default\AppData\Roaming\Microsoft\Windows\SendTo\Compressed (zipped) Folder.zfsendtotarget Desktop (create shortcut).DeskLink desktop.ini; Windows Trusted Runtime Interface Driver\Windows\System32\drivers\WindowsTrustedRT.sys; Explorer\Windows\explorer.exe\Windows\??-??\explorer.exe.mui @\Windows\System32\comctl32.dll AppHelp.dll,AppResolver.dll,atlthunk.dll,avifil32.dll,clip.exe,Clipc.dll control.exe,comsvcs.dll,CoreMessaging.dll,CoreUIComponents.dll,cscapi.dll ctfmon.exe,desk.cpl,edputil.dll ELSCore.dll,IconCodecService.dll,imageres.dll,InfDefaultInstall.exe InputSwitch.dll,mfperfhelper.dll MrmCoreR.dll,mscories.dll,MsCtfMonitor.dll,msutb.dll,mycomput.dll,policymanager.dll,pdh.dll,PhotoMetadataHandler.dll,pnputil.exe ProximityCommon.dll,ProximityCommonPal.dll,ProximityService.dll,ProximityServicePal.dll rmclient.dll,sendmail.dll SettingSyncCore.dll(无),SharedStartModel.dll(无),ShellCommonCommonProxyStub.dll,shfolder.dll,shutdown.exe StartTileData.dll,sti.dll,stobject.dll,StorageUsage.dll,systemcpl.dll,TDLMigration.dll,TextInputFramework.dll,thumbcache.dll twinapi.appcore.dll,twinapi.dll,twinui.appcore.dll,twinui.pcshell.dll,UIAnimation.dll,UIRibbon.dll,UIRibbonRes.dll Windows.Gaming.Input.dll,Windows.Internal.Shell.Broker.dll,Windows.Networking.Connectivity.dll,WorkFoldersShell.dll,wpdshext.dll,zipfldr.dll windows.immersiveshell.serviceprovider.dll credssp.dll,mblctr.exe,TextShaping.dll Windows.Globalization.dll +ver > 17000cdp.dll coloradapterclient.dll(无) dsreg.dll VEEventDispatcher.dll(无) +ver > 17700; dll for StateRepository (AppRepository). The StateRepository service is not registered in the Registry StateRepository.core.dll,Windows.StateRepository.dll Windows.StateRepositoryBroker.dll Windows.StateRepositoryCore.dll Windows.StateRepositoryClient.dll +ver >= 18885CoreMessaging.dll,CoreUIComponents.dll,rmclient.dll,twinapi.appcore.dll,InputHost.dll,TextInputFramework.dll WindowManagement.dll WindowManagementAPI.dll Windows.UI.dll +ver >= 20150dmenrollengine.dll +ver >= 22000windowsudk.shellcommon.dll +ver >= 22610Windows.UI.Core.TextInput.dll Windows.UI.Immersive.dll; remove ver check (add with any ver)+ver* +if "%VER[3]%" = "19041" Or "%VER[3]%" = "19042" Or "%VER[3]%" = "19043"shell32.dll SHCore.dll KernelBase.dll-if; Advanced system setting sysdm.cpl,DeviceProperties.exe,SystemPropertiesAdvanced.exe,SystemPropertiesComputerName.exe systempropertieshardware.exe,systempropertiesperformance.exe systempropertiesremote.exe; Device Manager cpl hdwwiz.cpl,hdwwiz.exe; Timedate Mouse Region, Language cpl timedate.cpl,main.cpl,intl.cpl; Browse Folder;ExplorerFrame.dll; Previous version tab twext.dll; Shell extension for Windows Script Host\Windows\System32\wshext.dll; Eject usb DeviceCenter.dll,DeviceEject.exe,StorageContextHandler.dll; System Information (Optional)msinfo32.exe; Map a network drive also in network addition netplwiz.dll,netplwiz.exe; Sharing from explorer dtsh.dll,shpafact.dll,networkexplorer.dll,provsvc.dll(无); Password Notification from event-log kdcpw.dll; Addional Cmds cacls.exe,Comp.exe,choice.exe,Fc.exe,findstr.exe Help.exe,Label.exe,Makecab.exe,sc.exe,Sort.exe taskkill.exe; ShellHWDetection shsvcs.dll; DLNA Namespace dlnashext.dll; Taking Ownership (Appinfo and ProfSvc services). ProfSvc services already here (profsvc.dll,profsvcext.dll,provsvc.dll(无),objsel.dll)appinfo.dll,appinfoext.dll,objsel.dll,profsvc.dll,profsvcext.dll; Version Info winver.exe
解释一下食用方法,
1.@+目录代表在xx目录的意思,@下面的文件就都是在那个目录才有的,此处先不考虑WOW64(32位),先整完64位版本再说,
2.这里贴出来的都是要复制并替换进去的,包括第一行\Windows\SystemResources\Windows.UI.ShellCommon
整个目录,
3.分号代表注释,解释说明下面的文件干啥用,也是全部复制并替换!!
4.*号通配符代表符合要求的所有文件,
5.+if代表判断是否符合要求,-if结束判断,这个也不用管,除了61-65行win11所有if都满足,但是不满足的那个if的文件也要。脚本列出的全部文件都要!
6.开始的desktop.ini是系统文件,需显示受保护的系统文件才看得见
7.记得复制.mui和ExplorerFrame.dll.mun(列表没有)、shell32.dll.mun!!!
8.前面2.1说的缺文件就是这个\Windows\SystemResources\Windows.UI.ShellCommon
和ExplorerFrame.dll.mun、shell32.dll.mun等mun,复制进去差不多就到注册表修改了,要是注册表改完explorer还开启不了就再对比一下文件列表,添加功能,这里的文件列表把控制面板差不多都包含进去了
9.Win11壁纸\Windows\Web\Wallpaper\Windows\img0.jpg也复制进去
10.可以自己改造脚本复制文件,建议直接bcompare
11.win11中找不到文件的我都标出来了
12.一定要复制\Windows\System32\actxprxy.dll及其.mui,少了这个东西explorer启动不了,还有shellstyle.dll,少了它explorer只能卡在全白的界面(列表中无)
13.想要win10/11那种窗口效果的替换uxtheme.dll,themeservice.dll,themeui.dll等与主题有关的dll及其mui,加入DWM那里有
14.壁纸的设置在下一章,修改pe-def的时候会提到,本文先让窗口版本的explorer启动起来先,要提前设置的可以跑到[HKEY_LOCAL_MACHINE\pe-def\Control Panel\Desktop]设置"Wallpaper"=“X:\Windows\Web\Wallpaper\Windows\img0.jpg”
同理把DWM桌面运行的也加进去,让我们的PE长得好看点(虽然暂时没什么大用)
@\Windows\System32\; Theme and dwm dcomp.dll,d3d11.dll,dxgi.dll dwm.exe,dwmcore.dll,dwmghost.dll,dwminit.dll,dwmredir.dll,hotplug.dll themeservice.dll,themeui.dll,twinapi.appcore.dll,twinui.dll,ubpm.dll,uDWM.dll,wdi.dll Windows.Gaming.Input.dll,Windows.UI.Immersive.dll CoreMessaging.dll,CoreUIComponents.dll,ISM.dll,rmclient.dll +ver > 18950GameInput.dll +ver >= 22000wuceffects.dll +ver* +if "%VER[3]%" = "19041" Or "%VER[3]%" = "19042" Or "%VER[3]%" = "19043"shell32.dll SHCore.dll KernelBase.dll-if; already in winre.wim, add for others, like winpe.wim(ADK)+if "%opt[build.wim]%" <> "winre"d2d1.dll,d3d10warp.dll,D3DCompiler_47.dll,DXCore.dll-if
再多说一个都要做的,PE的Windows\System32下新建winpeshl.ini
,这个是WinPE外壳shell自动会运行的程序清单,里面写上
[LaunchApps]wpeinit cmd
先初始化PE,再运行一下cmd防止PE刚开机就无限重启(如果注册表修改pe-soft\Microsoft\Windows NT\CurrentVersion\Winlogon下
的Shell值为explorer.exe
(PE中值为cmd.exe /k cmd.exe
),winpeshl.ini里面又加上explorer.exe,目前仅添加这些文件的PE就会因为explorer.exe外壳无法运行而无限重启,外壳即为支撑一个系统的架子,如果外壳关掉了PE就直接GG了)。
3.注册表修改
3.1 备份注册表的后路
想必小伙伴都等不及了吧,现在先将在D:\WinPE_amd64文件夹下新建2个文件夹,一个叫原Win11
,一个叫原pe
,备份一下两个系统的注册表
在两个文件夹下分别放入两个系统\Windows\System32\config
下的DEFAULT,DRIVERS,SOFTWARE,SYSTEM
四个配置单元
复制完成后将原win11\SOFTWARE
直接替换掉%mount%\Windows\System32\config
下的配置单元,下面就是以官方的Win11注册表为底,然后导入PE的注册表,确保PE的注册表正常运行,又具有Win11的功能。
3.2 正式操作SOFTWARE
现在先把PE的注册表导出去再说,管理员身份运行regedit
,先点击HKEY_LOCAL_MACHINE
,
然后文件-加载配置单元,
选择3.1导出的原pe\SOFTWARE
,确定后命名为pe-soft
,操作Win11的SOFTWARE时也要取同样的名字,不然就导了个寂寞。
跟复制文件的时候一样,操作注册表也要改权限,右键pe-soft,选择权限,和复制文件时一样的操作,先改所有者,继承,再添加完全控制,不再赘述。
关掉regedit,管理员身份运行Registry Workshop
,没有的自己下(PS:很重要的一点!!在卸载配置单元的时候不能 regedit和workshop 两个一起打开,不然会直接提示拒绝访问,只能关掉一个去另一个卸载配置单元。有时workshop操作完之后直接卸载也是拒绝访问,这个是它自身的问题,只能关了重开再去卸载,或者关了打开regedit卸载)
然后点击pe-soft,Ctrl+F查找C:\
和D:\
,全部替换成X:\
(大写X)(查找的配置如图)
找到之后Ctrl+A全选,右键替换
注意,workshop每次只能搜索1000个结果,结果数字是1000就要多搜几下
搜完之后搜Interactive User
,全部替换成空(不是删除,删除后explorer打不开)
PS:搜索Interactive User的时候有时会出现这两个二进制的注册表项,这两个东东替换不了的不用管它
然后搜一下$Windows.~BT\
,有的话替换成空,没有就不管了(win11好像是没有这个东西了)选择pe-soft,文件-导出,随便起一个名字,记得住就行
卸载PE的software,加载PE刚替换进去的Win11software,有任何更改都可以直接保存到PE系统里面了。
先改权限,然后跟操作原PE的注册表一样,搜索替换,修改完成后双击导入pe-softinit.reg
,然后直接卸载pe-soft。
3.3 简单操作DEFAULT
HKEY_LOCAL_MACHINE
下加载PE\Windows\System32\config
下的DEFAULT
,命名pe-def
,记得改权限。pe-def的修改就简单一点,一行命令
reg add "HKLM\pe-def\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v TaskbarMn /t REG_DWORD /d 0 /f
然后把这坨代码保存为后缀.reg文件,双击导入
Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\pe-def][HKEY_LOCAL_MACHINE\pe-def\Control Panel][HKEY_LOCAL_MACHINE\pe-def\Control Panel\Desktop]"AutoColorization"=dword:00000001"Wallpaper"="X:\\Windows\\Web\\Wallpaper\\Windows\\img0.jpg"[HKEY_LOCAL_MACHINE\pe-def\Software][HKEY_LOCAL_MACHINE\pe-def\Software\Microsoft][HKEY_LOCAL_MACHINE\pe-def\Software\Microsoft\Internet Explorer][HKEY_LOCAL_MACHINE\pe-def\Software\Microsoft\Internet Explorer\Desktop][HKEY_LOCAL_MACHINE\pe-def\Software\Microsoft\Internet Explorer\Desktop\General]"WallpaperSource"="X:\\Windows\\Web\\Wallpaper\\Windows\\img0.jpg"[HKEY_LOCAL_MACHINE\pe-def\Software\Microsoft\Windows][HKEY_LOCAL_MACHINE\pe-def\Software\Microsoft\Windows\CurrentVersion][HKEY_LOCAL_MACHINE\pe-def\Software\Microsoft\Windows\CurrentVersion\Explorer\VisualEffects]"VisualFXSetting"=dword:00000003[HKEY_LOCAL_MACHINE\pe-def\Software\Microsoft\Windows\CurrentVersion\Themes]"InstallTheme"=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,00,5c,00,72,00,65,00,73,00,6f,00,75,00,72,00,63,00,65,00,73,00,\ 5c,00,54,00,68,00,65,00,6d,00,65,00,73,00,5c,00,61,00,65,00,72,00,6f,00,2e,\ 00,74,00,68,00,65,00,6d,00,65,00,00,00"InstallVisualStyle"=hex(2):25,00,52,00,65,00,73,00,6f,00,75,00,72,00,63,00,65,\ 00,44,00,69,00,72,00,25,00,5c,00,74,00,68,00,65,00,6d,00,65,00,73,00,5c,00,\ 41,00,65,00,72,00,6f,00,5c,00,41,00,65,00,72,00,6f,00,2e,00,6d,00,73,00,73,\ 00,74,00,79,00,6c,00,65,00,73,00,00,00"InstallVisualStyleColor"="NormalColor""InstallVisualStyleSize"="NormalSize""LastHighContrastTheme"=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,00,5c,00,72,00,65,00,73,00,6f,00,75,00,72,00,63,00,65,\ 00,73,00,5c,00,45,00,61,00,73,00,65,00,20,00,6f,00,66,00,20,00,41,00,63,00,\ 63,00,65,00,73,00,73,00,20,00,54,00,68,00,65,00,6d,00,65,00,73,00,5c,00,68,\ 00,63,00,62,00,6c,00,61,00,63,00,6b,00,2e,00,74,00,68,00,65,00,6d,00,65,00,\ 00,00"ThemeChangesDesktopIcons"=dword:00000001"ThemeChangesMousePointers"=dword:00000001"WallpaperSetFromTheme"=dword:00000001"ColorSetFromTheme"=dword:00000001"CurrentTheme"="X:\\Windows\\resources\\Themes\\aero.theme""SetupVersion"="10"[HKEY_LOCAL_MACHINE\pe-def\Software\Microsoft\Windows\CurrentVersion\Themes\HighContrast]"Pre-High Contrast Scheme"="X:\\Windows\\resources\\Themes\\aero.theme"[HKEY_LOCAL_MACHINE\pe-def\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize]"ColorPrevalence"=dword:00000000"EnableTransparency"=dword:00000001
这一个也是Wimbuilder2里面的,名为Themes_RegDefault.reg
,顾名思义管主题的,还有就是把壁纸改成上面2.3食用指南的那个壁纸,修改完后卸载。
4.打包测试
用前文的两行命令打包,我都是直接保存成批处理的了
imagex /capture /compress fast /boot %mount% %PE%\media\sources\boot.wim "winpe" "winpe"MakeWinPEMedia /ISO "%PE%" "%PE%\WinPE_amd64.iso"
vmware测试一下,如图,win11的主题基本出来了,explorer运行正常,但以现在的文件列表(我这个用来演示的pe用的是2.3的文件列表),PE的explorer只能自动以新窗口打开文件夹,此问题后面会修复,包括显示桌面和任务栏等等,现在的explorer效果还是挺不尽人意的。
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://hqyman.cn/post/5099.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~