2013年5月10日 星期五

建立 Windows 8 /Windows Server 2012 自動暨自訂式安裝的回應檔案 (Design a Windows 8 unattended and customized answer file)

多年來,由於教學、測試與研究的目的,作者經常需要不斷重複性的安裝、實驗測試並移除各種作業系統,早年這是一項煩鎖又耗費時間的工件,近年來,拜虛擬化軟體的普及與成熟之賜,讓系統的實證測試環境之安裝工作大幅簡化 ,因此,如果您像作者的工作一樣,需要經常重複的安裝數部作業系統以做為測試實驗之用,那麼如何達成有效率的安裝各種作業系統就是件重要的工作 ,另一方面,如果您是公司的IT人員,為了因應員工電腦偶會需要重新安裝的情況或是不定期需要一次安裝大量的電腦(如公司新購一批機器),則如何設計並建立一個可以支援大量與客制化安裝系統的機制也將成為IT人員重要的課題。

本文將說明如何設計與建立Windows 8作業系統的回應檔案(Answer File),以期望能夠有效率的自動安裝自訂組態的作業系統。

有效率的作業系統安裝需求

對企業組織的IT人員而言,一個有效率的系統安裝機制需要具有下列功能 :

  • 自動化(unattend):有效率的安裝系統首要條件必需要能夠自動安裝,亦即安裝的過程中無需任何人為的介入或輸入,一旦開始進入安裝過程後即可一氣合成、不停頓畫面等待的情況下順利完成安裝。
  • 自訂或客制化 (Customize) :理想上而言,一旦系統安裝完畢後,使用者第一次登入系統時就應該是符合使用者作業所需要的環境,無需額外設定並立即可使用系統,但事實上卻非如此,因為大部份安裝完成的系統,第一次登入後通常還需要花費時間調整系統組態設定以便符合使用者的作業習性與偏好性,例如重新設定網路組態、中文輸入法、桌面環境、安全性設定等,其次,作業系統通常只是提供電腦的操作環境,要能夠利用電腦執行各項工作,通常還需要安裝特定的軟體或應用程式(例如Office、AcrobatReader….等)才行,因此IT人員通常希望能夠在安裝作業系統時,同時將組態設定與應用程式安裝設定工作一併完成,以讓使用者初次登入時即是一個符合需求的作業環境,為了符合這個安裝條件,您的作業系統安裝方法必需要能夠包含自訂或客制化的機制,而自訂或客制安裝的機制可以由二個層面來看:
    • 自訂系統組態:自訂系統組態意謂著安裝時作業系統的所有組態值即是符合使用者需要和偏好性的組態與環境,而非直接接受廠商的預設組態,Windows系統組態層面的自訂化機制可以透過回應檔案來完成,讓系統安裝時透過我們所設計的回應檔案內容組態來設定系統。
    • 安裝額外應用程式:要能夠安裝作業系統的同時也一併安裝所需的應用程式或軟體,這通常需要採用自訂式映像檔的安裝方式,您需要先建立範本機器、並安裝與設定好一切所需要的軟體,再執行sysprep程式以移除唯一性組態,將其儲存其磁碟映像,然後再將此磁碟映像部署到需要安裝的機器上,因此透過磁碟映像所建立的新系統即具有與範本機器相同的組態設定與應用軟體。
  • 支援大量安裝(Large volume installation):許多IT人員可能遇見過一次需要同時安裝大量的機器經驗,最常見的例子是公司新購置了一批機器,需要您在短暫時間內就完成安裝及組態設定並交予用戶使用,因此您的安裝方法必需要能夠支援迅速的大量安裝,而依據一般經驗,要能夠支援此種大量安裝的情況,企業組織需要有較大的網路頻頻寬來透過網路進行映像檔的安裝,才會有獲得較佳的效果。

總之,企業組織所設計的作業系統安裝機制需要能夠支援自動、自訂式與大量安裝的目的,而其間可採用的方法當然不止一種,所不同點在於利用媒體或網路來源來進行安裝,是否採用自訂映像檔安裝方式,而映像檔的格式是Windows內建的wim檔或是其它協力廠商的映像格式,而經由網路並採用映像檔安裝方式最適合大型企業組織採用,例如微軟的『Windows部署服務』即是整合了網路和映像檔的企業系統安裝解決方案,不論您採用何種安裝方式,若需要達到自動化安裝的目標,則預先設計一個安裝回應檔案通常就是不可或缺的工作(如媒體安裝的回應檔、sysprep回應檔、WDS映像檔回應檔),本文底下將僅對如何設計與建立一個自動和自訂系統組態的Windows 8 回應檔案來加以探討。

