2017年4月14日

P3 如何用 Windows系統映像管理員(Windows System Image Manager) 製作Windows 10自動安裝回應檔案
PART III 製作自動安裝回應檔案


PART I 準備工作
PART II 瞭解Windows 10安裝過程
PART III 製作自動安裝回應檔案
PART IV 如何使用
PART V 關閉[SMB 1.0/CIFS 檔案共用支援]功能
PART VI 使用DiskPart建立磁碟分割
PART VII 不要預留[保留的儲存空間]
PART VIII 指定電腦名稱與加入網域
PART IX 彈性搭配批次檔使用
PART Max 懶人包

瞭解了安裝Windows 10時在各階段需要做的事情, 接下來回到在Part I安裝好的Windows系統映像管理員. 類別目錄檔產生後就可以開始建立回應檔案.



展開左下角Windows 映像裡面的Components, 因為是要製作給64位元的Windows 10安裝用, 記得要選取amd64開頭的元件, 而非wow64或是x86開頭的.




首先針對[windowsPE]階段要處理的事項:
  • 選擇語言, 時間貨幣格式, 鍵盤輸入法
  • 輸入產品金鑰
  • 選取作業系統版本
  • 接受授權條款
  • 配置並選取安裝Windows的磁碟空間
[選擇語言, 時間貨幣格式, 鍵盤輸入法]
在Components處找尋[amd64_Microsoft-Windows-International-Core-WinPE]
按滑鼠右鍵選擇[將設定新增至 Pass 1 windowsPE]


按照下圖在右邊的內容設定中輸入相關的設定值:



[接受授權條款]
[輸入產品金鑰]
在Components處找尋[amd64_Microsoft-Windows-Setup], 選取並展開
在[UserData]底下的[ProductKey]上按滑鼠右鍵選擇[將設定新增至 Pass 1 windowsPE]
 
按照下圖在右邊的內容設定中輸入相關的設定值:

自動安裝回應檔案裡面如果沒有產品金鑰會安裝失敗, 所以先使用Windows 10專業版[KMS用戶端安裝識別碼, KMS Client Setup Keys]來安裝


[配置並選取安裝Windows的磁碟空間]
在Components處找尋[amd64_Microsoft-Windows-Setup], 選取並展開
在[DiskConfiguration]上按滑鼠右鍵選擇[將設定新增至 Pass 1 windowsPE]



在[DiskConfiguration]上按滑鼠右鍵選擇[插入新的Disk]


[CreatePartitions]跟[ModifyPartitions]也比照辦理. (各新增兩個)



依照我測試的結果, 手動安裝Windows時, 安裝程式會建立兩個partitions.
第一個partition是500 MB, 第二個partition則是用掉剩餘空間.


按照下圖在右邊的內容設定中輸入相關的設定值:







[選取作業系統版本]
在Components處找尋[amd64_Microsoft-Windows-Setup], 選取並展開
在[ImageInstall]底下的[OSImage]上按滑鼠右鍵選擇[將設定新增至 Pass 1 windowsPE]



在[InstallFrom]上按滑鼠右鍵選擇[插入新的MetaData]

在[Credentials]上按滑鼠右鍵選擇[刪除]


按照下圖在右邊的內容設定中輸入相關的設定值:





在[選取作業系統版本]裡面用到的/IMAGE/DISPLAYNAME有很多方法可以獲得, 列舉其中一些:
* Windows安裝程式中所顯示的

* 用DISM查看install.wim (例如: Dism /Get-ImageInfo /ImageFile:C:\install.wim)

* 用Windows系統映像管理員打開install.wim時所顯示的




進行到這裡[windowsPE]階段的設定已經完成, 先儲存並驗證回應檔案有無錯誤, 將檔案名稱設定為autounattend.xml




