Với việc xây dựng lại bộ cài đặt giúp tiết kiệm rất nhiều thời gian khi triển khai trên từng máy so với bộ cài gốc. Lấy ví dụ bạn muốn triển khai cài đặt Windows 7 cho 100 máy tính trong cùng mạng công ty bạn không thể nào cài đặt từng máy rồi mới cập nhật, cài đặt phần mềm... rất mất thời gian và điều bạn có thể làm là xây dựng trước bộ cài hoàn chỉnh trước khi triển khai nó trên các máy tính.
Tuy nhiên việc rebuild lại bộ cài cũng không hề đơn giản mà theo tài liệu kỹ thuật từ trang technet bạn phải cài đặt phần mềm quản lý hình ảnh và sau đó dùng phần mềm này rebuild lại. Nếu bạn không nắm chắc kiến thức cơ bản chắc chắn bạn sẽ làm sai và rất mất thời gian để có thể thực hành đúng.
Sau vài năm nghiên cứu tôi đã biên soạn sẵn bộ tài liệu này giúp các bạn đơn giản hơn khi xây dựng lại bộ cài mà không cần phải sử dụng đến các phần mềm quản lý. Trong tài liệu sẽ viết theo cách phổ thông dễ hiểu nhất tránh sử dụng các từ kỹ thuật gây khó hiểu cho bạn dẫn đến làm sai khi rebuild.
Trong phần này bao gồm các chuyên mục sau:
- Tích hợp trước các bản cập nhật và trình duyệt internet explorer 11 vào bộ cài gốc.
- Tạo tập tin xml trả lời cài đặt tự động.
- Triển khai bộ cài lên máy ảo vmware player.
- Cài đặt phần mềm, ứng dụng văn phòng, tùy chỉnh...
- Chạy công cụ sysprep kết hợp với tập tin xml trả lời tự động tùy chỉnh.
- Gắn kết các thư mục tập tin trong phân vùng cài đặt Windows 7 thành tập tin gắn kết install.wim
- Đóng gói lại thành bộ cài hoàn chỉnh
- Test bộ cài
- Bộ cài Windows 7 sevice pack 1 nguyên gốc tải tại đây
- Các bản cập nhật
- Tải và cài đặt máy ảo vmware player (hoặc vmware workstation cũng được)
- Tập tin iso vmware boot tải tại đây
- 1 chiếc usb dung lượng tối thiểu 8 Gb
- Phần mềm, Office...
Phần 1: Tích hợp trước các bản cập nhật và trình duyệt internet explorer 11 vào bộ cài gốc
Để tích hợp trước các bản cập nhật và trình duyệt internet explorer 11 vào bộ cài gốc yêu cầu bạn phải mount (nói theo cách phổ thông giống như cách chúng ta giải nén file vậy) tập tin gắn kết install.wim của bộ cài iso và tập tin này nằm trong thư mục sources ra một thư mục cụ thể trước khi sử dùng tùy chọn các dùng lệnh command line thêm vào bộ cài và sau đó gắn kết chúng lại.
Chuẩn bị sẵn bộ cài Windows 7 sevice pack 1
1 chiếc usb dung lượng từ 8 Gb
Phần mềm Rufus tạo bộ cài ra usb tải tại đây
Tải về bản cập nhật offline dành cho Windows 7 lưu ý bạn chỉ cần tải bản cập nhật gần đây nhất thôi là đủ rồi như bây giờ tháng 10 bạn search google từ khóa "October, 2016 Security Monthly Quality Rollup for Windows 7" và truy cập vào trang tải về của Microsoft cụ thể bây giờ là bản cập nhật msu KB3185330 tại địa chỉ https://support.microsoft.com/en-us/kb/3185330
1 chiếc usb dung lượng từ 8 Gb
Phần mềm Rufus tạo bộ cài ra usb tải tại đây
Tải về bản cập nhật offline dành cho Windows 7 lưu ý bạn chỉ cần tải bản cập nhật gần đây nhất thôi là đủ rồi như bây giờ tháng 10 bạn search google từ khóa "October, 2016 Security Monthly Quality Rollup for Windows 7" và truy cập vào trang tải về của Microsoft cụ thể bây giờ là bản cập nhật msu KB3185330 tại địa chỉ https://support.microsoft.com/en-us/kb/3185330
Để tích hợp được trình duyệt internet explorer 11 bạn tải gói cập nhật KB tại đây
Máy đăng cài đặt Windows 7 64 bit trở lên
Gắn usb vào máy khởi chạy phần mềm rufus tìm đến file iso Windows 7
Sau khi gắn iso vào rufus để tùy chỉnh như hình dưới bấm Start bắt đầu xả bộ cài ra usb
Giả sử sau khi tạo bộ cài ra usb ta được như hình dưới lưu ý ký tự của usb như hình là H
Trên một phân vùng ổ đĩa nào còn trống tạo 3 thư mục lần lượt là ie, mount, updates
Di chuyển gói cập nhật msu đã tải về ở trang chủ Microsoft vào thư mục updates, tiếp tục giản nén file cài đặt trình duyệt ie 11 copy các tập tin của thư mục ie của file nén vào thư mục ie vừa tạo và copy các tập tin msu trong thư mục updates của file nén vào thư mục updates vừa tạo. Lưu ý bản cập nhật và gói cài đặt trình duyệt phải phù hợp với nền tảng của bộ cài 32 bit hoặc 64 bit
Khởi chạy Command Prompt bằng quyền Administrator.
Kiểm tra thông tin của tập tin hình ảnh gắn kết install.wim sử dụng lệnh
Dism /Get-ImageInfo /ImageFile:H:\sources\install.wim
Như vậy sau khi sử dụng lệnh trên bạn thấy thông tin trong tập tin gắn kết install.wim bao gồm tất cả 4 phiên bản Windows 7 tương ứng với giá trị index của nó
Microsoft Windows [Version 10.0.14393]
(c) 2016 Microsoft Corporation. All rights reserved.
C:\Windows\system32>Dism /Get-ImageInfo /ImageFile:H:\sources\install.wim
Deployment Image Servicing and Management tool
Version: 10.0.14393.0
Details for image : H:\sources\install.wim
Index : 1
Name : Windows 7 Home Basic
Description : Windows 7 Home Basic
Size : 11,710,161,360 bytes
Index : 2
Name : Windows 7 Home Premium
Description : Windows 7 Home Premium
Size : 12,222,587,449 bytes
Index : 3
Name : Windows 7 Professional
Description : Windows 7 Professional
Size : 12,122,886,417 bytes
Index : 4
Name : Windows 7 Ultimate
Description : Windows 7 Ultimate
Size : 12,285,492,779 bytes
The operation completed successfully.
C:\Windows\system32>
Bạn muốn tích hợp cập nhật vào phiên bản nào thì phải mount phiên bản đó ra tương ứng với giá trị index của nó
Mount tập tin gắn kết install.wim vào thư mục update sử dụng lệnh sau:
Dism /Mount-Image /ImageFile:H:\sources\install.wim /index:3 /MountDir:E:\mount
Index : 3 tương ứng với phiên bản Windows 7 Professional
Sau khi mount tập tin install.wim tương ứng với giá trị index:3 vào thư mục mount ta được
Tích hợp các bản cập nhật trong thư mục updates vào thư mục mount sử dụng lệnh
Dism /Image:E:\mount /Add-Package /Packagepath:E:\updates
Tích hợp các file cab trong thư mục ie vào thư mục mount sử dụng lệnh
Dism /image:E:\mount /Add-Package /Packagepath:E:\ie
Lưu ý gói cab SetupPolicy sẽ báo lỗi bạn cứ kệ nó
Gắn kết các thư mục tập tin trong thư mục updates về lại tập tin gắn kết install.wim sử dụng lệnh
Dism /Unmount-Image /MountDir:E:\mount /Commit
Như vậy bạn đã vừa thêm các gói cập nhật và trình duyệt ie 11 vào tập tin hình ảnh install.wim, nếu bạn muốn tích hợp vào phiên bản khác bạn lại tiếp tục mount tập tin này ra tương ứng với giá trị index của nó ví dụ bạn muốn thêm vào phiên bản Ultimate thì giá trị index của nó là 4 còn cách dòng lệnh tương tự như trên.
Phần 2: Tạo tập tin autounattend.xml trả lời cài đặt tự động
Mở Notepad ra copy tất cả các đoạn code bên dưới vào sau đó lưu lại thành autounattend.xml định dạng All files và Encoding là UTF-8
<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<settings pass="windowsPE">
<component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SetupUILanguage>
<UILanguage>en-US</UILanguage>
</SetupUILanguage>
<InputLocale>1033:00000409</InputLocale>
<SystemLocale>en-US</SystemLocale>
<UILanguage>en-US</UILanguage>
<UserLocale>en-US</UserLocale>
</component>
<component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SetupUILanguage>
<UILanguage>en-US</UILanguage>
</SetupUILanguage>
<InputLocale>1033:00000409</InputLocale>
<SystemLocale>en-US</SystemLocale>
<UILanguage>en-US</UILanguage>
<UserLocale>en-US</UserLocale>
</component>
<component name="Microsoft-Windows-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Diagnostics>
<OptIn>false</OptIn>
</Diagnostics>
<UserData>
<AcceptEula>true</AcceptEula>
<FullName>Administrator</FullName>
<Organization>Blog Windows 10</Organization>
</UserData>
<EnableFirewall>true</EnableFirewall>
</component>
<component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Diagnostics>
<OptIn>false</OptIn>
</Diagnostics>
<UserData>
<AcceptEula>true</AcceptEula>
<FullName>Administrator</FullName>
<Organization>Blog Windows 10</Organization>
</UserData>
<EnableFirewall>true</EnableFirewall>
</component>
</settings>
<settings pass="generalize">
<component name="Microsoft-Windows-Security-SPP" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SkipRearm>1</SkipRearm>
</component>
</settings>
<settings pass="generalize">
<component name="Microsoft-Windows-Security-SPP" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SkipRearm>1</SkipRearm>
</component>
</settings>
<settings pass="specialize">
<component name="Microsoft-Windows-Security-SPP-UX" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SkipAutoActivation>true</SkipAutoActivation>
</component>
<component name="Microsoft-Windows-Security-SPP-UX" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SkipAutoActivation>true</SkipAutoActivation>
</component>
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ComputerName>PC</ComputerName>
<ProductKey>FJ82H-XT6CR-J8D7P-XQJJ2-GPDD4</ProductKey>
<TimeZone>SE Asia Standard Time</TimeZone>
</component>
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ComputerName>PC</ComputerName>
<ProductKey>FJ82H-XT6CR-J8D7P-XQJJ2-GPDD4</ProductKey>
<TimeZone>SE Asia Standard Time</TimeZone>
</component>
</settings>
<settings pass="oobeSystem">
<component name="Microsoft-Windows-International-Core" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<InputLocale>1033:00000409</InputLocale>
<UILanguage>en-US</UILanguage>
<UserLocale>en-US</UserLocale>
</component>
<component name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<InputLocale>1033:00000409</InputLocale>
<UILanguage>en-US</UILanguage>
<UserLocale>en-US</UserLocale>
</component>
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<RegisteredOwner>Administrator</RegisteredOwner>
<OOBE>
<HideEULAPage>true</HideEULAPage>
<NetworkLocation>Work</NetworkLocation>
<ProtectYourPC>1</ProtectYourPC>
<HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
<SkipMachineOOBE>true</SkipMachineOOBE>
<SkipUserOOBE>true</SkipUserOOBE>
</OOBE>
<DisableAutoDaylightTimeSet>true</DisableAutoDaylightTimeSet>
<FirstLogonCommands>
<SynchronousCommand wcm:action="add">
<RequiresUserInput>false</RequiresUserInput>
<Description>Disable Auto Updates</Description>
<CommandLine>reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v AUOptions /t REG_DWORD /d 1 /f</CommandLine>
</SynchronousCommand>
</FirstLogonCommands>
<AutoLogon>
<Password>
<Value></Value>
<PlainText>true</PlainText>
</Password>
<Enabled>true</Enabled>
<Username>Administrator</Username>
</AutoLogon>
<UserAccounts>
<LocalAccounts>
<LocalAccount wcm:action="add">
<Password>
<Value></Value>
<PlainText>true</PlainText>
</Password>
<DisplayName>Administrator</DisplayName>
<Group>Administrators</Group>
<Name>Administrator</Name>
</LocalAccount>
</LocalAccounts>
</UserAccounts>
</component>
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<RegisteredOwner>Administrator</RegisteredOwner>
<OOBE>
<HideEULAPage>true</HideEULAPage>
<NetworkLocation>Work</NetworkLocation>
<ProtectYourPC>1</ProtectYourPC>
<HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
<SkipMachineOOBE>true</SkipMachineOOBE>
<SkipUserOOBE>true</SkipUserOOBE>
</OOBE>
<DisableAutoDaylightTimeSet>true</DisableAutoDaylightTimeSet>
<FirstLogonCommands>
<SynchronousCommand wcm:action="add">
<RequiresUserInput>false</RequiresUserInput>
<Description>Disable Auto Updates</Description>
<CommandLine>reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v AUOptions /t REG_DWORD /d 1 /f</CommandLine>
</SynchronousCommand>
</FirstLogonCommands>
<AutoLogon>
<Password>
<Value></Value>
<PlainText>true</PlainText>
</Password>
<Enabled>true</Enabled>
<Username>Administrator</Username>
</AutoLogon>
<UserAccounts>
<LocalAccounts>
<LocalAccount wcm:action="add">
<Password>
<Value></Value>
<PlainText>true</PlainText>
</Password>
<DisplayName>Administrator</DisplayName>
<Group>Administrators</Group>
<Name>Administrator</Name>
</LocalAccount>
</LocalAccounts>
</UserAccounts>
</component>
</settings>
<settings pass="offlineServicing">
<component name="Microsoft-Windows-LUA-Settings" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<EnableLUA>false</EnableLUA>
</component>
</settings>
<settings pass="offlineServicing">
<component name="Microsoft-Windows-LUA-Settings" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<EnableLUA>false</EnableLUA>
</component>
</settings>
</unattend>
Trong bài viết sau tôi sẽ hướng dẫn tùy chỉnh đoạn code này tạm thời bạn cứ làm theo hướng dẫn, tập tin autounattend.xml áp dụng cho cả 2 nền tảng 32 bit và 64 bit. Lưu ý bạn thay key màu đỏ tương ứng với phiên bản của nó, như trên là tôi đang sử dụng KMS keyKMS Client Setup Key
Windows 7 Professional
FJ82H-XT6CR-J8D7P-XQJJ2-GPDD4
Windows 7 Professional N
MRPKT-YTG23-K7D7T-X2JMM-QY7MG
Windows 7 Professional E
W82YF-2Q76Y-63HXB-FGJG9-GF7QX
Windows 7 Enterprise
33PXH-7Y6KF-2VJC9-XBBR8-HVTHH
Windows 7 Enterprise N
YDRBP-3D83W-TY26F-D46B2-XCKRJ
Windows 7 Enterprise E
C29WB-22CC8-VJ326-GHFJW-H9DH4
Hoặc bạn cũng có thể dùng key kích hoạt tương ứng với phiên bản Windows mà bạn muốn cài đặt cũng được.
Sau khi lưu lại tập tin autounattend.xml bạn copy nó vào usb
Phần 3: Triển khai cài đặt Windows 7 trên máy ảo vmware player
Trong phần này bạn tải và cài đặt máy ảo vmware player, cấu hình máy ảo và triển khai bộ cài
Tạo một thư mục ở ổ đĩa trống khoảng 20 Gb lấy tên Windows 7 chẳng hạn mục đích khi bạn cài đặt Windows 7 lên máy ảo thì tất cả các thư mục và tập tin của máy ảo sẽ nằm trong thư mục này.
Khởi chạy máy ảo bấm chọn Create a new virtal maniche, ở hộp thoại New virtual machine wizard chọn I will install the operating system later và nhấn next. Trong phần Select a guest operating system chọn Microsoft Windows và bên dưới bấm mũi tên sổ xuống chọn Windows 7 x64 nếu muốn cài đặt Windows 7 64 bit và Windows 7 nếu muốn cài đặt Windows 7 32 bit.
Trong phần Name the virtual maniche đặt tên cho máy ảo và ô Location bấm Browse điều hướng đến thư mục mà bạn vừa tạo ở bước trên
Trong phần Specify disk capacty bạn có thể tùy chỉnh dung lượng ổ ảo hoặc cứ để nguyên mặc định nhấn Next cũng được và bấm Finish trong hộp thoại kế tiếp
Tiếp tục trong máy ảo Windows 7 vừa tạo nhấn edit virtual maniche settings. Ở tab Hardware trong phần CD/DVD (Sata) bên phải tích vào ô Use ISO image file bấm Browse điều hướng đến tập tin vmware boot mà bạn đã tải về ở khâu chuẩn bị.
Trong phần Usb controller chọn USB 2.0 và tích hết vào các ô bên phải. Phần Printer bạn bấm Remove nó đi.
Chuyển qua tab Options phần Power bạn tích vào các ô bên phải và bấm OK hoàn tất
Khi cấu hình xong bấm Play virtual machine bắt đầu cài đặt Windows 7 trên máy ảo trong tab Player bấm chuột tìm đến Remove devices chọn usb cài đặt Windows 7 và bấm Connect
Sau khi kết nối usb với máy ảo quay trở lại bạn bấm mũi tên xuống chọn usb và nhấn enter
Nếu kết nối thành công Windows sẽ load file cài đặt
Chọn phiên bản mà bạn đã thêm cập nhật và trình duyệt ie 11
Trong phần Where you want install Windows tích chọn Drive Options, tiếp tục bấm New bấm Apply và bấm Ok xác nhận. Lại chọn Partititon 1: System Reserved bấm Delete nó đi bấm Ok xác nhận. Cuối cùng bấm chọn Partition 2 và bấm Next bắt đầu cài đặt
Khi tới màn hình bên dưới bạn không phải thao tác thêm gì cả vì đã có file trả lời cài đặt tự đông hết rồi chỉ chờ nó boot vào màn hình desktop thôi.
Và sau khi đã cài đặt xong boot vào desktop
Lúc này bạn nên tắt máy ảo đi. Mẹo bạn nên copy cả thư mục Windows 7 sang một nơi khác phòng khi đang làm gặp lỗi hay muốn làm bản khác thì đỡ phải cài lại từ đầu.
Sau khi copy xong khởi chạy máy ảo bấm vào Edit virtual machine settings chuyển tại tab Hardware mục CD/DVD bỏ dấu tích trong các ô Connect và Connect at power on rồi bấm Ok thoát hộp thoại.
Bấm Play virtual machine khởi chạy Windows 7 trên máy ảo giữ phím F2 để vào bios của máy ảo chuyển qua tab boot bấm phím (+) (-) trên bàn phím chuyển boot từ CD-Rom Drive lên đầu sau đó bấm F10 lưu lại tùy chỉnh.