Thảo luận - Các bước căn bản để tạo Win10PE từ tools WinBuilder-WIN10XPE, mời các Pro vào góp ý thêm. | Page 19 | VN-Zoom | Cộng đồng Chia Sẻ Kiến Thức Công Nghệ và Phần Mềm Máy Tính
Thân chào các bạn, hôm qua bạn @@sec0 có đề nghị tôi mở thêm một topic khác với chủ đề hướng dẫn cách tạo Win10XPE, tôi sẽ hướng dẫn lại các bước căn bản và vì ở ĐÂY có các Pro đã chia sẻ trước đó rồi, nên nếu bạn nào có thêm thắc mắc thì có thể vào lại các cmt trước đó để tìm hiểu thêm và hy vọng @lvt491, @Le Duc 287, @trungminh có thời gian rỗi để hổ trợ các bạn.
Update ngày 02/02/2023 Link bản mới nhất Win10XPE Project -2023-02-01,
các bạn load về, sau đó chạy giải nén file 001 là có luôn nguyên folder:
Ở hình trên, các bạn click vào Win10XPE, load về và giải nén, đây là bản mới nhất ngày 16/01/2021, các bạn cũng thấy các bản Windows mà nó hổ trợ như trong phần đóng khung hình chữ nhật bên dưới, tôi làm với bản Win 2004 và cũng tạm đầy đủ .
Sau khi giải nén ta có folder và files như hình, lưu ý tôi chép vào partition khác trên ổ cứng, không chép vào C: nhe các bạn:
Các bạn lưu ý cmt của @trungminh như hình dưới đây nhé:
Right-click vào Win10XPE.exe, run as admin ở hình trên ta có giao diện sau:
Từ chổ mũi tên, click vào đó và chọn load về bản Windows phù hợp ở giao diện dưới này, chọn bản nào thì các bạn xem lại ở hình đầu tiênở bên trên, phần đóng khung hình chữ nhật lớn bên tay phải của hình:
Riêng tôi thì tôi chọn bản Win2004 như hình dưới đây:
Sau khi load bản WIN2004 về tôi cũng giải nén vào part J: như hình dưới:
Vào lại giao diện Win Builder XPE:
Click vào chổ mũi tên tìm tới folder chứa Win2004 đã giải nén trước đó, ta có hình sau:
Tôi sẽ ngưng cmt ở đây, mời các bạn xem cmt kế tiếp....
Các bạn vui lòng kéo xuống dưới, xem tiếp từ cmt #9 trở đi, tôi vừa thực hành, vừa chụp hình cho thực tế nên không post hết 1 lần vào đây được. Cảm ơn các bạn đã theo dõi.
Update: Có một bài viết của @trungminh rất chi tiết và vô cùng hữu ích cho các bạn từ link dưới đây, mời các bạn vào tham khảo nhé:
Cháu @Le Duc 287 , bác chép toàn bộ file từ System32 của @trungminh vào System32 của boot.wim( cái này mount ra theo cách của cháu cho nhanh đó ) , sau khi làm xong thì bác mount được cái Apps của Anhdv, cháu xem lại hình bác gửi ở cmt trước đó.
mình đã sửa lại cho phù hợp với file .wim mk làm. từ ổ ramdisk R sang A vì nhiều máy nhiều ổ cứng. nhg apps cũng không mount được luôn. Apps và Drv10x64 mình cho vao /DLD/Apps/ nhg không đc dù đã chỉnh đường dẫn phù hợp
mình đã test từ hôm qua rồi bằng cách copy nguyên file của anhdv và thay đổi như nói ở trên nhg không mount được Apps luôn.
Bạn phải xem apps của @anhdv đóng gói như thế nào đã sau đó chỉnh theo. Còn mount vào ổ nào và thư mục mount thì tùy mình. Quan trong phải đúng đường dẫn ổ mount, thư mục mount, thư mục đóng gói win.
Ví dụ:
- Mount vào ổ A: pecmd.ini sẽ là
FIND MEM>2049,EXEC =%SystemRoot%\System32\StartImDIsk.exe 70 % A: AppsPE "NTFS Compressed" "A:\Temp"!EXEC =%SystemRoot%\System32\StartImDIsk.exe 70 % A: AppsPE "NTFS Compressed"
Còn file Apps.wim: xem đóng gói thế nào: Ví dụ đóng gói thành 2 thư mục 1 và 2 (thường 1 cho win32, 2 thường cho win64, nếu có 3 thì chắc cho winxp). Nếu chạy win64 thì:
Pecmd.ini phải thay:
IFEX A:\ppApps,!path A:\ppApps
Forx !\Apps\Apps.wim,app,1,team exec =!imagex.exe /mount %app% 2 A:\ppApps|exec =pecmd load A:\ppApps\apps.wcs|exec A:\ppApps\Pstart.exe
Còn Drv10x64.wim xem đóng gói thế nào. Nếu đóng gói giống như của bác @Hoang Duch2 là Drv10x64\N thì phải thay R:\Drivers\win10-64 thành R:\Drivers\N
Bác đang thử làm cách gộp chung nó vào apps.wim cho nhanh cháu ơi, chờ xem có load được không nhé. Không được cháu @trungminh ơi, mở thủ công với 7z thì được nhưng không mở được DrWeb.
Bạn phải xem apps của @anhdv đóng gói như thế nào đã sau đó chỉnh theo. Còn mount vào ổ nào và thư mục mount thì tùy mình. Quan trong phải đúng đường dẫn ổ mount, thư mục mount, thư mục đóng gói win.
Ví dụ:
- Mount vào ổ A: pecmd.ini sẽ là
FIND MEM>2049,EXEC =%SystemRoot%\System32\StartImDIsk.exe 70 % A: AppsPE "NTFS Compressed" "A:\Temp"!EXEC =%SystemRoot%\System32\StartImDIsk.exe 70 % A: AppsPE "NTFS Compressed"
Còn file Apps.wim: xem đóng gói thế nào: Ví dụ đóng gói thành 2 thư mục 1 và 2 (thường 1 cho win32, 2 thường cho win64, nếu có 3 thì chắc cho winxp). Nếu chạy win64 thì:
Pecmd.ini phải thay:
IFEX A:\ppApps,!path A:\ppApps
Forx !\Apps\Apps.wim,app,1,team exec =!imagex.exe /mount %app% 2 A:\ppApps|exec =pecmd load A:\ppApps\apps.wcs|exec A:\ppApps\Pstart.exe
mình sửa y hệt nhg không mount được luôn được luôn. thế mới lạ. để mk xem lại file Apps.wim có thể file đó bị lỗi vì mk thấy ngày thay đổi không dù mk copy nguyên file .wim chưa chỉnh sửa
Các bản boot của các pro build theo các cấu hình riêng để load apps hay drivers khác nhau.Theo tôi nên quy chuẩn về một mối
Build PE theo top rồi tìm cách sử dụng các gói apps...khác
Kể cả các gói của @anhdv xả nén ra gói lại cấu trúc bằng ISO rồi load tương tự như bộ MC cho đơn giản hơn
Còn các bạn cứ build rồi chỉnh sửa nhiều dễ tẩu hỏa nhập ma lắm
mình sửa y hệt nhg không mount được luôn được luôn. thế mới lạ. để mk xem lại file Apps.wim có thể file đó bị lỗi vì mk thấy ngày thay đổi không dù mk copy nguyên file .wim chưa chỉnh sửa
Vì mình tự đóng gói được các file Wim nên mình chỉnh sửa theo của mình (còn soft thì lượm mỗi nơi 1 ít còn cái nào chạy lỗi thì bỏ đi và down cái potal khác về tự chế lấy)
Các bản boot của các pro build theo các cấu hình riêng để load apps hay drivers khác nhau.Theo tôi nên quy chuẩn về một mối
Build PE theo top rồi tìm cách sử dụng các gói apps...khác
Kể cả các gói của @anhdv xả nén ra gói lại cấu trúc bằng ISO rồi load tương tự như bộ MC cho đơn giản hơn
Còn các bạn cứ build rồi chỉnh sửa nhiều dễ tẩu hỏa nhập ma lắm
Cháu @Le Duc 287 đã làm được chưa cháu? Hồi trưa này bên bác mới đầu bác cũng chỉ chỉnh có Pecmd.ini và vài file về Drivers, boot vào không thấy gì cả. Sau đó bác lại download về cái link Code_WinPE của @trungminh , bác không tạo lại XPE mà bác lấy file boot.wim có sẵn trước đó test với apps của @hoanchien đó cháu, bác tiếp tục chép tiếp tất cả các file từ System32 của @trungminh vào lại System32 của file boot.wim.
Sau khi boot vào thì nó hiện lên cái Apps.wim như cmt #344 ở trên. Lúc đó vẫn còn báo lỗi từ R:\Drivers\Win10-64. Sau khi @trungminh hướng dẫn bác sửa lại thành R\Drivers\N thì boot vào không thấy thông báo lỗi hiện ra nữa. Cháu xem bác chụp hình chi tiết từ mục Apps\Drv10x64.wim bên bác nó hiện kế tiếp như thế nào ở cmt #350
Cháu @Le Duc 287 đã làm được chưa cháu? Hồi trưa này bên bác mới đầu bác cũng chỉ chỉnh có Pecmd.ini và vài file về Drivers, boot vào không thấy gì cả. Sau đó bác lại download về cái link Code_WinPE của @trungminh , bác không tạo lại XPE mà bác lấy file boot.wim có sẵn trước đó test với apps của @hoanchien đó cháu, bác tiếp tục chép tiếp tất cả các file từ System32 của @trungminh vào lại System32 của file boot.wim.
Sau khi boot vào thì nó hiện lên cái Apps.wim như cmt #344 ở trên. Lúc đó vẫn còn báo lỗi từ R:\Drivers\Win10-64. Sau khi @trungminh hướng dẫn bác sửa lại thành R\Drivers\N thì boot vào không thấy thông báo lỗi hiện ra nữa. Cháu xem bác chụp hình chi tiết từ mục Apps\Drv10x64.wim bên bác nó hiện kế tiếp như thế nào ở cmt #350
cháu làm được rồi ạ thanhk bác và các bạn. do cháu chép nhầm file imagex.exe từ adk. chắc cháu chép file imagex.exe từ arm64 hay arm gì đó, vì cháu có cài adk lên qua các bạn ấy nói dùng file imagex.exe nên cháu có chép các file đó vào rồi nhg ko chạy đc giờ cháu vào luôn amd64 trong adk chép đc luôn
Bạn phải dò ngược lại list các file ... Add_Files theo đường dẫn ...\Win10XPE\Projects\Win10XPE\Features để xóa
không cần sử dụng tính năng nào xóa các dòng trên các file đó rồi lưu lại là đc
MediaFire is a simple to use free service that lets you put all your photos, documents, music, and video in a single place so you can access them anywhere and share them everywhere.
www.mediafire.com
B2: Mở notepad sao chép đoạn code dưới đây và lưu lại với tên là PeApps.au3 (Để Encoding là UTF8)
==> Sau này cần thêm bớt chỉnh sửa gì sẽ sửa ở file này cũng khá là tiện
Mã:
#NoTrayIcon
Global $RamDisk = 'B:' ;Thay bằng ký tự khác nếu RamDisk khác ổ B: <Chỉ áp dụng khi mount file wim>
_MyApps() ;Mount Apps của LVT491 ^^
;_HCApps64() ;Mount Apps của Hoàn Chiến
;_ADApps64() ;Mount Apps của AnhDV
;_ADAppsP64() ;Mount AppsP của AnhDV
;==> Sử dụng cái nào thì bỏ dấu ; ở đầu các câu lệnh trên đi. Chỉ nên mount và sử dụng 01 gói Apps
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Func _MyApps()
Local $pstart = _PSTART_Shortcut('Apps\PSTART.exe')
If $pstart = Null Then
If _Mount_ISO('Apps.iso') = True Then
$pstart = _PSTART_Shortcut('Apps\PSTART.exe')
_PECMD_Load($pstart, 'Apps.wcs')
EndIf
Else
_PECMD_Load($pstart, 'Apps.wcs')
EndIf
;_MyShortcut()
EndFunc
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;Không quan tâm các lệnh dưới này nếu không hiểu :))
Func _ADApps64()
;AnhDV
Local $pstart = _PSTART_Shortcut('Apps\PSTART.exe')
If $pstart = Null Then
If _Mount_WIM('Apps.wim', 2, $RamDisk & '\Apps') = True Then
$pstart = _PSTART_Shortcut('Apps\PSTART.exe')
_PECMD_Load($pstart, 'Apps.wcs')
EndIf
Else
_PECMD_Load($pstart, 'Apps.wcs')
EndIf
EndFunc
Func _ADAppsP64()
;AnhDV
Local $pstart = _PSTART_Shortcut('Apps\PSTARTP.exe', 'PSTARTP')
If $pstart = Null Then
If _Mount_WIM('AppsP.wim', 2, $RamDisk & '\Apps') = True Then
$pstart = _PSTART_Shortcut('Apps\PSTARTP.exe', 'PSTARTP')
_PECMD_Load($pstart, 'AppsP.wcs')
EndIf
Else
_PECMD_Load($pstart, 'AppsP.wcs')
EndIf
EndFunc
Func _HCApps64()
;HoanChien
Local $pstart = _PSTART_Shortcut('Programs\PSTART64.exe')
If $pstart = Null Then
If _Mount_ISO('Apps.iso') = True Then
$pstart = _PSTART_Shortcut('Programs\PSTART64.exe')
_PECMD_Load($pstart, 'Apps64.ini')
_PECMD_Load($pstart, 'Appsx64.ini')
EndIf
Else
_PECMD_Load($pstart, 'Apps64.ini')
_PECMD_Load($pstart, 'Appsx64.ini')
EndIf
EndFunc
Func _MyShortcut()
;LVT491
_Run_Wait('PECMD.exe LINK %Desktop%\Clear Temp,%WinDir%\System32\PECMD.exe,TEMP DELETE,%WinDir%\System32\shell32.dll#153')
_Run_Wait('PECMD.exe LINK %Desktop%\Admin Login,%WinDir%\System32\PECMD.exe,LOAD %WinDir%\System32\PecmdAdminLoad.ini,%WinDir%\System32\shell32.dll#44')
_Run_Wait('PECMD.exe LINK %Desktop%\PENetwork,%ProgramFiles%\PENetwork_x64\PENetwork.exe')
_Run_Wait('PECMD.exe LINK %Desktop%\Explorer++,%ProgramFiles%\WinXShell\Explorer++.exe')
FileDelete('X:\Users\Administrator\Desktop\Admin Login.LNK')
Local $SDIPath = _Get_Path('DriverPacks\SDI_auto.au3')
If $SDIPath <> Null Then _Run_Wait('PECMD.exe LINK %Desktop%\Inst Driver,%WinDir%\System32\AutoIt3.exe,' & $SDIPath & ',%WinDir%\System32\shell32.dll#162')
_Run_Wait('PECMD.exe ENVI #TEMP=B:\Temp')
_Run_Wait('PECMD.exe ENVI @@DeskTopFresh=1')
EndFunc
Func _Mount_ISO($FileName)
Local $FilePath = _Get_File($FileName)
If $FilePath <> Null Then
_Run_Wait('imdisk.exe -a -f ' & $FilePath & ' -m #:')
Return True
Else
Return False
EndIf
EndFunc
Func _Mount_WIM($FileName, $Index, $MountDir)
Local $FilePath = _Get_File($FileName)
If $FilePath <> Null Then
DirCreate($MountDir)
If Not FileExists($MountDir) Then Return False
_Run_Wait('DISM.exe /Mount-Image /ImageFile:' & $FilePath & ' /Index:' & $Index & ' /MountDir:' & $MountDir)
Return True
Else
Return False
EndIf
EndFunc
Func _Mount_WIMX($FileName, $Index, $MountDir)
Local $FilePath = _Get_File($FileName)
If $FilePath <> Null Then
DirCreate($MountDir)
If Not FileExists($MountDir) Then Return False
_Run_Wait('imagex.exe /mountrw ' & $FilePath & ' ' & $Index & ' ' & $MountDir)
Return True
Else
Return False
EndIf
EndFunc
Func _UnMount_WIM($MountDir)
_Run_Wait('DISM.exe /Unmount-Image /MountDir:' & $MountDir & ' /Discard')
;FileDelete($MountDir)
EndFunc
Func _UnMount_WIMX($MountDir)
_Run_Wait('imagex.exe /unmount ' & $MountDir)
;FileDelete($MountDir)
EndFunc
Func _DPInst_Drivers($FolderDir)
If FileExists($FolderDir) Then
_Run_Wait('dpinst.exe /s /path ' & $FolderDir)
EndIf
EndFunc
Func _PSTART_Shortcut($FileName, $ShortcutName = 'PSTART')
Local $FilePath = _Get_Path($FileName)
If $FilePath <> Null Then
_Run_Wait('PECMD.exe LINK %Desktop%\' & $ShortcutName & ',' & $FilePath)
Return $FilePath
Else
Return Null
EndIf
EndFunc
Func _PECMD_Load($FileDir, $FileName)
Local $FolderDir = StringRegExpReplace($FileDir, '\\[^\\]*$', '')
If @error Then Return
Local $FilePath = $FolderDir & '\' & $FileName
If FileExists($FilePath) Then _Run_Wait('PECMD.exe LOAD ' & $FilePath)
EndFunc
Func _Get_Path($Path)
Local $Drv = DriveGetDrive('ALL')
For $i = 1 To $Drv[0]
If FileExists($Drv[$i] & '\' & $Path) Then Return StringUpper($Drv[$i]) & '\' & $Path
Next
Return Null
EndFunc
Func _Get_File($FileName)
Local $Drv = DriveGetDrive('ALL'), $Fdl
For $i = 1 To $Drv[0]
If FileExists($Drv[$i] & '\' & $FileName) Then Return StringUpper($Drv[$i]) & '\' & $FileName
Next
For $i = 1 To $Drv[0]
$Fdl = _FileListToArray(StringUpper($Drv[$i]), '*', 2, True)
If Not @error Then
For $j = 1 To $Fdl[0]
If FileExists($Fdl[$j] & '\' & $FileName) Then Return $Fdl[$j] & '\' & $FileName
Next
EndIf
Next
Return Null
EndFunc
Func _Run_Wait($Command)
RunWait(@ComSpec & ' /C ' & $Command, '', @SW_HIDE)
EndFunc
Func _FileListToArray($sFilePath, $sFilter = '*', $iFlag = 0, $bReturnPath = False)
Local $sDelimiter = '|', $sFileList = '', $sFileName = '', $sFullPath = ''
$sFilePath = StringRegExpReplace($sFilePath, '[\\/]+$', '') & '\'
If $iFlag = Default Then $iFlag = 0
If $bReturnPath Then $sFullPath = $sFilePath
If $sFilter = Default Then $sFilter = '*'
If Not FileExists($sFilePath) Then Return SetError(1, 0, 0)
If StringRegExp($sFilter, '[\\/:><\|]|(?s)^\s*$') Then Return SetError(2, 0, 0)
If Not ($iFlag = 0 Or $iFlag = 1 Or $iFlag = 2) Then Return SetError(3, 0, 0)
Local $hSearch = FileFindFirstFile($sFilePath & $sFilter)
If @error Then Return SetError(4, 0, 0)
While 1
$sFileName = FileFindNextFile($hSearch)
If @error Then ExitLoop
If ($iFlag + @extended = 2) Then ContinueLoop
$sFileList &= $sDelimiter & $sFullPath & $sFileName
WEnd
FileClose($hSearch)
If $sFileList = '' Then Return SetError(4, 0, 0)
Return StringSplit(StringTrimLeft($sFileList, 1), $sDelimiter)
EndFunc
B3: Mở file winpe.wim của các bạn bằng 7-Zip, kéo thả 2 file ở B1, B2 vào folder \Windows\System32\ (Bấm Yes để lưu thay đổi)
B4: Vẫn ở phần 7-Zip chuột phải vào file Windows\System32\PECMD.ini chọn Edit để chỉnh sửa. Thêm 1 dòng như hình dưới đây sau đó lưu lại.
Cháu @Le Duc 287 đã làm được chưa cháu? Hồi trưa này bên bác mới đầu bác cũng chỉ chỉnh có Pecmd.ini và vài file về Drivers, boot vào không thấy gì cả. Sau đó bác lại download về cái link Code_WinPE của @trungminh , bác không tạo lại XPE mà bác lấy file boot.wim có sẵn trước đó test với apps của @hoanchien đó cháu, bác tiếp tục chép tiếp tất cả các file từ System32 của @trungminh vào lại System32 của file boot.wim.
Sau khi boot vào thì nó hiện lên cái Apps.wim như cmt #344 ở trên. Lúc đó vẫn còn báo lỗi từ R:\Drivers\Win10-64. Sau khi @trungminh hướng dẫn bác sửa lại thành R\Drivers\N thì boot vào không thấy thông báo lỗi hiện ra nữa. Cháu xem bác chụp hình chi tiết từ mục Apps\Drv10x64.wim bên bác nó hiện kế tiếp như thế nào ở cmt #350
Bác có thể dùng lệnh này và sửa lại trong file pecmd.ini để mount app iso vào ổ Y:
EXEC !=%WinDir%\system32\MountPEmedia.exe
và coppy 2 file: MountPEmedia.exe và MountPEmedia.ini vào sytem32
Xem MountPEmedia.ini để biết được đường dẫn và tên Iso
Cái này là của Nguyễn Tứ từ 2018. Cái này có thể thay mount app Iso của Hoanchien
Thật là xấu hổ khi phải thú thật với bạn
Trình độ IT của tôi kém xa so với bạn .Tôi chỉ biết qua nguyên tắc cơ bản khi build thôi.Nhìn list file để add vào bản PE là tôi cũng hoa cả mắt rồi.Từ trước tới nay tôi chỉ chỉnh sửa các bản boot khác để sử dụng
Thật ngại quá