回應檔案 (Answer File)

一個Windows的「回應檔案」是一個XML格式的文字檔案,用來儲存 Windows 安裝期間所需要或自訂的組態設定值,這包括一切必要或選擇性的組態設定,例如您可以在回應檔案中指示安裝程式如何分割磁碟區、指出安裝映像的位置、Windows產品金鑰、IE設定等,因此安裝Windows作業系統時搭配預先設計的回應檔案即可以輕易達到自動和自訂系統組態的安裝目的。

回應檔案可和多種不同的安裝方法搭配使用,譬如回應檔案可和存放在DVD/USB媒體中或網路來源的安裝程式搭配使用,其次,回應檔案也可以搭配Sysprep 工具來完成映像檔部署後的迷您安裝精靈的自動安裝,或是搭配Windows 部署服務(WDS)來經由網路開機完成自動映像檔案安裝,下圖說明了回應檔案如何搭配安裝媒體中的安裝程式進行自動化的安裝。

mediaautosetupA

回應檔案中的區段

Windows 的回應檔案內的設定分成兩個區段:元件與套件。

  1. 元件 (Components):回應檔案的元件區段包含了 Windows 安裝程式過程中所要套用的元件以及其相關的組態設定。由於Windows 的安裝過程總共可區分為七個不同的設定階段--windowsPE、offlineServicing、generalize、specialize、auditSystem、auditUser 和 oobeSystem,而有些元件可以在一或多個階段期間套用設定,因此您可以選擇要套用此設定的階段。
  2. 套件 (Packages):Microsoft 使用套件來發佈軟體更新、服務套件及語言套件,套件也可以包含 Windows 功能。

下圖為一回應檔案的部份內容,採用XML格式、內容包括安裝階段、安裝的元件以及眾多的設定項目和設定值。

ans1

Windows 系統映像管理員(Windows SIM)

欲建立Windows 8/Windows Server 2012作業系統的回應檔案,您需要先由微軟網站下載『Windows 評定及部署套件 (Windows ADK)』,並安裝套件內的部署工具--Windows 系統映像管理員(Windows SIM),因為這個Windows 系統映像管理員 (Windows SIM) 正是用來建立和管理回應檔案的圖形介面工具。

wadk1

安裝完成後,初次啟動Windows 系統映像管理員 (Windows SIM) 工具後,您就會看到介面上包含了五個窗格:

  • 發佈共用窗格:發佈共用是一組選擇性的資料夾,包含自訂指令碼、映像、應用程式、驅動程式及其他檔案,這些檔案可以透過回應檔案 (Unattend.xml) 在安裝期間複製到安裝的 Windows系統內。
  • 回應檔案窗格:這個窗格與右側的內容窗格搭配就是我們用來建立、編輯與變更回應檔案的地方,此窗格會依據安裝過程中的七個階段一一顯示目前已加入回應檔的的元件以及套件。
  • 內容窗格:內容窗格會顯示目前已在回應案窗格內所選取之元件或套件的內容與設定,您可以使用內容窗格來變更設定內容,如果是套件,則可以變更 Windows 功能選取項目。
  • Windows映像窗格:以樹狀檢視方式顯示目前開啟的 Windows 安裝映像可使用的所有元件及套件。
  • 訊息窗格:訊息窗格是由三個索引標籤組成:[XML]、[驗證] 以及 [組態集],可用來顯示訊息類型、描述以及問題的位置以協助您找出問題的原因。

建立一個基本的媒體安裝使用的回應檔案,通常會依序用到工具的映像窗格、回應檔案窗格與內容窗格。

wsim_guiA

使用Windows 系統映像管理員工具建立回應檔案

