Chuyên mục

Blogger
  • Blogger Template 8
    • Seo Blogspot 29
      • Thiết kế Blogspot 24
        • Thủ thuật Blogspot 69
          • Tiện ích Blogspot 31
            Máy tính
            • Phần mềm 45
              • Sửa lỗi Windows 20
                • Thủ thuật Windows 78
                  • Cài đặt Windows 41

                    Cách thêm đoạn script tùy chỉnh để khởi chạy trong tiến trình cài đặt Windows

                    Khi thiết lập và cài đặt, Windows được cấu hình chạy các đoạn script tùy chỉnh trước khi hoàn thành quá trình cài đặt vào đến desktop. Tuy nhiên đoạn script này phải được cấu hình và thêm vào trước khi cài đặt. Có 2 kịch bản script sẽ khởi chạy đó là trước khi vào đến màn hình thiết lập tài khoản bằng tệp SetupComplete.cmd và sau khi đã tạo tài khoản bằng tệp Unattend.xml.

                    Tệp SetupComplete.cmd

                    Đoạn script khởi chạy trước khi tạo tài khoản được tạo bằng tệp SetupComplete.cmd và được đặt trong thư mục Scripts (tạo mới) theo đường dẫn C:\Windows\Setup hay %WINDIR%\Setup

                    Ví dụ về nội dung trong tệp SetupComplete.cmd

                    Copy
                    powercfg -h on
                    reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v ConsentPromptBehaviorAdmin /t REG_DWORD /d 0 /f
                    reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v PromptOnSecureDesktop /t REG_DWORD /d 0 /f
                    Dism /Online /Remove-ProvisionedAppxPackage /PackageName:Microsoft.WindowsFeedbackHub_2018.822.2.0_neutral_~_8wekyb3d8bbwe
                    Dism /Online /Remove-ProvisionedAppxPackage /PackageName:Microsoft.Wallet_2.2.18179.0_neutral_~_8wekyb3d8bbwe
                    Dism /Online /Remove-ProvisionedAppxPackage /PackageName:Microsoft.MicrosoftSolitaireCollection_4.2.8172.0_neutral_~_8wekyb3d8bbwe
                    del /q /f %windir%\system32\sysprep\Sysprep_succeeded.tag
                    del /q /f %windir%\system32\sysprep\unattend.xml
                    del /q /f %windir%\panther\unattend.xml
                    del /q /f %windir%\panther\unattendgc\setupact.log
                    rd /s /q %windir%\Setup\Scripts

                    Lưu ý: Lưu tệp với định dạng All files và Encoding: ANSI

                    Sau khi Windows được cài đặt nhưng trước khi màn hình đăng nhập xuất hiện, Windows sẽ tìm kiếm tệp SetupComplete.cmd trong thư mục Scripts theo đường dẫn %WINDIR%\Setup. Nếu tìm thấy tệp SetupComplete.cmd , Windows sẽ chạy tập lệnh. Hệ thống sẽ ghi lại hành động trong tệp Setupact.log theo đường dẫn %WINDIR%\Panther\UnattendGC

                    Cảnh báo: Bạn không thể khởi động lại hệ thống và tiếp tục chạy SetupComplete.cmd, bạn không nên khởi động lại hệ thống bằng cách thêm một lệnh như shutdown -r trong tệp, điều này sẽ đặt hệ thống ở trạng thái xấu.

                    Tệp Unattend.xml

                    Đoạn script khởi chạy sau khi tạo tài khoản được tạo bằng tệp Unattend.xml được đặt trong thư mục Panther theo đường dẫn C:\Windows hoặc trong thư mục Sysprep theo đường dẫn C:\Windows\System32 hoặc được đặt cùng phân vùng gốc của USB, đĩa cài đặt ngay cạnh tệp setup.exe

                    Các lệnh command trong nội dung của tệp Unattend.xml được cấu hình tham chiếu theo đường dẫn

                    Copy
                    oobeSystem\Microsoft-Windows-Shell-Setup\FirstLogonCommands\SynchronousCommand

                    Cụ thể nội dung tệp như sau:

                    Copy
                    <?xml version="1.0" encoding="UTF-8"?>
                    <unattend xmlns="urn:schemas-microsoft-com:unattend">
                      <settings pass="oobeSystem">
                        <!--Win 32 bit-->
                        <component xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
                          <FirstLogonCommands>
                            <SynchronousCommand wcm:action="add">
                              <CommandLine>Lệnh 1</CommandLine>
                              <Order>1</Order>
                              <RequiresUserInput>false</RequiresUserInput>
                            </SynchronousCommand>
                            <SynchronousCommand wcm:action="add">
                              <CommandLine>Lệnh 2</CommandLine>
                              <Order>2</Order>
                              <RequiresUserInput>false</RequiresUserInput>
                            </SynchronousCommand>
                            <SynchronousCommand wcm:action="add">
                              <CommandLine>Lệnh 3</CommandLine>
                              <Order>3</Order>
                              <RequiresUserInput>false</RequiresUserInput>
                            </SynchronousCommand>
                            <SynchronousCommand wcm:action="add">
                              <CommandLine>Lệnh n</CommandLine>
                              <Order>n</Order>
                              <RequiresUserInput>false</RequiresUserInput>
                            </SynchronousCommand>
                          </FirstLogonCommands>
                        </component>
                        <!--Win 64 bit-->
                        <component xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
                          <FirstLogonCommands>
                            <SynchronousCommand wcm:action="add">
                              <CommandLine>Lệnh 1</CommandLine>
                              <Order>1</Order>
                              <RequiresUserInput>false</RequiresUserInput>
                            </SynchronousCommand>
                            <SynchronousCommand wcm:action="add">
                              <CommandLine>Lệnh 2</CommandLine>
                              <Order>2</Order>
                              <RequiresUserInput>false</RequiresUserInput>
                            </SynchronousCommand>
                            <SynchronousCommand wcm:action="add">
                              <CommandLine>Lệnh 3</CommandLine>
                              <Order>3</Order>
                              <RequiresUserInput>false</RequiresUserInput>
                            </SynchronousCommand>
                            <SynchronousCommand wcm:action="add">
                              <CommandLine>Lệnh n</CommandLine>
                              <Order>n</Order>
                              <RequiresUserInput>false</RequiresUserInput>
                            </SynchronousCommand>
                          </FirstLogonCommands>
                        </component>
                      </settings>
                    </unattend>

                    Lưu ý: Lưu tệp với định dạng All files và Encoding: UTF-8

                    Sau khi Windows được cài đặt sau khi đã đăng nhập tài khoản, Windows sẽ thực thi lệnh trong tệp Unattend.xml, hệ thống sẽ ghi lại hành động trong tệp Setupact.log theo đường dẫn %WINDIR%\Panther\UnattendGC

                    Khi nào sử dụng tệp SetupComplete.cmd và khi nào sử dụng tệp Unattend.xml

                    So với tệp Unattend.xml thì tệp SetupComplete.cmd sẽ viết tập hợp các lệnh đơn giản hơn nhưng các lệnh thực thi là lệnh hệ thống không liên quan đến tài khoản người dùng đăng nhập. Lấy ví dụ minh họa khi thêm lệnh REG ADD

                    Copy
                    reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v "NoAutoUpdate" /t REG_DWORD /d 0 /f

                    Sử dụng trong SetupComplete.cmd và Unattend.xml đều được nhưng lệnh sau đây:

                    Copy
                    reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v "SilentInstalledAppsEnabled" /t REG_DWORD /d 0 /f

                    Chỉ có thể thực thi được trong tệp Unattend.xml

                    Tóm lại các lệnh nào phải sử dụng đến tài khoản thì sử dụng tệp Unattend.xml còn không cứ dùng tệp SetupComplete.cmd

                    Cách thêm tệp SetupComplete.cmd và tệp Unattend.xml

                    Trường hợp rebuild tệp install.wim khi khi đã mount tệp để chỉnh sửa

                    + Tệp SetupComplete.cmd

                    Tạo mới thư mục Scripts lưu tệp SetupComplete.cmd, sao chép thư mục này vào thư mục Setup của thư mục Windows trong thư mục đã mout tệp install.wim, ví dụ

                    Copy
                    C:\offline\mount\Windows\Setup\Scripts\SetupComplete.cmd

                    + Tệp Unattend.xml

                    Tạo mới thư mục Panther lưu tệp Unattend.xml, sao chép thư mục này vào thư mục Windows trong thư mục đã mout tệp install.wim, ví dụ

                    Copy
                    C:\offline\mount\Windows\Panther\Unattend.xml

                    Trường hợp đã cài đặt và đang trong chế độ Audit

                    + Tệp SetupComplete.cmd

                    Tạo mới thư mục Scripts lưu tệp SetupComplete.cmd, sao chép thư mục này vào thư mục Setup của thư mục Windows

                    Copy
                    C:\Windows\Setup\Scripts\SetupComplete.cmd

                    + Tệp Unattend.xml

                    Sao chép tệp Unattend.xml vào thư mục Panther của thư mục Windows, hoặc vào thư mục Sysprep trong thư mục System32 của thư mục Windows

                    Copy
                    C:\Windows\Panther\Unattend.xml
                    C:\Windows\System32\Sysprep\Unattend.xml

                    Trường hợp cài đặt từ thiết bị gắn ngoài

                    Tham khảo làm theo bài viết: Hướng dẫn cấu hình sao chép và thực thi tệp tự động trong suốt quá trình cài đặt Windows
                    Nội dung chính