本帖最後由 joyend 於 2021-1-30 20:41 編輯
網路上看到的win10pe版本都不支援.net framework
因為我想放入自己寫的工具程式,
找了很多網路上的win10pe製作並沒有一個完整的步驟,
花了3個月的時間,終於成功了,功能不盡完美,
但能進到桌面,可開啟檔案總管,用於救援工具已經可以了,
支援.net framework
可放入想要的工具,再把捷徑放到 X:\Users\Default\Desktop 即可正常使用.
中文輸入法還需研究,或版上大大有人知道如何加入,能提供支援.
完整步驟如下
工作環境
在正常 WIN10 Pro 系統下及下載 RegWorkShop 登錄檔工具
準備win10 iso檔
本機->管理->磁碟管理->滑鼠右鍵->
1.建立VHD->動態擴充->確定,在已建立的磁碟按滑鼠右鍵->確定->點選未配置空間按滑鼠右鍵->新增簡單磁碟區->
下一步->下一步->磁碟代號設定為X槽->->下一步->下一步->完成
2.同1步驟 建立y槽.
3.建立虛擬磁碟x,y只是為了方便及最終只要刪除x.vhd及y.vhd即可,如要將檔案解壓到目錄也可以.
使用7-zip解壓下載的iso檔到y:\win10-1903目錄
將sources目錄下的install.esd轉wim
Win10功能表->Windows系統->命令提示字元->滑鼠右鍵->更多->以系統管理員執行
在命令模式下
dism /Get-WimInfo /WimFile:install.esd
查看版本對應
將esd轉wim(專業版在第3捲,所以只轉第3捲即可)
在命令模式下
dism /export-image /SourceImageFile:install.esd /SourceIndex:3 /DestinationImageFile:install.wim /Compress:max /CheckIntegrity
使用7-zip 將 y:\win10-1903\sources\install.wim 解壓到y:\win10-1903\1903目錄
使用7-zip 將 y:\win10-1903\sources\boot.wim 第1個映像檔,解壓到 x:\
或在命令模式下
Dism /Apply-Image /ImageFile:y:\win10-1903\sources\boot.wim /Index:1 /ApplyDir:x:\
dism /image:x:\ /set-targetpath:x:\
如需 .net framework 請下載安裝 WIN10 adk 及 Windows PE 附加元件 ,如不需 .net framework 支援,直接往下 修改安全性
.net framework 支援
Win10功能表->Windows系統->命令提示字元->滑鼠右鍵->更多->以系統管理員執行
在命令模式下
Dism /Add-Package /Image:x:\ /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\"WinPE-WMI.cab
Dism /Add-Package /Image:x:\ /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\"zh-tw\WinPE-WMI_zh-tw.cab
Dism /Add-Package /Image:x:\ /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\"WinPE-NetFx.cab
Dism /Add-Package /Image:x:\ /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\"zh-tw\WinPE-NetFx_zh-tw.cab
修改安全性
在x槽->按右鍵內容->安全性->進階->新增->選取一個主體->進階->立即尋找->everyone->確定->確定->完全控制->確定->套用 (出現警告全按是)
擁有者->變更->進階->立即尋找->everyone->確定->取代子容器與物件的擁有者 打勾->以可從此物件繼承的權限項目取代所有子物件的權限項目 打勾->確定 (出現警告全按是)
只留system/everyone其它刪除
注意:由於文件過多,可能需要重複執行以下操作幾次:
1.取代子容器與物件的擁有者 打勾->確定
2.以可從此物件繼承的權限項目取代所有子物件的權限項目 打勾->確定;
刪除x槽下的sources目錄及setup.exe
登錄檔文件對應說明
pe裡的 Windows\System32\config下文件
SOFTWARE 對應 HKEY_LOCAL_MACHINE\SOFTWARE
SYSTEM 對應 HKEY_LOCAL_MACHINE\SYSTEM
DEFAULT 對應 HKEY_CURRENT_USER
註冊表修改注意事項:
加載註冊表時可放在HKEY_LOCAL_MACHINE或HKEY_CURRENT_USER都可以,但請統一放在同一位置
每次修改註冊表的時候:
$windows.~bt\ ,替換為(空)
Interactive User 應全部刪除
C:\ D:\ 應改為X:\
開啟RegWorkShop加載註冊表
檔案->載人登錄群組-> x:\Windows\System32\config下的DEFAULT,SYSTEM,SOFTWARE
分別命名為pe-def,pe-sys,pe-soft
修改WinPE註冊表安全性
分別對pe-def,pe-sys,pe-soft進行如下操作:
按右鍵內容->安全性->進階->新增->選取一個主體->進階->立即尋找->everyone->確定->確定->完全控制->確定->套用 (出現警告全按是)
擁有者->變更->進階->立即尋找->everyone->確定->取代子容器與物件的擁有者 打勾->以可從此物件繼承的權限項目取代所有子物件的權限項目 打勾->確定 (出現警告全按是)
只留system/everyone其它刪除
注意:由於文件過多,可能需要重複執行以下操作幾次:
1.取代子容器與物件的擁有者 打勾->確定.
2.以可從此物件繼承的權限項目取代所有子物件的權限項目 打勾->確定.
註冊表修改
在pe-soft下搜索$windows.~bt\ ,替換為(空)
在pe-soft下搜索Interactive User,找到後全部刪除.
同理,對pe-def,pe-sys也進行此操作
沒有的就不用改了
修改X碟大小
定位到 pe-sys\ControlSet001\Services\FBWF
按滑鼠右鍵->新增登錄值->DWORD->
名稱改為 WinPECacheThreshold ->按滑鼠右鍵->修改->選10進位->輸入 1024 (代表1G,可依自已需要修改)->確定
然後匯出以上三個為pe-def.reg,pe-sys.reg,pe-soft.reg備用
卸載pe-def,pe-sys,pe-soft
覆製explorer所需檔案
因發帖有字數限制,所以分成7次發帖
請參閱 Win10pe全手工製作步驟-explorer所需檔案1~7
將所有內容另存於 xxx.cmd 檔案,然後以系統管理員執行它
加入explorer所需設定
加載註冊表
y:\win10-1903\1903\Windows\System32\config下,
把 software (install裡的)文件加載到註冊表,命名為pe-soft
修改權限與前面的操作一樣
把之前匯出的pe-soft.reg導進來,覆蓋SOFTWARE註冊表
在pe-soft下搜索$windows.~bt\ ,替換為(空)
在pe-soft下搜索Interactive User,找到後全部刪除.
沒有的就不用改了
繼續修改pe-soft
定位到 HKEY_USERS\pe-soft下\Microsoft\Windows NT\CurrentVersion\Winlogon下,
把"Shell"="cmd.exe /k start cmd.exe" 改成"Shell"="explorer.exe"
更改用戶文件夾路徑到X:\Users\Default ,默認PE用戶文件夾在x:\windows\system32\config\systemprofile
定位到 HKEY_USERS\pe-soft\Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-18
在右侧找到 ProfileImagePath ,點選 ProfileImagePath 右键->修改
把 %systemroot%\system32\config\systemprofile
修改為
X:\Users\Default
定位到 HKEY_USERS\pe-soft\Microsoft\Windows NT\CurrentVersion\Svchost
名稱LocalServiceNoNetwork 類型為REG_MULTI_SZ
登錄值資料新增 CoreMessagingRegistrar
不增加的話會出現 登入程序初始化失敗
然後,卸載pe-soft.
加載註冊表
y:\win10-1903\1903\Windows\System32\config下,
把 system (install裡的)文件加載到註冊表
命名為pe-sys
定位到 HKEY_USERS\pe-sys\ControlSet001\Services\
找到 CoreMessagingRegistrar,DXGKrnl,monitor,Schedule,ShellHWDetection,Themes
將 CoreMessagingRegistrar 匯出 CoreMessagingRegistrar.reg
將 DXGKrnl 匯出 DXGKrnl.reg
將 monitor 匯出 monitor.reg
將 Schedule 匯出 Schedule.reg
將 ShellHWDetection 匯出 ShellHWDetection.reg
將 Themes 匯出 Themes.reg
定位到 pe-sys\setup\AllowStart\CoreMessagingRegistrar
將 CoreMessagingRegistrar 匯出 CoreMessagingRegistrar1.reg
然後,卸載pe-sys.
加載註冊表
x:\Windows\System32\config下的 SYSTEM
命名為pe-sys
將上述7個檔案匯入 pe-sys
在x:\windows\system32\
新增 winpeshl.ini
內容輸入
[LaunchApp]
AppPath = %SystemRoot%\explorer.exe
打包為boot.wim完成後替換原來的boot.wim即可
DISM.exe /Capture-Image /ImageFile:boot.wim /CaptureDir:x:\ /name:"Windows 10 PE x64" /Bootable /Compress:max
另外,因沒有選單,關機或重新開機需使用Winp自帶的指令
關機 wpeutil.exe shutdown
可在 Y:\Users\Default\Desktop 建立捷徑,位置輸入 %SystemRoot%\system32\wpeutil.exe shutdown
重新開機 wpeutil.exe reboot
可在 Y:\Users\Default\Desktop 建立捷徑,位置輸入 %SystemRoot%\system32\wpeutil.exe reboot
|