Quy trình build Windows 7 sử dụng Windows Powershell trên Windows 10
Chủ đề này trình bày các phương pháp sử dụng Cmdlets trong Windows Powershell trên Windows 10 để build Windows 7 thay thế cho Deployment Imaging Servicing Management (DISM) trong Command Prompt (cmd) trước khi triển khai Windows 7 lên máy tính.
Để các bạn hiểu rõ hơn về sử dụng Cmdlets trong Windows Powershell thay thế cho Dism trong Command Prompt tôi sẽ viết song song cả 2 dòng lệnh tương ứng và bạn có thể sử dụng như nhau rất thuật tiện. Lưu ý phương pháp này phải sử dụng trên máy tính đang cài sẵn Windows 10 và đương nhiên Dism bạn sử dụng trên cmd bạn cũng có thể sử dụng nó trên powershell như ví dụ dòng lệnh Dism /Get-ImageInfo /ImageFile:C:\setup\sources\install.wim thay vì bạn gõ trên cmd bạn cũng có thể gõ trên powershell. Một lưu ý quan trọng không kém khi bạn chạy cmd hay powershell phải chạy bằng quyền Administrator mới triển khai dòng lệnh được.
Tóm tắt quá trình build Windows 7
- Tạo những thư mục cần thiết trên một phân vùng trống
- Mount tập tin install.wim và boot.wim trong thư mục sources của bộ cài Windows 7
- Tích hợp cập nhật
- Tích hợp trình duyệt Internet Exporer 11
- Tích hợp driver usb 3.0
- Gỡ bỏ gói package mặc định
- Tắt tính năng Feature mặc định
- Load Registry để chỉnh sửa
- Tạo file trả lời tự động Unattend.xml
- Tạo file SetupComplete.cmd
- Unmount install.wim và boot.wim
- Tạo iso mới
Trước tiên trên phân vùng nào còn trống ví dụ như ổ (C:) bạn tạo mới lần lượt những thư mục sau:
- setup: lưu bộ cài iso win 7 đã xả nén
- offline: lưu thư mục windows ( tạo mới ) và thư mục boot ( tạo mới )
- iso: lưu iso mới
Tìm đến iso win 7 mount nó ra ổ ảo ( chuột phải iso chọn Mount ), truy cập ổ ảo copy tất cả vào thư mục setup.
Trong thư mục Internet Explorer 11 tải về truy cập thư mục tương ứng với nền tảng Win 7 đang build copy thư mục ie và thư mục packages vào ổ (C:)
Truy cập địa chỉ sau trên trình duyệt: http://www.catalog.update.microsoft.com/Home.aspx để tải các gói cập nhật kb msu hoặc cab về máy và lưu trong thư mục packages. Gõ tên gói kb vào khung tìm kiếm và tải về máy chẳng hạn như kb3212646, lưu ý nền tảng của bộ cài 32 hay 64 bit mà tải về gói tương ứng.
Truy cập thư mục USB 3.0 Drivers tải về copy thư mục tương ứng với nền tảng Win 7 đang build vào ổ (C:),ví dụ bạn đang build bản 64 bit thì copy thư mục usb3.0x64.
Khởi chạy Windows Powershell bằng quyền quản trị, một trong hai lệnh tương ứng để build Windows 7
1. Xem tên phiên bản windows trong tập tin gắn kết install.wim lưu trong thư mục sources của thư mục setup:
- Windows Powershell:
Get-WindowsImage –ImagePath C:\setup\sources\install.wim
- Dism:
Dism /Get-ImageInfo /ImageFile:C:\setup\sources\install.wim
2. Xóa bỏ một phiên bản tích hợp trong install.wim
Giả sử bạn muốn xóa phiên phải Home Basic đang có giá trị index bằng 1, sử dụng lệnh sau:
- Windows Powershell:
Remove-WindowsImage -ImagePath C:\setup\sources\install.wim -Index 1 -CheckIntegrity
- Dism:
Dism /Delete-Image /ImageFile:C:\setup\sources\install.wim /Index:1
Mở rộng: Nếu bạn muốn chỉ giữ lại phiên bản Ultimate, tiếp tục sử dụng Get-WindowsImage kiểm tra giá trị index tương ứng phiên bản rồi dùng Remove-WindowsImage để xóa2. Xóa bỏ một phiên bản tích hợp trong install.wim
Giả sử bạn muốn xóa phiên phải Home Basic đang có giá trị index bằng 1, sử dụng lệnh sau:
- Windows Powershell:
Remove-WindowsImage -ImagePath C:\setup\sources\install.wim -Index 1 -CheckIntegrity
- Dism:
Dism /Delete-Image /ImageFile:C:\setup\sources\install.wim /Index:1
- Windows Powershell:
Mount-WindowsImage –ImagePath C:\setup\sources\install.wim –Index 1 –Path C:\offline\windows
- Dism:
Dism /Mount-Image /ImageFile:C:\setup\sources\install.wim /Index:1 /MountDir:C:\offline\windows
4. Mount tập tin gắn kết boot.wim vào thư mục boot của thư mục offline:
4. Mount tập tin gắn kết boot.wim vào thư mục boot của thư mục offline:
- Windows Powershell:
Mount-WindowsImage –ImagePath C:\setup\sources\boot.wim –Index 1 –Path C:\offline\boot
- Dism:
Dism /Mount-Image /ImageFile:C:\setup\sources\boot.wim /Index:1 /MountDir:C:\offline\boot- Windows Powershell:
Add-WindowsPackage –Path C:\offline\windows –PackagePath C:\ie
Dism:
Dism /Image:C:\offline\windows /Add-Package /Packagepath:C:\ie
Add-WindowsPackage –Path C:\offline\windows –PackagePath C:\ie
Dism:
Dism /Image:C:\offline\windows /Add-Package /Packagepath:C:\ie
7. Tích hợp usb 3.0 driver vào windows
- Windows Powershell:
Add-WindowsDriver –Path C:\offline\windows –Driver C:\usb3.0x64 –Recurse
- Dism:
Dism /Image:C:\offline\windows /Add-Driver /Driver:C:\usb3.0x64 /Recurse
8. Tích hợp usb 3.0 driver vào boot.wim
- Windows Powershell:
Add-WindowsDriver –Path C:\offline\boot –Driver C:\usb3.0x64 –Recurse
- Dism:
Dism /Image:C:\offline\boot /Add-Driver /Driver:C:\usb3.0x64 /Recurse
9. Xem tính năng Features có sẵn và trạng thái của nó:
- Windows Powershell
Get-WindowsOptionalFeature –Path C:\offline\windows
- Dism:
Dism /Image:C:\offline\windows /Get-Features
10. Tắt tính năng đang ở trạng thái Enable:
Ví dụ bạn muốn tắt tính năng WindowsGadgetPlatform
- Windows Powershell:
Disable-WindowsOptionalFeature –Path C:\offline\windows –FeatureName WindowsGadgetPlatform
- Dism:
Dism /Image:C:\offline\windows /Disable-Feature /FeatureName:WindowsGadgetPlatform
11. Xem thông tin các gói packages đã được tích hợp:
- Windows Powershell:
Get-WindowsPackage –Path C:\offline\windows
- Dism:
Dism /Image:C:\offline\windows /Get-Packages
12. Gỡ bỏ một gói package đã được tích hợp:
Ví dụ bạn muốn gỡ bỏ gói PackageName: Microsoft-Windows-Client-LanguagePack-Package~31bf3856ad364e35~amd64~en-US~6.1.7601.17514
- Windows Powershell:
Remove-WindowsPackage –Path C:\offline\windows –PackageName Microsoft-Windows-Client-LanguagePack-Package~31bf3856ad364e35~amd64~en-US~6.1.7601.17514
- Dism /Image:C:\offline\windows /Remove-Package /PackageName:Microsoft-Windows-Client-LanguagePack-Package~31bf3856ad364e35~amd64~en-US~6.1.7601.17514
13. Load Registry để chỉnh sửa:
- Tùy chỉnh HKML\SOFTWARE
Trong bước này bạn có thể tùy chỉnh tắt bớt các tác vụ mặc định như bảo trì hề thống, windows defender..., cách làm là chúng ta sẽ thêm giá trị khóa trong registry và chúng ta sẽ chỉnh sửa offline bằng cách load các tập tin cấu hình trong thư mục Config cụ thể là tập tin SOFTWARE trong đường dẫn C:\offline\windows\windows\system32\config. Sử dụng lệnh sau trong powershell
Bạn cứ hiểu giá trị wimsoftware nó bằng với SOFTWARE nếu khi cài trên máy, thay vì bạn chỉnh sửa trong SOFTWARE thì bạn có thể chỉnh sửa trong wimsoftware offline
Giả sử tôi muốn tắt tính năng cho phép tất cả người dùng có thể cài đặt cập nhật, tôi sẽ điều hướng đến HKEY_LOCAL_MACHINE\wimsoftware\Policies\Microsoft\Windows, tôi chuột phải giá trị Windows chọn New > Key và đặt tên là WindowsUpdate và trong giá trị WindowsUpdate bên phải tôi lại tạo một khóa REG_DWORD mới có tên ElevateNonAdmins và đặt giá trị bằng 0
Mẹo: Bạn cũng có thể thêm mới bằng cách add trực tiếp trong powershell luôn cũng được ví dụ với khóa trên:
Cũng như chỉnh sửa giá trị SOFTWARE, chúng ta sẽ chỉnh sửa tập tin SYSTEM trong thư mục config, gõ lệnh sau vào powershell:
Ở đấy bạn có thể điều chỉnh hoặc xóa khóa tương ứng. Điều hướng đến đường dẫn HKEY_LOCAL_MACHINE\wimservice\ControlSet001\Services
Bên dưới Services chính là các thư mục dịch vụ tương ứng, ví dụ bạn muốn tắt dịch vụ Windows Search thì điều hướng đến HKEY_LOCAL_MACHINE\wimservice\ControlSet001\Services\WSearch
Bên phải bạn cứ để ý giá trị khóa tên Start và giá trị nó được đặt từ 1 tới 4 theo thế này (1: automatic (delay), 2: automatic, 3: manual, 4: disable), nếu bạn muốn tắt thì nhấp đúp chuột vào sửa thành 4
Mẹo: Bạn cũng có thể thêm mới bằng cách add trực tiếp trong powershell luôn cũng được ví dụ với khóa trên:
Tập tin Unattend.xml trong thư mục Panther được cấu hinh cài đặt tự động bỏ qua các bước tạo tài khoản mới, chèn key, keyboard, múi giờ....
Trước tiên bạn nên cài đặt phần mềm notepadd++ cấu hình theme đen và khi chỉnh sửa bạn sẽ thấy dòng thông tin nó màu trắng rất dễ chỉnh
Khi sửa xong copy cà thư mục Panther vào đường dẫn C:\offline\windows\windows
- Copy logo ( thay logo khác ) trong thư mục oobe vào đường dẫn C:\offline\windows\windows\system32\oobe
15. Tạo file SetupComplete.cmd
Tập tin SetupComplete.cmd trong thư mục Scripts tải về được cấu hình xóa tập tin Unattend.xml và thư mục Scripts sau khi cài mới, tập tin này được thư thi ở màn hình
Mở rộng: Bạn có thể thêm lệnh reg add trong tập tin SetupComplete.cmd mà không cần phải chỉnh sửa registry offline, ví dụ bạn có thể thêm 2 lệnh sau vào
Sửa lại tập tin SetupComplete.cmd ( chuột phải chọn Edit ) thêm lệnh sau vào
Và khi cài đặt wandriver sẽ chạy tự động như hình bên dưới
Khi chỉnh sửa xong copy thư mục Scripts vào đường dẫn C:\offline\windows\windows\setup
16. Unmount boot.wim
- Windows Powershell
Dismount-WindowsImage –Path C:\offline\boot -Save
- Dism
Dism /Unmount-Image /MountDir:C:\offline\boot /Commit
17. Unmount install.wim
- Windows Powershell
Dismount-WindowsImage –Path C:\offline\windows -Save
- Dism
Dism /Unmount-Image /MountDir:C:\offline\windows /Commit
18. Tạo iso mới
Trước tiên copy tập tin oscdimg.exe trong thư mục Oscdimg tương ứng với nền tảng win đang cài trên máy nếu là win 64 bit thì copy oscdimg.exe trong thư mục x64 vào ổ (C:)
Cú pháp tạo iso mới như sau
64-Bit:
- Windows Powershell:
Disable-WindowsOptionalFeature –Path C:\offline\windows –FeatureName WindowsGadgetPlatform
- Dism:
Dism /Image:C:\offline\windows /Disable-Feature /FeatureName:WindowsGadgetPlatform
11. Xem thông tin các gói packages đã được tích hợp:
- Windows Powershell:
Get-WindowsPackage –Path C:\offline\windows
- Dism:
Dism /Image:C:\offline\windows /Get-Packages
12. Gỡ bỏ một gói package đã được tích hợp:
Ví dụ bạn muốn gỡ bỏ gói PackageName: Microsoft-Windows-Client-LanguagePack-Package~31bf3856ad364e35~amd64~en-US~6.1.7601.17514
- Windows Powershell:
Remove-WindowsPackage –Path C:\offline\windows –PackageName Microsoft-Windows-Client-LanguagePack-Package~31bf3856ad364e35~amd64~en-US~6.1.7601.17514
- Dism /Image:C:\offline\windows /Remove-Package /PackageName:Microsoft-Windows-Client-LanguagePack-Package~31bf3856ad364e35~amd64~en-US~6.1.7601.17514
13. Load Registry để chỉnh sửa:
- Tùy chỉnh HKML\SOFTWARE
Trong bước này bạn có thể tùy chỉnh tắt bớt các tác vụ mặc định như bảo trì hề thống, windows defender..., cách làm là chúng ta sẽ thêm giá trị khóa trong registry và chúng ta sẽ chỉnh sửa offline bằng cách load các tập tin cấu hình trong thư mục Config cụ thể là tập tin SOFTWARE trong đường dẫn C:\offline\windows\windows\system32\config. Sử dụng lệnh sau trong powershell
reg load HKLM\wimsoftware C:\offline\windows\system32\config\SOFTWARE
Sau khi load xong lúc này bạn mở Regedit Editor sẽ thấy giá trị wimsoftware nằm bên dưới HKLMBạn cứ hiểu giá trị wimsoftware nó bằng với SOFTWARE nếu khi cài trên máy, thay vì bạn chỉnh sửa trong SOFTWARE thì bạn có thể chỉnh sửa trong wimsoftware offline
Giả sử tôi muốn tắt tính năng cho phép tất cả người dùng có thể cài đặt cập nhật, tôi sẽ điều hướng đến HKEY_LOCAL_MACHINE\wimsoftware\Policies\Microsoft\Windows, tôi chuột phải giá trị Windows chọn New > Key và đặt tên là WindowsUpdate và trong giá trị WindowsUpdate bên phải tôi lại tạo một khóa REG_DWORD mới có tên ElevateNonAdmins và đặt giá trị bằng 0
Mẹo: Bạn cũng có thể thêm mới bằng cách add trực tiếp trong powershell luôn cũng được ví dụ với khóa trên:
reg add HKLM\wimsoftware\Policies\Microsoft\Windows\WindowsUpdate /v ElevateNonAdmins /t REG_DWORD /d 0 /f
Sau khi chỉnh sửa xong sử dụng lệnh sau unload đóng wimsoftware lại
reg unload HKLM\wimsoftware
- Tắt dịch vụ servicesCũng như chỉnh sửa giá trị SOFTWARE, chúng ta sẽ chỉnh sửa tập tin SYSTEM trong thư mục config, gõ lệnh sau vào powershell:
reg load HKLM\wimservice C:\offline\windows\windows\system32\config\SYSTEM
Sau khi load xong lúc này bạn mở Regedit Editor sẽ thấy giá trị wimservice nằm bên dưới HKLMỞ đấy bạn có thể điều chỉnh hoặc xóa khóa tương ứng. Điều hướng đến đường dẫn HKEY_LOCAL_MACHINE\wimservice\ControlSet001\Services
Bên dưới Services chính là các thư mục dịch vụ tương ứng, ví dụ bạn muốn tắt dịch vụ Windows Search thì điều hướng đến HKEY_LOCAL_MACHINE\wimservice\ControlSet001\Services\WSearch
Bên phải bạn cứ để ý giá trị khóa tên Start và giá trị nó được đặt từ 1 tới 4 theo thế này (1: automatic (delay), 2: automatic, 3: manual, 4: disable), nếu bạn muốn tắt thì nhấp đúp chuột vào sửa thành 4
Mẹo: Bạn cũng có thể thêm mới bằng cách add trực tiếp trong powershell luôn cũng được ví dụ với khóa trên:
reg add HKLM\wimservice\ControlSet001\services\WSearch /v Start /t REG_DWORD /d 4 /f
Sau khi chỉnh sửa xong sử dụng lệnh sau unload đóng wimservice lại
reg unload HKLM\wimservice
14. Tạo file trả lời tự động Unattend.xmlTập tin Unattend.xml trong thư mục Panther được cấu hinh cài đặt tự động bỏ qua các bước tạo tài khoản mới, chèn key, keyboard, múi giờ....
Trước tiên bạn nên cài đặt phần mềm notepadd++ cấu hình theme đen và khi chỉnh sửa bạn sẽ thấy dòng thông tin nó màu trắng rất dễ chỉnh
Khi sửa xong copy cà thư mục Panther vào đường dẫn C:\offline\windows\windows
- Copy logo ( thay logo khác ) trong thư mục oobe vào đường dẫn C:\offline\windows\windows\system32\oobe
15. Tạo file SetupComplete.cmd
Tập tin SetupComplete.cmd trong thư mục Scripts tải về được cấu hình xóa tập tin Unattend.xml và thư mục Scripts sau khi cài mới, tập tin này được thư thi ở màn hình
Mở rộng: Bạn có thể thêm lệnh reg add trong tập tin SetupComplete.cmd mà không cần phải chỉnh sửa registry offline, ví dụ bạn có thể thêm 2 lệnh sau vào
reg add HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate /v ElevateNonAdmins /t REG_DWORD /d 0 /f
reg add HKLM\SYSTEM\ControlSet\services\WSearch /v Start /t REG_DWORD /d 4 /f
Nếu bạn muốn tích hợp wandriver offline thì trước lúc unmount install.wim tạo mới một thư mục tên ví dụ Installer trong đường dẫn C:\offline\windows rồi copy driver vào đóSửa lại tập tin SetupComplete.cmd ( chuột phải chọn Edit ) thêm lệnh sau vào
start /wait C:\Installer\[Win7.x64]WanDrv6.exe
Và thêm dòng sau để xóa thư mục Installer và thư mục Drivers sau khi cài
rd /q /s C:\Installer
rd /q /s C:\Drivers
Viết đầy dủ sẽ là ví dụ:
start /wait C:\Installer\[Win7.x64]WanDrv6.exe
del /q /f C:\Windows\Panther\Unattend.xml
del /q /f C:\Windows\Panther\Unattendgc\setupact.log
rd /q /s C:\Installer
rd /q /s C:\Drivers
rd /q /s C:\Windows\Scripts
Khi chỉnh sửa xong copy thư mục Scripts vào đường dẫn C:\offline\windows\windows\setup
16. Unmount boot.wim
- Windows Powershell
Dismount-WindowsImage –Path C:\offline\boot -Save
- Dism
Dism /Unmount-Image /MountDir:C:\offline\boot /Commit
17. Unmount install.wim
- Windows Powershell
Dismount-WindowsImage –Path C:\offline\windows -Save
- Dism
Dism /Unmount-Image /MountDir:C:\offline\windows /Commit
18. Tạo iso mới
Trước tiên copy tập tin oscdimg.exe trong thư mục Oscdimg tương ứng với nền tảng win đang cài trên máy nếu là win 64 bit thì copy oscdimg.exe trong thư mục x64 vào ổ (C:)
Cú pháp tạo iso mới như sau
64-Bit:
C:\Oscdimg -l<LABEL> -u1 -udfver102 -bootdata:2#p0,e,b<PATH>\boot\etfsboot.com#pEF,e,b<PATH>\efi\microsoft\boot\efisys.bin <PATH> <PATH>\NAME.iso
32-Bit:
C:\oscdimg.exe -l<LABEL> -m -u2 -b<PATH>\boot\etfsboot.com <PATH> <PATH>\NAME.iso
Ví dụ tạo iso với bản 64 bit lấy tên nhãn CENA_X64FRE_EN-US_DV5 và tên ví dụ win7_x64.iso lưu trong thư mục iso tại ổ (C:), sử dụng lệnh sau trong powershell:
C:\oscdimg -lGSP1RMCULXFRER_EN_DVD -u1 -udfver102 -bootdata:2#p0,e,bC:\setup\boot\etfsboot.com#pEF,e,bC:\setup\efi\microsoft\boot\efisys.bin C:\setup C:\iso\Win7_x64.iso