Windows – unattend.xml (Answer file)

Loading

在使用 WinPE PXE (Linux PXEBoot – https://benjr.tw/917 , Windows RIS / WDS – https://benjr.tw/279 , WDS – https://benjr.tw/100848 )安裝 Windows 時會搭配不同的 unattend.xml (Answer file) 來自動安裝.

測試環境為 Windows 10 x86_64 (虛擬機)

unattend.xml 可以在安裝時來指定,指令如下 (指令可以寫在 startnet.cmd 內)

setup /unattend:unattend.xml 

那 startnet.cmd 在哪裡?先來簡單看一下 WinPE 的架構.

WinPE

須先安裝 Windows ADK (Assessment and Deployment Kit) 可以在 https://docs.microsoft.com/zh-tw/windows-hardware/get-started/adk-install#winADK 找到,裡面包含了 WinPE 的相關環境與指令,詳細關於 ADK 請參考 – https://benjr.tw/170

先透過指令 copype 建立一個 WinPE 工作環境 (平台可以選擇 x86 , amd64 , arm , arm64, 路徑 c:\WinPE 自訂),在程式集 Windows kits 點選 Deployment and Imaging Tools Environment.

C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools>copype amd64 c:\WinPE

先從 WinPE 檔案開始,新產生好的 WinPE 目錄如下,

  1. fwfiles 資料夾
  2. media 內含 media\sources 下的檔案 boot.wim 就是 winPE 最基礎的檔案.
  3. mount 為空資料夾,主要是將 WinPE 映像檔掛載時用的.

如果要修改 boot.wim 內容需要透過指令 DISM (Deployment Image Servicing and Management) – 指令需要有 administrator 權限,可以透過 command prompt (run as adminstrator).把 Windows images 映像檔 boot.wim 掛載起來.

掛載

C:\Windows\system32>Dism /Mount-Image /ImageFile:"C:\WinPE\media\sources\boot.wim" /index:1 /MountDir:"C:\WinPE\mount"
Deployment Image Servicing and Management tool
Version: 6.3.9600.16384
 
Mounting image
[==========================100.0%==========================]
The operation completed successfully.

startnet.cmd 就在 %SYSTEMROOT%\System32 ,預設內容只有 wpeinit

C:\Windows\system32>type C:\WinPE\mount\Windows\System32\startnet.cmd
wpeinit

答案出來了 WinPE ISO -> \media\sources\boot.wim -> \Windows\System32\startnet.cmd

wpeinit

在 startnet.cmd 裡面的指令 wpeinit 是做什麼的?

微軟官網寫 Wpeinit.exe 將安裝即插即用設備,處理 Unattend.xml 並加載網路資源.

startnet.cmd

為了讓 WinPE 自動安裝 Windows 作業系統,需要在 startnet.cmd 編寫以下的內容,為最基本的 Bat 批次檔.

C:\Windows\system32>type C:\WinPE\mount\Windows\System32\startnet.cmd
wpeinit
net use z: \\SERVER\SHARE /user:SERVER\USER PASSWORD
z:
cd windows
setup /unattend:unattend.xml

卸載
修改,新增好之後依樣是透過 Dism 卸載,boot.wim 就已經修改好可以直接使用.

C:\Windows\system32>Dism /Unmount-Image /MountDir:"C:\WinPE\mount" /commit
Deployment Image Servicing and Management tool
Version: 6.3.9600.16384
 
Saving image
[==========================100.0%==========================]
Unmounting image
[==========================100.0%==========================]
The operation completed successfully.

正式拿到 PXE 測試前,可以先做成 ISO 透過虛擬機來試試.
建立 WinPE iso 檔 (在程式集 Windows kits 點選 Deployment and Imaging Tools Environment .)

C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools>MakeWinPEMedia /iso C:\WinPE c:\WinPE\WinPE_x86.iso
Creating c:\WinPE\WinPE_x86.iso...
 
100% complete
 
Success 

unattend.xml

RedHat / CentOS 安裝完成之後在 root 資料夾會留下當初安裝的設定檔 anaconda-ks.cfg (自動安裝設定檔 kickstart),雖然是文字檔但編輯起來還是很累人的. RedHat 提供了一隻工具 (#system-config-kickstart) 可以讓我們透過勾選選單的方式來設定安裝時的設定值.

Windows 的 unattend.xml 就如同 Linux 的 kickstart , unattend.xml 雖然可以用文字編輯來編輯,不過還是建議使用 Windows System Image Manager (Windows SIM).

在程式集 Windows kits 點選 Windows System Image Manager.

xml 格式以及設定請參考 – https://docs.microsoft.com/en-us/windows-hardware/customize/desktop/unattend/microsoft-windows-setup

沒有解決問題,試試搜尋本站其他內容

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料