微軟從vista作業系統之後開始採用WIM映像檔安裝方式,WIM映像檔為檔案為基礎的磁碟映像格式,您可以在原版光碟片的sources目錄下找到二個wim映像檔--開機映像檔(boot.wim)和安裝映像檔(install.wim),前者為Windows預先安裝環境(Windows PE)的可開機映像,後者則是用以部署到用戶端電腦的作業系統映像,由於映像檔案於使用上有一些限制與不便,所以WIndowsSIM工具會使用另一個類別目錄檔案(.clg)來建立回應檔案,而類別目錄檔案則是另一個二進位檔案,其內只包含 Windows 映像中的設定和套件清單及狀態,Windows SIM 工具藉由查詢 Windows 映像以取得該映像的所有設定清單並據以建立類別目錄檔案,因此Windows系統映像管理員 (Windows SIM) 工具須利用 Windows 映像檔案及所建立的類別目錄 (.clg) 檔案為基礎來顯示能夠新增至回應檔案 (Unattend.xml) 的可用元件及封裝。

管理員欲透過Windows SIM 工具建立一個新的回應檔案,其基本步驟如下:

一. 開啟 Windows 映像並建立類別目錄檔案

  1. 首先,拷貝Windows 8光碟片sources目錄下的安裝映像檔install.wim到機器上(因為Windows 映像檔案位於唯讀位置 (例如 DVD) 時將無法建立類別目錄)。
  2. 開啟Windows 系統映像管理員。
  3. 從【檔案】功能表下選取【選取Windows映像】選項 (或由【Windows 映像窗格】右鍵功能表選取【選取Windows映像】亦可)。
    wadk4
  4. 從【選取Windows映像】對話視窗中選取上面步驟所拷貝的安裝映像檔-install.wim,並於出現的【Windows System Image Manager】視窗中直接按一下【是】以自動建立類別目錄檔案(這通常需要等待一段時間)。
    wadk7
  5. 接下來,請在【回應檔案】 窗格中,選取最上層的節點,然後按一下滑鼠右鍵以選取【新建回應檔案】,您將會在視窗內看到安裝時可加以設定的七個階段的元件(components)與套件(packages)。
    wadk9A

二. 新增回應檔案元件並編輯設定

上述的步驟建立了一個空白的回應檔案,接下來將依序將自動和自訂化安裝所需要的元件新增至回應檔案並設定適當的組態值,由於需要新增的元件設定眾多,而安裝Windows 8所遇到的第一個停頓需要使用者輸入的畫面為設定語系,因此在此只示範如何新增語系元件與設定值,其餘元件的設定方法均同步驟。

  1. 請在【Windows 映像】 窗格中,找出要新增至回應檔案的元件或套件,在此範例,吾人需要找到【Microsoft-Windows-International-Core-WinPE】這個元件。
  2. 在元件上按一下滑鼠右鍵,然後選取設定階段,在此只能選取第一個階段【windowsPE】。
    wadk10
  3. 接下來,請到【回應檔案】視窗內,按一下剛才加入的【Microsoft-Windows-International-Core-WinPE】元件,並在右側的【內容】窗格中,於InputLocale、SystemLocale、UILanguage、 UILanguageFallback、UserLocale設定項目中均輸入設定值 "zh-TW"以使用傳統中文語系。
    wadk11
  4. 其餘元件設定均是按照上述二個步驟,先於【Windows 映像】 窗格中,找出要新增至回應檔案的元件或套件,再利用【回應檔案】視窗和【內容】窗格來輸入適當的設定值,一直到所有須要的元件和設定完成。

三. 儲存回應檔案

最後,如果元件均已設定完成可以將回應檔案加以儲存。您只需要從【檔案】功能表選取【儲存回應檔案】選項並輸入儲存成 autounattend.xml檔案即可,儲存時,Windows SIM會先檢查回應檔案是否有錯誤或不當並顯示至下方的【驗證】索引標籤,您需要確認無任何錯誤發生,否則得依照指示修改錯誤之處。

wadk12A

四. 測試

回應檔案完成後得實際藉由一次完整安裝來測試其正確性,因此請將autounattend.xml拷貝到軟碟、USB行動碟或重製光碟片的根目錄下,然後由規劃的安裝媒體或網路共用位置開始安裝,您需要留意安裝時是否如預期的自動完成安裝,而且安裝後第一次登入後請檢查所有設定組態是否符合。

規劃自動安裝的組態

