Abner Kou原創,轉載請注明出處
<b>利用</b><b>WDS</b><b>實作零接觸部署</b><b>Windows 7 VHD</b>
在Windows 7中包含了一項非常強大的功能——native boot,它允許系統從單一的VHD檔案啟動,VHD檔案中的OS直接通路硬體,不需要運作在虛拟化層之上,而且可以在VHD中直接安裝硬體驅動,在性能上與直接安裝在硬碟的系統幾乎沒有差異。對于個人使用者而言,這使得作業系統的安裝、備份都變的相當簡單,隻需拷貝一個VHD檔案,添加啟動項,連Ghost都可以省了。對于企業使用者,VHD的Native boot也可以帶來很多創新應用,比如快速批量部署系統、利用差異磁盤功能實作硬體還原卡功能、配合一定的VHD映像管理工具,使得VHD映像的部署管理集中化、簡單化,智能化。這将是一個颠覆性的系統部署方式。
關于個人使用者的應用可以參看我的兩篇文章《Windows XP 與Win7 VHD雙啟動》、《Windows7 Native Boot流程筆記》。本文的主要目的就是探求一下如何在企業中實作VHD檔案的快速批量部署。
Windows Server 2008 R2的WDS 支援直接将VHD檔案部署到用戶端,部署的流程和界面與使用安裝檔案部署系統的流程和界面一緻,隻是vhd的部署是copy VHD檔案到指定盤符,相對應的檔案方式安裝是釋放p_w_picpath到指定盤符。安裝完成後,還會自動添硬碟上安裝的XP作業系統。配合兩個自動應答檔案,這樣就可以實作零接觸的部署
本文的流程大概是制作VHD檔案——配置WDS——制作自動應答檔案——部署。實作在現有XP系統上部署一個Win7 VHD檔案到一個分區,最終實作XP、Win7雙系統。
<b>一、 </b><b>制作</b><b>VHD</b><b>檔案</b><b></b>
使用VPC或者Hyper-v,建立虛拟機,安裝必要的驅動和程式,然後用sysprep進行抽取。參考使用指令sysprep /generalize /oobe /shutdown。最後将制作好的VHD檔案拷貝到WDS伺服器上。
<b></b>
<b>二、添加啟動映像</b><b></b>
1、打開WDS管理控制台,右鍵點選“啟動映像”,選擇“添加啟動映像”

