03/02/2017

Quy trình build Windows 7 sử dụng Windows Powershell trên Windows 10

lượt xem 1 nhận xét thumb_up

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
Tải về công cụ tham khảo được tôi làm mẫu sẵn: https://goo.gl/EKPc79

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óa


3. Mount tập tin gắn kết install.wim vào thư mục windows của thư mục offline:


- 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:




- 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

5. Tích hợp các gói packages kb trong thư mục packages:


- Windows Powershell:
Add-WindowsPackage –Path C:\offline\windows –PackagePath C:\packages

Dism:
Dism /Image:C:\offline\windows /Add-Package /Packagepath:C:\packages

6. Tích hợp gói ie 11:


- Windows Powershell:
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

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 HKLM


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:

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ụ services

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:

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.xml

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

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



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:

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



comment 1 nhận xét
  1. Sao tôi làm theo các bước và tải các gói update về tích hợp, nhưng khi cài vào máy, khi update từ windows nó vẫn bắt tải các gói trước mình update offline vậy addmin

    Trả lờiXóa