上一段說明了Windows系統映像管理員工具的用法與步驟,接下來介紹自動化和自訂安裝回應檔案的內容。

回應檔案第一個目標是達成全自動化安裝,只要使用者開始安裝就可以在無需停頓畫面或人為介入輸入情況下,一氣呵成完成整個安裝過程,做法很簡單而直覺,只需要將安裝時所必須輸入的安裝組態設計到回應檔案內的適當階段、元件及設定值即可,這些安裝必要的設定包括了:語系、接受授權合約、輸入產品金鑰、安裝的磁碟區、電腦名稱、本機或Windows帳戶等,下表列出了一個最基本的Windows 8 自動安裝所需要設定的元件、階段和設定項目,在此大部份設定均很容易理解,無須贅言解釋,如有設定項目不解其意者,Windows SIM的輔助說明可供參考。

階段 元件 設定項目與設定值
設定安裝系統使用的語言

1

Microsoft-Windows-International-Core-WinPE InputLocale = zh-TW
SystemLocale = zh-TW
UILanguage = zh-TW
UILanguageFallback= zh-TW
UserLocale = zh-TW
1 Microsoft-Windows-International-Core-WinPE\SetupUILanguage UILanguage = zh-TW
OS映像選取、接受授權合約並輸入產品金鑰
1 Microsoft-Windows-Setup\ImageInstall\OSImage WillShowUI = Never
InstallToAvailablePartition = true or false ( 與底下的DiskConfiguration設定有關)
1 Microsoft-Windows-Setup\UserData AcceptEula = true
1 Microsoft-Windows-Setup\UserData\ProductKey Key = <產品金鑰>
WillShowUI = OnError
處理安裝的磁碟區範例一(手動建立安裝分割,不自動)
1 Microsoft-Windows-Setup\DiskConfiguration WillShowUI = Always
處理安裝的磁碟區範例二(刪除既有磁碟分割,並使用整個硬碟來安裝Windows)
1 Microsoft-Windows-Setup\DiskConfiguration WillShowUI = Never
1 Microsoft-Windows-Setup\DiskConfiguration\Disk DiskID = 0
WillWipeDisk = true
1 Microsoft-Windows-Setup\DiskConfiguration\Disk\CreatePartitions\CreatePartition Extend = true
Order = 1
Type = Primary
處理安裝的磁碟區範例三(刪除既有磁碟分割並建立一個固定大小的分割區來安裝Windows)
1 Microsoft-Windows-Setup\DiskConfiguration WillShowUI = Never
1 Microsoft-Windows-Setup\DiskConfiguration\Disk DiskID = 0
WillWipeDisk = true
1 Microsoft-Windows-Setup\DiskConfiguration\Disk\CreatePartitions\CreatePartition Order = 1
Size = 25000
Type = Primary
1 Microsoft-Windows-Setup\DiskConfiguration\Disk\ModifyPartitions\ModifyPartition Active = true
Format = NTFS
Label = 系統
Order = 1
PartitionID = 1
處理安裝的磁碟區範例四(建立UEFI類型電腦分割區來安裝Windows)
1 Microsoft-Windows-Setup\DiskConfiguration WillShowUI = Never
1 Microsoft-Windows-Setup\DiskConfiguration\Disk DiskID = 0
WillWipeDisk = true
1 Microsoft-Windows-Setup\DiskConfiguration\Disk\CreatePartitions\CreatePartition Order = 1
Size = 100
Type = EFI
1 Microsoft-Windows-Setup\DiskConfiguration\Disk\CreatePartitions\CreatePartition Order = 2
Size = 16
Type = MSR
1 Microsoft-Windows-Setup\DiskConfiguration\Disk\CreatePartitions\CreatePartition Order = 3
Extend = true
Type = Primary
1 Microsoft-Windows-Setup\ImageInstall\OSImage InstallToAvailablePartition = false (或預設不需設定)
1 Microsoft-Windows-Setup/ImageInstall/OSImage/InstallTo

DiskID = 0

PartitionID = 3

電腦名稱

4

Microsoft-Windows-Shell-Setup