此時的autounattend.xml應該類似這樣:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<!-- By Proliantaholic https://proliantaholic.blogspot.com -->
    <settings pass="windowsPE">
        <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>zh-TW</UILanguage>
            </SetupUILanguage>
            <InputLocale>zh-TW</InputLocale>
            <SystemLocale>zh-TW</SystemLocale>
            <UILanguage>zh-TW</UILanguage>
        </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">
            <UserData>
                <ProductKey>
                    <Key>W269N-WFGWX-YVC9B-4J6C9-T83GX</Key>
                    <WillShowUI>OnError</WillShowUI>
                </ProductKey>
                <AcceptEula>true</AcceptEula>
            </UserData>
            <DiskConfiguration>
                <Disk wcm:action="add">
                    <CreatePartitions>
                        <CreatePartition wcm:action="add">
                            <Order>1</Order>
                            <Size>500</Size>
                            <Type>Primary</Type>
                        </CreatePartition>
                        <CreatePartition wcm:action="add">
                            <Extend>true</Extend>
                            <Order>2</Order>
                            <Type>Primary</Type>
                        </CreatePartition>
                    </CreatePartitions>
                    <ModifyPartitions>
                        <ModifyPartition wcm:action="add">
                            <Active>true</Active>
                            <Format>NTFS</Format>
                            <Label>系統保留</Label>
                            <Order>1</Order>
                            <PartitionID>1</PartitionID>
                        </ModifyPartition>
                        <ModifyPartition wcm:action="add">
                            <Format>NTFS</Format>
                            <Letter>C</Letter>
                            <Order>2</Order>
                            <PartitionID>2</PartitionID>
                        </ModifyPartition>
                    </ModifyPartitions>
                    <DiskID>0</DiskID>
                    <WillWipeDisk>true</WillWipeDisk>
                </Disk>
                <WillShowUI>OnError</WillShowUI>
            </DiskConfiguration>
            <ImageInstall>
                <OSImage>
                    <InstallFrom>
                        <MetaData wcm:action="add">
                            <Key>/IMAGE/DISPLAYNAME</Key>
                            <Value>Windows 10 Pro</Value>
                        </MetaData>
                    </InstallFrom>
                    <InstallTo>
                        <DiskID>0</DiskID>
                        <PartitionID>2</PartitionID>
                    </InstallTo>
                </OSImage>
            </ImageInstall>
        </component>
    </settings>
</unattend>


建議可以先依照PART IV的方法測試看看有沒有問題後再繼續, 如果一切正常的話, Windows 10安裝程式應該會停在這個畫面:




再來處理[oobeSystem]階段:
  • 選擇區域
  • 選擇鍵盤配置
  • 設定帳號 (本地帳號)
  • 新增使用者
  • 建立密碼
  • 隱私設定
[選擇區域]
[選擇鍵盤配置]
在Components處找尋[amd64_Microsoft-Windows-International-Core]
按滑鼠右鍵選擇[將設定新增至 Pass 7 oobeSystem]


按照下圖在右邊的內容設定中輸入相關的設定值:


[設定帳號 (本地帳號)]
[新增使用者]
[建立密碼]
在Components處找尋[amd64_Microsoft-Windows-Shell-Setup], 選取並展開
在[UserAccounts]底下的[LocalAccounts]上按滑鼠右鍵選擇[將設定新增至 Pass 7 oobeSystem]


在[LocalAccounts]上按滑鼠右鍵選擇[插入新的LocalAccount]


按照下圖在右邊的內容設定中輸入相關的設定值:
這樣會新增一個名為admin的帳號, 屬於Administrators群組, 密碼是password


在輸入密碼前先點選[工具], 看看[隱藏敏感資料]是否有打勾, 這樣才不會將密碼以明碼方式寫入回應檔案.


儲存回應檔案時密碼就會被編碼, 下次再用Windows系統映像管理員打開時就部會看到明碼了.



[隱私設定]
在Components處找尋[amd64_Microsoft-Windows-Shell-Setup], 選取並展開
在[OOBE]上按滑鼠右鍵選擇[將設定新增至 Pass 7 oobeSystem]


按照下圖在右邊的內容設定中輸入相關的設定值:
在[VMModeOptimizations]上按滑鼠右鍵選擇[刪除]


我不喜歡[隱私設定][位置]那類資訊預設都是開啟, 所以我把[ProtectYourPC]設定為3, 預設值應該是1.