2、定位到Windows 7 安裝目錄的啟動映像\sources\boot.wim,選擇打開
3、點選下一步,選擇預設的映像說明資訊
4、點選下一步,檢查摘要資訊,再次點選下一步,進行映像添加。
<b>三、将</b><b>VHD</b><b>檔案導入</b><b>WDS</b>
在Windows Server 2008 R2的WDS中并沒有圖形界面下的VHD檔案導入,但支援指令行方式導入,需要使用指令行工具WDSUtil.exe——一款強大的WDS指令行管理工具,可以完成WDS管理控制台中所有功能甚至更多其他功能。
1、添加映像組,使用指令:wdsutil /add-p_w_picpathgroup /p_w_picpathgroup:"VHDImage"
成功完成後,在管理控制台的安裝映像上出現VHDImage組。
2、添加Win7.vhd映像到WDS。使用指令:wdsutil.exe /verbose /progress /add-p_w_picpath /p_w_picpathfile:”d:\Win7.vhd” /p_w_picpathtype:install /p_w_picpathgroup:”VHDImage”
其中/berbose表示顯示指令的詳細輸出;/progrees表示顯示指令的程序
<b>四、建立無人參與檔案</b><b></b>
在部署單個計算機的時候,沒有必要配置自動應答,但是在批量部署的時候,還是需要配置無人參與檔案,實作批量自動部署。一般來說,實作零接觸處的自動部署需要兩個無人參與檔案,一個用在WDS部署過程中,用來登入WDS、擷取映像、選擇安裝位置等;另一個用在映像配置階段,即當部署的映像經過sysprep專化後,需要重新配置鍵盤、時區、使用者名等資訊。
這兩個應答檔案可以使用Windows Automated Installation Kit中的Windows System Image Manager工具制作(下一篇文章會給大家介紹如何制作)。内容如下,括号的内容是解釋
A、WDS使用的應答檔案Untitled.xml
<?xml version="1.0" ?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<settings pass="windowsPE">
<component name="Microsoft-Windows-Setup" publicKeyToken="31bf3856ad364e35"
language="neutral" versionScope="nonSxS" processorArchitecture="x86">(跟啟動鏡像的架構要相符)
<WindowsDeploymentServices>
<Login>
<WillShowUI>OnError</WillShowUI>
<Credentials>
<Username>administrator</Username>
<Domain>elab.org</Domain>
<Password>yourpassword</Password>
</Credentials>
</Login>
<ImageSelection>
<InstallImage>
<ImageName>Win7VHD7600ZH</ImageName>(導入之後的安裝鏡像名稱)
<ImageGroup>VHDImage</ImageGroup>
<Filename>Win7.vhd</Filename>(部署的VHD檔案名稱)
</InstallImage>
<InstallTo>
<DiskID>0</DiskID>(選擇第一塊磁盤)
<PartitionID>2</PartitionID>(将VHD部署到第二個分區D盤)
</InstallTo>
</ImageSelection>
</WindowsDeploymentServices>
</component>
<component name="Microsoft-Windows-International-Core-WinPE" publicKeyToken="31bf3856ad364e35"
language="neutral" versionScope="nonSxS" processorArchitecture="x86">
<SetupUILanguage>
<UILanguage>zh-CN</UILanguage>
</SetupUILanguage>
</settings>
</unattend>
B、映像使用的應答檔案ImageUntitled.xml
<?xml version="1.0" encoding="utf-8"?>
<settings pass="oobeSystem">
<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">
<OOBE>
<NetworkLocation>Work</NetworkLocation>
<ProtectYourPC>2</ProtectYourPC>
<HideWirelessSetupInOOBE>false</HideWirelessSetupInOOBE>
<HideEULAPage>true</HideEULAPage>
<SkipMachineOOBE>true</SkipMachineOOBE>
<SkipUserOOBE>true</SkipUserOOBE>
</OOBE>
<UserAccounts>
<AdministratorPassword>
<Value>agBhAG4AQQBNADEANQA/AEEAZABtAGkAbgBpAHMAdAByAGEAdABvAHIAUABhAHMAcwB3AG8AcgBkAA==</Value>
<PlainText>false</PlainText>
</AdministratorPassword>
<LocalAccounts>
<LocalAccount wcm:action="add">(添加賬戶)
<Password>
<Value>agBhAG4AQQBNADEANQA/AFAAYQBzAHMAdwBvAHIAZAA=</Value>
</Password>
<Name>test1</Name>
<Group>elab</Group>
<DisplayName>elabstu</DisplayName>
<Description>test account</Description>
</LocalAccount>
</LocalAccounts>
</UserAccounts>
<TimeZone>China Standard Time</TimeZone>
<StartPanelOff>true</StartPanelOff>
<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>zh-CN</InputLocale>
<UserLocale>zh-CN</UserLocale>
<SystemLocale>zh-CN</SystemLocale>
<settings pass="specialize">
<ProductKey>Q93J4- Q93J4- Q93J4- Q93J4- Q93J4</ProductKey>(添加序列号)
<cpi:offlineImage cpi:source="catalog:g:/sources/install_windows 7 enterprise.clg" xmlns:cpi="urn:schemas-microsoft-com:cpi" />
<b>五、關聯無人應答檔案</b><b></b>
1、 将WDS用的無人應答檔案Untitled.xml複制到WDS的安裝目錄D:\RemoteInstall\WdsClientUnattend
2、 打開部署服務,右鍵單擊WDS服務的名稱,選擇屬性,打開“用戶端”标簽
3、 勾選“啟用無人參與安裝”,在X86體系結構中導入Untitled.xml無人參與安裝的自動應答檔案。
4、 将映像使用的自動應答檔案ImangeUntitled.xml複制到D:\RemoteInstall\Images\VHDImage\Win7\Unattend
5、 選擇安裝映像Win7VHD7600ZH,右鍵單擊選擇屬性,将ImangeUntitled.xml與其關聯。
6、 在正常頁籤中,勾選允許在無人參與模式下安裝映像,然後點選選擇檔案定位到ImangeUntitled.xml
<b>六、按下</b><b>F12</b><b>,一切都搞定</b><b></b>
1、重起客戶機,從網絡啟動
2、連接配接到WDS伺服器後,按照提示按下F12鍵
3、根據WDS的應答檔案,用戶端會自動登陸WDS\選取映像\copy\添加啟動項等工作
4、第一次重起,安裝裝置等
5、第二次重起,按照映像的自動應答檔案,進行sysprep之後的配置.一閃而過,直接來到登入界面
6、以下是系統重新開機之後的啟動項,“早期版本的Windows“是DS自動添加的,就是C槽的WinXP,進入WinXP後可以看到xp的D盤多了一個Win7.VHD檔案。
<b>六、結語</b><b></b>
本文完全可以用來直接部署Windows 7,之是以使用VHD是為了後續的差異磁盤部署,這樣系統恢複就變得極為友善,XP下替換一個差異的VHD檔案,系統就恢複了。、
另外,本文還不夠完善,關于多點傳播、加入域等還沒做測試。WDS本身也存在很多不足的地方,很希望微軟能推出一個針對VHD鏡像的管理工具,如果有第三方開發也好。