ComputerName = *
若電腦名稱輸入如上述的星號,則管理員可利用 "RegisteredOwner" 與 "RegisteredOrganization" 這二項設定值來控制電腦名稱的前碼 (但尾碼定是隨機產生),不過規則有些特別,通常是RegisteredOwner串接RegisteredOrganization的值再加上 - 符號做為前碼,不過若RegisteredOwner最後業已附加上 - 符號則不會再加上RegisteredOrganization的值,若RegisteredOwner欄位的值為空白,則會主動給給予WIN。例如下列的例子說明了ComputerName一旦輸入了星號後,而另二個設定值 "RegisteredOwner" 與 "RegisteredOrganization" 有不同設定情境時,其最後的電腦名稱為第三個欄位:
ws   lij-   WSLIJ-XXXXXXXXX
ws-   lij   WS-XXXXXXXXXXXX
ws-   lij-  WS-XXXXXXXXXXXX
空白   lij- WINLIJ-XXXXXXXX
ws   空白  WS-XXXXXXXXXXXX

自動化Windows 全新體驗 (OOBE) 設定
7 Microsoft-Windows-Shell-Setup\OOBE HideEULAPage = true
HideOEMRegistrationScreen = true
HideOnlineAccountScreens = true
HideLocalAccountScreen = true
NetworkLocation = Work
ProtectYourPC = 3
7 Microsoft-Windows-Shell-Setup\UserAccounts\LocalAccounts\LocalAccount[名稱] Group = administrators
Name = <名稱>
說明:
Windows 8安裝至最後階段時會需要建立一個具管理權限的使用者帳戶以取代被停用的administrator帳戶來登入系統,但吾人已在安裝第四階段時啟用了administrator帳戶,並且不希望安裝程式建立額外帳戶,但此建立帳戶的步驟似乎又不可避免,因此在此的技巧是建立一個名稱為administrator名稱的帳戶,這自然會失敗而無法建立成功,因而讓安裝時可以不須要建立額外帳戶。
7 Microsoft-Windows-Shell-Setup\UserAccounts\LocalAccounts\LocalAccount[名稱]\Password

Value = <密碼>

另一個特別值得留意的是安全性問題,一旦回應檔案中的Microsoft-Windows-Shell-Setup元件內有輸入任何密碼等私密性的資料時,一定得在『工具』 功能表內勾選『隱藏敏感資料』以確保資料不會以明文方式呈現而導致資料外洩的可能。

hidedata

規劃自訂安裝的組態

利用回應檔案來達成自動安裝是基本要求,但對大多數IT人員而言,如何在回應檔案中定義偏好的系統組態和工作環境才是更重要的目的,以作者本身的經驗為例,Windows 8預設安裝的組態經常無法符合使用上的操作習性,所以安裝後第一次登入後還需要花費些許時間來調整組態設定,因此如果能夠在安裝過程就設定成為使用者想要的組態設定,讓使用者初次登入後即是熟悉想要的組態設定和工作環境,但欲彈性的自訂安裝組態,可能會遇到有不少自訂組態並無法直接由內定的元件與設定值加以設定,而唯一的做法是將自訂命令新增至回應檔案中,而這些自訂命令有時需要直接更改登錄資料庫利用(reg add),通常自訂命令可藉由下列三種方式來加入回應檔案之內:

  1. 新增命令至階段一 windowsPE 設定階段的 Microsoft-Windows-Setup\RunSynchronous 設定值內。
  2. 新增命令至階段四 specialize 或階段六 auditUser passes 設定階段的 Microsoft-Windows-Deployment\RunSynchronous 設定值內。
  3. 新增命令至階段七  oobeSystem 設定階段的 Microsoft-Windows-Shell-Setup\FirstLogonCommands 設定值內。

下表列出了不符合作者需求的Windows 8預設安裝組態,以及作者設計自訂式安裝所設定的元件和設定值。

不符合需求的預設安裝組態 自訂安裝組態 回應檔案設定方法
administrator帳戶關閉 啟用administrator帳戶 4 specialize:Microsoft-Windows-Deployment\RunSynchronous\RunSynchronousCommand[Order="1"]
      Order = 1
      Path = net user administrator /active:yes
administrator 密碼為空白 設定administrator密碼並加密儲存至回應檔 7 oobeSystem: Microsoft-Windows-Shell-Setup\UserAccounts\AdministratorPassword
      Value = <密碼>