驗證回應檔案, 儲存回應檔案(autounattend.xml), 製作自動安裝回應檔案完成.




參考資料:




繼續閱讀:
PART IV 如何使用

51 則留言:

  1. 你好,我想問個問題,就是我硬碟有東西的話,我想用diskpat去清掉然後再安裝,要怎麼寫一個script去同步這個無人值守

    回覆刪除
    回覆
    1. 據我所知是沒辦法在安裝前用script呼叫diskpart清掉硬碟資料或是設定分割.
      (autounattend.xml 裡面的 WillWipeDisk true 可以清掉指定硬碟的資料)

      刪除
  2. 大大你好,昨天我的測試出來是可以用script呼叫diskpart,但是我有問題,我在硬碟那邊,我不想要分割
    直接就Next下一步直接安裝,有這個功能嗎?感謝

    回覆刪除
    回覆
    1. 你這樣的敘述我實在很難回答. (不知道你的script如何寫的? 硬體配備為何? 想要做如何的分割/安裝...)
      把你的 autounattend.xml 跟需求分享一下, 或許大家可以研究測試一下有沒有解. (no promises)

      刪除
  3. 這樣好了大大,我的os是win2016,因為我是自己在玩這個東西,所以我的autounattend.xml,我想私下跟你討論這個可以嗎

    回覆刪除
    回覆
    1. 沒關係,謝謝,那麼我想問個問題,在OSImage那邊,有個install to 和 install to available partition ,這兩者的差異是在哪邊?

      刪除
    2. 大大你貼的資料我查過了,但是我把install to available partition 打true 會在安裝時fail
      但我的install to並沒有設定

      刪除
    3. BIOS或是UEFI mode? 該有的分割都已經建好了嗎(EFI, MSR...)?
      分割裡面不能有已經安裝的Windows instance, 分割空間夠大嗎?
      "Installs Windows to the first available partition that has enough space and does not already contain an installation of Windows."
      還有就是WindowsPE看得到你的硬碟嗎(RAID? disk order)? 硬碟順序跟你想的有一致嗎?

      刪除
  4. 我是UEFI mode ,硬碟是一顆乾淨的,但可以不要分割嗎,整顆直接去灌

    回覆刪除
    回覆
    1. 首先我要更正上面的回答, 在autounattend.xml裡面可以使用RunSynchronousCommand呼叫diskpart清掉硬碟資料或是設定分割.
      在UEFI mode下無法僅使用單一分割安裝Windows 10/2016.
      "The default partition layout for UEFI-based PCs is: a system partition, an MSR, a Windows partition, and a recovery tools partition."
      請參考: https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/configure-uefigpt-based-hard-drive-partitions

      刪除
    2. 請參考: PART VI 使用DiskPart建立磁碟分割 https://proliantaholic.blogspot.com/2018/10/WSIMP6.html

      刪除
  5. 請問,如果我不用autounattend.xml,
    而是手動安裝,過程中有一步是要我輸入使用者名稱和密碼,
    使用者名稱一定要輸入,但密碼可以保持空白按下一步,
    這樣之後我做S3或S4或是重開機,都不會問你密碼,這樣很方便。
    但是如果要使用autounattend.xml讓他自動安裝,
    好像一定要填入password,我有試著在[插入新的LocalAccount]這一步中,刪除password,
    但這樣做之後,他會自動安裝到登入畫面,他還是會要你輸入新密碼,
    就是無法不輸入密碼就對了,
    想請問有什麼方法可以讓這個自動安裝的autounattend.xml,可以設定成不用輸入密碼嗎???

    回覆刪除
    回覆
    1. 在Password的Value上按滑鼠右鍵, 選"Write Empty String"

      參考: https://docs.microsoft.com/en-us/windows-hardware/customize/desktop/unattend/microsoft-windows-shell-setup-offlineuseraccounts-offlineadministratorpassword-value

      To configure a blank administrator password, write an empty string in Windows System Image Manager (Windows SIM) by right-clicking on the Value setting, and choose Write Empty String.

      刪除
  6. 大感謝!!照著做之後,真的不會再出現任何要輸入密碼的畫面了,
    我貪心地再詢問一件事,就是做S3或S4,resume回來之後,
    即使不用輸入密碼了,但還是有一個sign ing的畫面,必須再按enter之後才會進到桌面,
    想請問如果是希望S3或S4 resume之後,可以直接進桌面的話,
    也可以從autounattend.xml裡去改嗎??
    先感謝大大的超快回覆^^

    回覆刪除
    回覆
    1. 在pass="specialize"中加入這段看看: https://pastebin.com/raw/isWjUmYF

      刪除
    2. 大大您太強了!!! 真的resume之後連sign in畫面都跳過了!!!
      您的功力真的太深厚了=口=! 小弟望塵莫及Orz

      刪除
  7. 請問新版win10也可以照上面設定嗎
    因為我在微軟下載1903的ISO裡面的install是ESD檔
    只能開BOOT.wim裡面分成64x跟PE
    而且裡面的設定也跟文章內的不太一樣有些選項也沒有

    回覆刪除
    回覆
    1. ESD可以轉換成ISO檔, 或是去下載Windows 10的ISO檔.

      刪除
  8. 我使用的是直接在微軟下載的官方1903ISO檔解壓縮後的檔案
    裡面就直接放了個install.ESD 所以我才有疑問

    回覆刪除
    回覆
    1. 請參考 https://proliantaholic.blogspot.com/2017/04/WSIMP1.html 使用
      Microsoft Windows and Office ISO Download Tool 下載

      刪除
  9. 另外我想請問如果真的沒辦法的話拿win7的設定好後用在win10可以嗎

    回覆刪除
    回覆
    1. Windows 10和Windows 7有些設定是不同的, 請您自己試試看囉.

      刪除
    2. 目前使用1903的win10安裝ADK跟1903的修正後直接要掛載instaii.wim但是使用步驟1下載下來的映像檔從1607~1903每個都是掛到一半出現
      windows sim 無法產生類別目錄變成要設定也沒辦法

      刪除
    3. 這些你都做了嗎?
      https://docs.microsoft.com/zh-tw/windows-hardware/get-started/adk-install
      *下載安裝適用於 Windows 10 (版本 1903) 的 Windows ADK
      *下載安裝 ADK 的 Windows PE 附加元件
      *下載安裝 Windows 系統映像管理員 (WSIM) 1903 更新

      刪除
    4. * Windows 系統映像管理員 (WSIM) 1903 更新
      執行 UpdateWSIM.bat 時要 以系統管理員身分執行

      刪除
  10. 照大大說法3個都安裝還是不行

    回覆刪除
    回覆
    1. 我這邊測試是用1903企業版然後照前面的說明去裝那3項,裝完以後都是卡在掛載那一邊

      變成不知道問題在哪,還是說要用舊一點版本的win10系統來試看看嗎

      刪除
    2. 你要掛載的 install.wim 有複製到可以讀寫的地方嗎? (並且要把唯讀屬性拿掉) <- 我在 PART I準備工作 中有提到 https://proliantaholic.blogspot.com/2017/04/WSIMP1.html

      刪除
  11. 想請教版主,如果流程停在選擇安裝OS版本的視窗(有設定好是Windows 10 Pro), 視窗也已經有秀出是會安裝Windows 10 Pro, 但就不會自動下一步繼續了,需要調整哪一個參數呢? 謝謝 ( 如果自己按下一步,是可以成功進入安裝百分比的頁面,後續沒有問題 )

    回覆刪除
    回覆
    1. 你是要裝英文版還是中文版? 檢查 /IMAGE/DISPLAYNAME 的 Value, 通常英文版要用"Windows 10 Pro", 中文版要用"Windows 10 專業版"

      刪除
  12. 你好,想請教一下當我環境沒有對外連網際網路時,windows 10 pro 1909安裝過程會跳出畫面,oobe過程需點選limited experience 及continue with limited setup,其餘過程回應檔運作都正常..想請教是否有相同的經驗,謝謝

    回覆刪除
    回覆
    1. Windows 10 Pro/Home 1909的OOBE有些改變, 請參考:
      https://www.thurrott.com/windows/windows-10/222344/microsoft-made-major-setup-changes-in-windows-10-version-1909

      刪除
    2. 感謝版主詳盡的分享,我完成了自己工作上需要的無人值守安裝碟,可以省下不少腦力和時間。

      這裡也分享一下在 20H2 上,OOBE 如果過程需要點選,只要改成下列的值就行了:
      7 oobeSystem → amd64_Microsoft-Windows-Shell-Setup_neutral → OOBE → HideWirelessSetupInOOBE = true

      刪除
  13. 您好,此篇文章對我幫助非常大,依照以上設定確實達到效果,
    感謝大神教學文非常詳細。

    另外想請教版主,不知是否可設定安裝過程裝能跳出輸入電腦名稱的設定,
    可在安裝完成後進桌面電腦名稱就已經是自己所輸入的電腦名稱。

    若可行,不知是否能在安裝過能跳出可輸入網域名稱一並加入網域。

    感謝版主。

    回覆刪除
    回覆
    1. 很高興這篇文章對您有幫助.
      個人認為使用自動安裝回應檔案就是希望能不要人為介入(輸入)就能自動裝完, 若是停在某步驟等輸入好像就失去意義了.
      電腦名稱可以在回應檔裡面指定, 請參考我新寫的: https://proliantaholic.blogspot.com/2020/04/WSIMP8.html
      加入網域也是類似的原理, 有空我再補到上面那篇.

      刪除
    2. 版主您好
      您說的非常有道理,回應檔就是不要人為介入完成安裝系統,
      我會在思考一下如何將流程精簡到可以從頭到尾自行完成,包含指定電腦名稱及網域。

      近期遇到回應檔的瓶頸,很感謝版主非常迅速的回覆及教學,持續精進中。

      刪除
    3. 加入網域已經補上. https://proliantaholic.blogspot.com/2020/04/WSIMP8.html

      刪除
  14. 你好,請問若拿到一個已經做好sysprep 並且使用acronis Image,我可以製作回應檔autounattend.xml 讓還原後自動執行首次啟用相關語言、輸入法這些設定嗎???
    謝謝。

    回覆刪除
    回覆
    1. 為什麼不先把相關語言、輸入法這些設定弄好再做一次sysprep? (這樣不用每次還原後都還要跑設定)

      回應檔案有搜尋順序, 請參考: https://docs.microsoft.com/zh-tw/windows-hardware/manufacture/desktop/windows-setup-automation-overview#implicit-answer-file-search-order

      你製作的回應檔必須要比較先被讀到才有用, 所以說設定弄好再做一次sysprep可能比較快.

      刪除
    2. 因為這是廠商資訊室製作的所以主控權不在我手上,倘若是這樣的狀況就不適用回應檔是嗎??

      刪除
    3. 你可以從這個方向去想: 你製作的回應檔會放在哪裡? Restore Windows image完成後Winsows第一次開機會讀哪個回應檔? (在哪裡, 是哪個回應檔)

      刪除
  15. 我想請問一下 最後隱私設定那邊 為什麼我已經把ProtectYourPC設定為3 了 可是安裝的時候 他還是會跑出來讓我要手動 沒辦法自動

    回覆刪除
    回覆
    1. 這樣問實在很難知道問題是出在哪裡.
      你可以貼出你的autounattend.xml跟提供更多的資訊, 例如: Winsows的版本, 安裝形式(ISO, USB)...
      或許可以看出些端倪. (我並不是諮詢/售後服務, 不見得會有答案)

      刪除
    2. 建議你用[懶人包] https://proliantaholic.blogspot.com/2020/04/WSIMPMax.html 配合你的安裝媒體先試試看有沒有問題.

      刪除
  16. 請問如果想將一個磁碟分成50G安裝系統是怎麼設置

    回覆刪除

版權宣告

Creative Commons License
本著作由 PROLIANTAHOLIC 製作,以創用CC 姓名標示-非商業性-禁止改作 3.0 台灣 授權條款釋出。
文內所述之產品和公司名稱均為其各自擁有者的商標及(或)服務標記。