內建的 Administrator 帳戶停用了"管理員核准模式" ,因此無法執行ModernUI的應用程式 啟用"管理員核准模式"以讓內建administrator可以執行開始畫面下的ModernUI程式 7 oobeSystem:Microsoft-Windows-Shell-Setup\FirstLogonCommands\SynchronousCommand (需重新登入)

CommandLine =  reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\ Policies\System" /v FilterAdministratorToken /t REG_DWORD /d 1 /f

UAC預設啟用了 UAC 遠端限制,而讓管理員無法遠端存取本機管理共用資料夾(eg. C$, D$, admin$…) 停用 UAC 的遠端限制,而允許管理員遠端存取本機管理共用資料夾 7 oobeSystem:Microsoft-Windows-Shell-Setup\FirstLogonCommands\SynchronousCommand (需重新登入)

CommandLine =  reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\ Policies\System" /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f

中文輸入法
  • 預設只有微軟新注音
  • 注音輸入法預設採用標準鍵盤
  • 預設輸入模式為中文
  • 預設語言列未顯示桌面

 

微軟新注音選擇『倚天注音鍵盤』 7 oobeSystem:Microsoft-Windows-Shell-Setup\FirstLogonCommands\SynchronousCommand
CommandLine = reg add "HKCU\Software\Microsoft\IME\15.0\IMETC" /v "Keyboard Layout Setting.New Phonetic" /t REG_SZ /d 0x00020011 /f
啟用倉頡輸入法 7 oobeSystem:Microsoft-Windows-International-Core

InputLocale = 0404:{531FDEBF-9B4C-4A43-A2AA-960E8FCDC732}{4BDF9F03-C7D3-11D4-B2AB-0080C882687E};0404:{531FDEBF-9B4C-4A43-A2AA-960E8FCDC732}{B2F9C502-1742-11D4-9790-0080C882687E}
說明: 上例讓安裝時依序新增倉頡和注音輸入法

倉頡輸入法: 0404:{531FDEBF-9B4C-4A43-A2AA-960E8FCDC732}{4BDF9F03-C7D3-11D4-B2AB-0080C882687E}
微軟新注音:0404:{531FDEBF-9B4C-4A43-A2AA-960E8FCDC732}{B2F9C502-1742-11D4-9790-0080C882687E}
大易輸入法:0404:{E429B25A-E5D3-4D1F-9BE3-0C608477E3A1}{037B2C25-480C-4D7F-B027-D6CA6B69788A}
微軟速成輸入法 :0404:{531FDEBF-9B4C-4A43-A2AA-960E8FCDC732}{6024B45F-5C54-11D4-B921-0080C882687E}
中文輸入法預設輸入法為英文 7 oobeSystem:Microsoft-Windows-Shell-Setup\FirstLogonCommands\SynchronousCommand

CommandLine = reg add "HKCU\Software\Microsoft\IME\15.0\IMETC" /v "Default Input Mode" /t REG_SZ /d 0x00000001 /f

語言列顯示於桌面 7 oobeSystem:Microsoft-Windows-Shell-Setup\FirstLogonCommands\SynchronousCommand  (需重新登入)

CommandLine = reg add "HKCU\Control Panel\Desktop" /v UserPreferencesMask /t REG_BINARY /d 9e1e078012010000 /f

使用者帳戶控制 (UAC) 啟用了應用程式嘗試變更我的電腦時才通知我 關閉使用者帳戶控制的所有通知功能 (但不能關掉UAC,否則ModernUI程式將無法執行) 7 oobeSystem:Microsoft-Windows-Shell-Setup\FirstLogonCommands\SynchronousCommand

CommandLine = reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v PromptOnSecureDesktop /t REG_DWORD /d 00000000 /f

CommandLine = reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v ConsentPromptBehaviorAdmin /t REG_DWORD /d 00000000 /f

預設上檔案總管不顯示隱藏、系統檔和副檔名 檔案總管能夠顯示隱藏、系統檔和副檔名 7 oobeSystem:Microsoft-Windows-Shell-Setup\FirstLogonCommands\SynchronousCommand

CommandLine = reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v Hidden /t REG_DWORD /d 1 /f

CommandLine = reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v HideFileExt /t REG_DWORD /d 0 /f

CommandLine = reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v SuperHidden /t REG_DWORD /d 1 /f

CommandLine = reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v ShowSuperHidden /t REG_DWORD /d 1 /f

IE 瀏覽器
  • 無預設首頁
  • 隱藏功能表
IE預設首頁為 google並停用首次執行精靈 4 specialize:Microsoft-Windows-IE-InternetExplorer

Home_Page = http://www.google.com.tw/

DisableFirstRunWizard = true

IE 啟動時顯示功能表 7 oobeSystem:Microsoft-Windows-Shell-Setup\FirstLogonCommands\SynchronousCommand

CommandLine = reg add "HKCU\Software\Microsoft\Internet Explorer\MINIE" /v AlwaysShowMenus /t REG_DWORD /d 1 /f

預設桌面只有資源回收筒圖示 桌面新增電腦和網路二個圖示 7 oobeSystem:Microsoft-Windows-Shell-Setup\FirstLogonCommands\SynchronousCommand

CommandLine = reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel" /v {20D04FE0-3AEA-1069-A2D8-08002B30309D} /t REG_DWORD /d 00000000 /f

CommandLine = reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel" /v {F02C1A0D-BE21-4350-88B0-7367FC96EF3C} /t REG_DWORD /d 00000000 /f

預設登入時進入開始畫面 登入後自動切換到傳統桌面 7 oobeSystem:Microsoft-Windows-Shell-Setup\FirstLogonCommands\SynchronousCommand

CommandLine =  cmd /c echo [Shell] > c:\desk.scf & cmd /c echo command=2 >> c:\desk.scf & cmd /c echo IconFile=explorer.exe,3 >> c:\desk.scf & cmd /c echo [Taskbar] >> c:\desk.scf & cmd /c echo Command=ToggleDesktop >> c:\desk.scf

CommandLine = cmd /c xcopy c:\desk.scf "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp"

說明:

先建立一個如下內容的scf檔

[Shell]
command=2
IconFile=explorer.exe,3
[Taskbar]
Command=ToggleDesktop

再將其拷貝到"C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp"這個目錄

這個方法將會比較慢從開始畫面切換至桌面,但沒有其它方法的副作用。

未加入網域的工作群組網路模式 將電腦加入Active Directory網域特定組織單位

4 specialize:Microsoft-Windows-UnattendedJoin\Identification

JoinDomain = 網域名稱 (如 lij.local)

MachineObjectOU = 建立電腦帳號的組織單位可辨別名稱 (例如:OU=MIS,DC=lij,DC=local)

Microsoft-Windows-UnattendedJoin\Identification\Credentials

Domain網域名稱

Password = 使用者密碼

username = 使用者名稱

說明:網路上需要有DHCP伺服器,除了配置有效IP位址外,其DNS選項必需指向Active Directory 網域的DNS伺服器

預設上啟用防火牆

預設對連入流量採正面列表(預設為封鎖)

預設對連出流量為負面列表(預設為允許)

新增或修改防火牆規則:

  新增ftp程式以便可以支援主動式ftp連線

關閉Windows 防火牆 (不建議)

7 oobeSystem:Microsoft-Windows-Shell-Setup\FirstLogonCommands\SynchronousCommand

CommandLine = cmd /c netsh advfirewall firewall add rule name="允許主動FTP連線" dir=in action=allow program="%windir%\system32\ftp.exe" enable=yes

CommandLine = cmd /c netsh advfirewall set allprofiles state off

 建立Windows Server 2012 回應檔案

Windows Server 2012為微軟新一代伺服器等級作業系統,建立一個最低要求的自動安裝回應檔案大抵與上述的Windows 8相仿,只有二點較大差別,windows Server 2012安裝時需要選擇安裝OS的類型--標準serverCore版、 標準GUI版、Datacenter Server Core版、Datacenter GUI版、此外,WindowsServer2012預設安裝時並不會停用administrator帳戶,安裝後可直接利用administrator帳戶登入,因此您必需在回應檔預先建立administrator的密碼。下表為建立一個最低要求的WindowsServer2012自動化安裝回應檔案的設定內容。

階段 元件 設定項目與設定值
設定安裝系統使用的語言

1

Microsoft-Windows-International-Core-WinPE InputLocale = zh-TW
SystemLocale = zh-TW
UILanguage = zh-TW
UILanguageFallback= zh-TW
UserLocale = zh-TW
OS映像選取、接受授權合約並輸入產品金鑰
1 Microsoft-Windows-Setup\ImageInstall\OSImage WillShowUI = Never
InstallToAvailablePartition = true
1 Microsoft-Windows-Setup\ImageInstall\OSImage\InstallFrom\MetaData Key = /IMAGE/INDEX
Value = 4
說明 :Windows Server 2012光碟片內經常支援多種OS安裝類型,其選擇的安裝索引值為1,2,3,4:
1. 標準 Server Core版
2. 標準版 (含GUI)
3. Datacenter Server Core版
4. Datacenter (含 GUI)
1 Microsoft-Windows-Setup\UserData AcceptEula = true
1 Microsoft-Windows-Setup\UserData\ProductKey Key = <產品金鑰>
WillShowUI = OnError
處理安裝的磁碟區範例一(與Windows 8 相同,不再贅述)
建立administrator密碼
7 Microsoft-Windows-Shell-Setup\UserAccounts\AdministratorPassword Value = <密碼>
說明:
Windows Server 2012預設安裝並不像Windows 8會停用administrator帳戶,因此在此階段只需在回應檔建立加密的administrator密碼即可

若要更進一步建立一個符合作者需求的Windows Server 2012 自訂安裝組態回應檔案,上述Windows 8的設定項目與技巧大多可以直接沿用,不過作者依據自己作業的習慣和需求又額外增加了一些自訂選項,如下表所示:

Windows Server 2012 自訂額外組態項目 回應檔案設定方法
停用 IE ESC 4 specialize:Microsoft-Windows-IE-ESC
          IEHardenAdmin = false
          IEHardenUser = false
登入時不啟動伺服器管理員 4 specialize:Microsoft-Windows-ServerManager-SvrMgrNc
      DoNotOpenServerManagerAtLogon = true
設定audio服務開機自動啟用 7 oobeSystem:Microsoft-Windows-Shell-Setup\FirstLogonCommands\SynchronousCommand
CommandLine = cmd /c sc config audiosrv start=auto & cmd /c net start audiosrv
停用關機事件追蹤功能 7 oobeSystem:Microsoft-Windows-Shell-Setup\FirstLogonCommands\SynchronousCommand
CommandLine = reg add "HKLM\Software\Policies\Microsoft\Windows NT\Reliability" /v ShutdownReasonOn /t REG_DWORD /d 00000000 /f
安裝 .NET Framework 3.5功能 7 oobeSystem:Microsoft-Windows-Shell-Setup\FirstLogonCommands\SynchronousCommand
CommandLine = cmd /c if exist d:\sources\sxs (DISM /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:d:\sources\sxs /quiet) else (DISM /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:e:\sources\sxs /quiet)
說明:第一次登入時使用DISM指令向本機來源(非網路,作者環境通常為D:或E:)安裝 .NET Framework 3.5。
安裝桌面體驗功能 7 oobeSystem:Microsoft-Windows-Shell-Setup\FirstLogonCommands\SynchronousCommand
CommandLine cmd /c if exist d:\sources\sxs (DISM /Online /Enable-Feature /FeatureName:DesktopExperience /All /LimitAccess /Source:d:\sources\sxs /quiet) else (DISM /Online /Enable-Feature /FeatureName:DesktopExperience /All /LimitAccess /Source:e:\sources\sxs /quiet)
說明:第一次登入時使用DISM指令向本機來源(非網路)安裝 桌面體驗功能,請將此命令的order設在最後,因為安裝後需要重新開機。

結語

安裝Windows 作業系統是件簡單的工作,但欲建立一個可以同時支援大量、自動化和自訂式的快速安裝機制就不是件簡單的事,而建立適當的回應檔案則是自動、自訂安裝的最基礎工作,本文說明了如何利用Windows 系統映像管理工具來建立和編輯一個回應檔案,並且利用了一些命令列技巧在回應檔案內執行以達到自訂組態設定的目的,不過企業若要達到更有效率的大量安裝,就得透過網路並利用自訂映像(wim)的方式來進行安裝,而若能進一步採用Windows PE開機光碟片、部署Windows部署服務經由網路開機安裝再搭配預先設計好的sysprep或WDS回應檔案將形成一個企業較佳的Windows 系統安裝暨部署方案。