桌面檔案WDS 中的進階功能

Wes Miller

目錄

命令列管理
映像存放區
多點傳送
WDS 記錄
其他問題
總結

我在前兩期專欄中,都在探索 Windows 部署服務 (WDS)。我開始先回顧 Microsoft 推出的以開機前執行環境 (PXE) 為基礎的部署工具的歷史,隨後概述 WDS。這個月,我將深入探討一些進階主題 —

WDSUtil (適用於 WDS 的強大命令列公用程式)、WDS 映像存放區、WDS 記錄,以及針對 Windows Server® 2008 使用 WDS 中的多點傳送功能。

當遠端安裝服務 (RIS) 隨 Windows® 2000 和 Windows Server 2003 發行時,它的功能一直不如許多人嚮往般地豐富。尤其是以下三個區域:

  • 效能 (更容易擴充的部署)
  • 記錄/稽核
  • 命令列自動化

隨著本月專欄逐一介紹 WDS 的初次發行,特別是 Windows Server 2008 中的 WDS,您就不難發現這些領域都有了顯著的改進。

命令列管理

我在上個月曾提到 WDS 提供了大幅改良過的管理主控台。但對於大多數企業來說,更重要的是,WDS 提供了有利於管理工作的全新命令列公用程式,WDSUtil.exe (見 [圖 1])。WDSUtil 是隨 Windows Server 2003 (SP1+WDS 或 SP2) 上的 WDS 選用元件,以及隨 Windows Server 2008 上的 WDS 角色一同安裝。

fig01.gif

[圖 1] 使用 WDSUtil 將架構探索選項設為 yes (按一下以放大影像)

WDSUtil 是威力極強的公用程式,但卻很複雜。事實上,您經由 Microsoft® Management Console (MMC) 進行的任何動作,透過 WDSUtil 都可以辦得到。廢話不多說,不妨舉個最佳實例,這剛好也是診斷問題的最佳辦法,執行看看:

wdsutil /get-server /show:config

結果幾乎跟您在整個 WDS MMC 中看到的一模一樣 — 然而 WDSUtil 以容易細讀的格式將它輸出,讓您隨後輸出成文字檔。

資訊不夠?改試下列的命令,這麼做甚至會傳回更多內容:

wdsutil /get-server /show:all /detailed

而且您可以停止和重新啟動 WDS 伺服器,只要執行:

wdsutil /stop-server
wdsutil /start-server

您可以在 go.microsoft.com/fwlink/?LinkId=112194 找到 WDSUtil 的命令參考資料。您高興的話,還可以在 go.microsoft.com/fwlink/?LinkId=89381 下載這份參考資料的 .chm 版本 (隨附所有 WDS 2008 文件)。

要使用 RIS 透過命令列來確定特定 MAC 位址或 GUID 是否與 Active Directory 中的電腦帳戶物件 (MAO) 相關聯並非易事 — 除非您是 Active Directory® 服務介面的高手。而透過 WDSUtil,您可以根據任一者來進行查詢。

GUID 可能很容易令人混淆,因為您可以將它們當作二進位字串,也可以當作 GUID 字串來輸入,而當中唯一的差別是位元組的順序,以及有無連字號。您可以使用下列幾行程式碼輸入包含或不含連字號的 MAC 位址:

wdsutil /get-device /id:01-23-45-67-89-AB
wdsutil /get-device /id:0123456789AB

您可以使用這個命令透過二進位字串來取得裝置資訊:

wdsutil /get device /id:ACEFA3E81F20694E953EB2DAA1E8B1B6

或者,您可以使用這個命令透過 GUID 來取得裝置資訊:

wdsutil /get device /id:E8A3EFAC-201F-4E69-953-B2DAA1E8B1B6

您有很多電腦可能可以執行 64 位元版本的 Windows,但不幸的是,有些電腦無法正確報告它們的架構。您可以讓 WDS 嘗試判斷某系統是否具備 x64 能力,方法是執行一個 net-boot 小程式,這個程式是作為 WDS 的一部分而提供的。如 [圖 1] 所示,您可以使用下列命令進行這個動作:

wdsutil /set-server /architecturediscovery:yes

事實上,WDSUtil /set-server 命令可讓您設定大量的伺服器設定。要看它有何威力,可執行這段命令:

wdsutil /set-server /?

如果您已將 Windows Server 2003 WDS 伺服器升級至 Windows Server 2008,就可以將任何 RIPrep 映像轉換成 Windows Imaging Format (WIM) 映像,只要執行:

WDSUtil /convert-RIPrepImage

雖然 WDSUtil 可以轉換 RIPrep 映像,但無法轉換其餘任何 RISetup 映像 (傳統 RIS/舊版 WDS 指令碼式安裝)。

WDSUtil 的威力在於它能夠自動化重複性工作。[圖 2] 中的命令可讓您大致了解 WDSUtil 的功能。無論您是部署新 WDS 伺服器,新增或修改多個伺服器上的映像,管理多點傳送基礎結構,還是指定要用於特定開機用戶端的網路開機程式,WDSUtil 所提供的一些超強功能都是在 RIS 中前所未見的。

[圖 2] WDSUtil 命令

命令 描述
/add 新增裝置、映像或映像群組。
/approve-AutoAddDevices 核准擱置中的自動新增裝置,並允許您為它們設定組態資訊。
/convert-RiprepImage 將舊版 RIPrep 映像轉換成 WIM 映像。
/copy-Image 在映像存放區內複製映像。
/delete-AutoAddDevices 刪除所有或特定的擱置中自動新增裝置。
/disable 停用 WDS 伺服器或傳輸伺服器。
/disconnect-Client 中斷用戶端與多點傳送傳輸或命名空間的連線。
/enable 啟用 WDS 伺服器或傳輸伺服器。
/export-Image 跟 ImageX 中的 /export 一樣,這會將現有的映像從映像存放區匯出成 WIM 映像。
/get 取得裝置、映像、映像群組、WDS 伺服器或傳輸伺服器的內容和屬性。
/initialize-Server 設定 WDS 伺服器以供第一次安裝後使用。
/new 建立擷取或探索映像、多點傳送傳輸和命名空間。
/progress 顯示當執行指定命令時的進度。
/reject-AutoAddDevices 拒絕所有或特定的擱置中自動新增裝置。
/remove 移除映像、映像群組、多點傳送傳輸和命名空間。
/replace-Image 以新映像取代 (覆寫) 映像。
/set 設定裝置、映像、映像群組、WDS 伺服器或傳輸伺服器的內容和屬性。
/start 啟動 WDS 伺服器或傳輸伺服器。
/stop 停止 WDS 伺服器或傳輸伺服器。
/uninitialize-Server 還原在伺服器初始化期間對伺服器所作的變更 (將它還原為未設定狀態)。
/update-ServerFiles 從伺服器的 System32\RemInst 目錄以最新版本更新伺服器 REMINST 共用中的檔案。
/verbose 顯示執行指定命令時的詳細輸出。

映像存放區

上個月我曾提到 WDS 遺棄了 RIS 用在磁碟上更有效儲存檔案的儲存單一版本 (SIS)。而現在,所有原生模式 (WIM) 映像 (無論 OS 為何),全都存放在 WDS 映像存放區中。我在之前專欄中提過,當磁碟區映像有相關檔案時,單一執行個體功能可在 .wim 檔案中為您省下不少空間。而 WDS 映像存放區也具備相同的作用。事實上,它正是使用 WIM 功能來存放映像的。

若要使用映像存放區,您必須至少擁有一個映像群組,WDS 初始化一般會提示您建立映像群組。您也可以在新增安裝映像時建立新的映像群組,而該映像會加入該映像群組中 (見 [圖 3])。

fig03.gif

[圖 3] 建立新的映像群組 (按一下以放大影像)

那麼,映像存放區到底是什麼呢?看一下您的 RemoteInstall 目錄下,在 Images 目錄中會看到每個您建立的映像群組都有目錄。如 [圖 4] 所示,針對您匯入到映像群組的安裝映像都有一個 .wim 檔案,另外還有一個 .rwm 檔案 (資源 WIM)。

fig04.gif

[圖 4] 映像群組的內容 (按一下以放大影像)

仔細看一下 [圖 4] 中的檔案。這個映像群組包括了:

  • install.wim (Windows Server 2008, Standard Edition)
  • install-(2).wim (Windows Server 2008, Enterprise Edition)
  • install-(3).wim (Windows Server 2008, Datacenter Edition)
  • install-(4).wim (Windows Server 2008, Standard Edition (Server Core)
  • install-(5).wim (Windows Server 2008, Enterprise Edition (Server Core)
  • install-(6).wim (Windows Server 2008, Datacenter Edition (Server Core)

現在比較這些檔案與 MMC 的檔案大小 (如 [圖 5] 所示)。[圖 4] 中每個 .wim 檔案的大小都是 Res.rwm 檔案大小的一小部分。為什麼呢?是這樣的,為了節省空間,顯示的 .wim 檔案不過是實際檔案剩餘的一小部分。它們包含用以還原 .wim 檔案的中繼資料,但並不實際包括檔案資源。映像群組裡面所有的檔案資源都存放在該映像群組的 .rwm 檔案中。

fig05.gif

[圖 5] 顯示在伺服器管理員中的映像 (按一下以放大影像)

若要編輯映像存放區中的安裝映像,您可以匯出該映像,進行編輯,然後取代該映像 (或是重新將它匯入),或者您也可以與映像互動,方法是從 MMC 停用適當的安裝映像,然後透過掛接和修改 .wim 檔案來進行編輯。

RIS 一直有映像複寫方面的問題。當您透過網路複製 SIS 處理過的檔案時,SIS 會因為它是 NTFS 屬性的關係而消失。這表示,若是您有 40GB 的 RISetup 和 RIPrep 映像,然後您將它們複寫到另一部伺服器,即便 SIS Groveler 將它們的大小縮減至 5GB 那麼小,您仍舊是在網路上複寫 40GB 的資料。而 WDS 映像存放區則不是這麼一回事。事實上,藉著映像存放區的架構,您可以將它儲存在分散式檔案系統 (DFS) 伺服器上,然後使用 DFS 複寫 (DFS-R) 在不同的網站間進行複寫。

而這方面的特性因情況而異,要看 WDS 的版本而定。對於 Windows Server 2003,請參閱說明文件中的第七章<使用映像>(英文),這份說明文件可從 go.microsoft.com/fwlink/?LinkId=81031 下載。對於 Windows Server 2008,請參閱<使用 DFS 儲存和複寫映像>(英文),網址是 go.microsoft.com/fwlink/?LinkId=121960。由於資源全都是儲存在 .rwm 檔案中,因此即使當您在伺服器間複製映像群組,跨越網路的資料量仍舊跟傳輸整個 .wim 檔案的一小部分一樣 (或是在舊版 RIS SIS 架構中)。

那麼您何時應該建立新的映像群組,何時又該使用舊的映像群組呢?原則大致上跟 .wim 檔案沒什麼兩樣。雖然您可以將 Windows XP Professional SP3 的映像放入主要是由 Windows Server 2008 映像所組成的映像群組中,但是這其實並不怎麼合理,因為您省不了多少空間。至於 .wim,您一般至少都應該針對下列情況擁有一個映像群組:

  • 每個特定的 Windows 版本 — 此處的版本包括 SKU (Windows XP Professional) 和 Service Pack 修訂 (SP3)。
  • Windows Server 2003 及早期版本:每個當地語系化版本 (非多語言使用者介面)。Windows Vista® 之前的當地語系化組建的二進位碼截然不同,因此就單一執行個體來說,它們在儲存 .wim 檔案中的情況並不佳。
  • 每個版本的每個 Service Pack。雖然您可能可以將 Windows Server 2008 和 Windows Vista SP1 映像存放在一起,也請考慮這麼做是否符合貴組織所需的功能。

映像存放區比它之前的 SIS 更節省空間 — 同時在磁碟上和網路上,而且通常不用多費什麼力氣就能順利運作。

RIS 最大的缺點之一是缺乏延展性。而多點傳送部署可以矯正這個缺點。人們常常認為多點傳送是「較快速」的部署,但它其實跟速度沒什麼關係 — 而是在於「廣度」。您可以透過 RIS 部署多部系統,事實上,RIS 可以同時處理大約 75 部系統的部署工作。

但是遠在達到這個極限之前,效能早已受到波及,而且每個安裝作業所花的時間也越來越長。更糟的是,安裝的數目增加,發生失敗的可能性也跟著提高。同時,多項安裝也會因伺服器訊息區 (SMB) 網路流量充斥而使網路飽和 (因此在部署期間,員工可能無法取得重要的網路資源,例如 Microsoft Exchange Server)。

多點傳送的重點在於擴充您的部署數量。無論您是部署四部伺服器或是含有 100 個系統的會議中心,多點傳送都能讓您在短時間內,以及在不使網路飽和的情況下完成部署作業。雖然您可以使用多點傳送部署到單一系統,但擴充的功效其實要等到有多部系統接聽傳輸時才比較顯著。

若要使用多點傳送,您必須擁有支援多點傳送的路由器。一般來說,這表示應該啟用網際網路群組管理通訊協定 (IGMP) 窺探。您還必須裝有 Windows PE 2.1 (Windows Server 2008 RTM 或 Windows Vista SP1),因為隨 Windows Vista RTM 一起發行的版本 (2.0) 並無法接收多點傳送傳輸。

若是您在相同的網路上擁有多部 WDS (或其他多點傳送) 伺服器,您也應該確實指定自訂 IP 位址範圍。這透過 WDS MMC 很容易就可以變更,只要在伺服器上按滑鼠右鍵,按一下 [屬性],再按 [網路設定] 索引標籤就行了。

在執行多點傳送廣播時,多點傳送伺服器可以調整成最慢的用戶端可以接收的速度,也可以將速度調整在較高的層級,然後捨棄速度不及的用戶端。為求穩定性,WDS 會以接收傳輸最慢的用戶端速度來執行。

如果您發現傳輸效能比您預期的低,可執行 wdsutil /Get-MulticastTransmission/Show-clients。這將顯示拖延傳輸的主用戶端。您接著可中斷與該用戶端的連線,它隨後會還原為使用 SMB 而不是多點傳送。如需可自動中斷與慢速用戶端連線的範例指令碼,請前往 go.microsoft.com/fwlink/?LinkId=121961

若要建立多點傳送傳輸,您可以在安裝映像上按右鍵,然後選取 [建立多點傳送傳輸],或是在 WDS 主控台中以滑鼠右鍵按一下 [多點傳送傳輸],再選取 [建立多點傳送傳輸]。您在建立多點傳送傳輸的同時,也可以建立自動傳送或排程傳送。如果您有好幾個用戶端會定期上線,而且全都需要一模一樣的映像,那麼自動傳送就蠻管用的,因為新用戶端會自動加入當初針對第一個要求安裝映像的用戶端所起始的現行傳輸。而排程傳送則可讓您設定群組大小,在達到此大小時開始進行傳輸。

您也可以將傳輸設定在指定的時間開始。一旦用戶端開始利用多點傳送傳輸,您便可以按一下映像名稱來檢視它們。在右窗格中,您會看到連線到傳輸的用戶端的特定資訊。

一般來說,您的使用者會從 WDS 安裝用戶端使用多點傳送。不過,Windows Server 2008 Windows 自動安裝套件 (WAIK) 內有發行一個名為 WDSMCast 的命令列公用程式,可讓您從 WDS 透過多點傳送傳輸來要求 .wim 檔案。傳輸 .wim 檔案時必須傳輸整個檔案,然後套用到用戶端 — 因此您應該要確保有足夠的磁碟空間存放和套用映像。下個月,我將探討如何將 WDSMCast 整合至您自己自訂的部署程序中。

WDS 記錄

WDS 能夠執行相當可觀的記錄和追蹤作業,不過為了節省空間,這些功能預設是停用的。事件記錄有兩種類型 — 當用戶端寫入 Windows 事件記錄檔時,以及針對其他 WDS 層面寫入追蹤記錄檔時。

然而,在 Windows Server 2008 中,WDS 預設的確會執行為數不少的記錄作業。這些記錄檔可從 [系統管理工具] | [事件檢視器] 下取得。您可以在事件檢視器中的 [應用程式及服務記錄檔] | [Microsoft] | [Windows] | [Deployment-Services-Diagnostics] 下看到 WDS 記錄檔。為了方便起見,這些記錄檔跟您在 MMC 中查看 WDS 角色時看到的記錄檔是一樣的 (見 [圖 6])。

fig06.gif

[圖 6] 在伺服器管理員中檢視 WDS 事件 (按一下以放大影像)

您可以使用下列引數執行 WDSUtil 來啟動 WDS 用戶端記錄 (**[圖 6]**中顯示的事件記錄檔):

wdsutil /wdsclientlogging /enabled:yes /logginglevel:info

您也可以在 WDS 好幾個不同的子元件上啟用追蹤記錄。若要設定追蹤,請在登錄機碼下適當設定 DWORD 登錄值,如 [圖 7] 所示。追蹤記錄檔全都是存放在 \Windows\tracing 下。您接下來需要重新啟動適當的元件,以便開始記錄。

[圖 7] 設定追蹤記錄

WDS 元件 登錄機碼 登錄值 記錄檔名稱
伺服器 HKLM\SOFTWARE\Microsoft\Tracing\WDSServer\EnableFileTracing 1 wdsserver.log
多點傳送 HKLM\System\CurrentControlSet\Services\WDSServer\Providers\WDSMC\TraceDisabled 0 wdsserver.log
管理元件 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Tracing\WDSMGMT\EnableFileTracing 1 wdsmgmt.log
MMC HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Tracing\WDSMMC\EnableFileTracing 1 wdsmmc.log

WDS 也有效能計數器 (在 go.microsoft.com/fwlink/?LinkId=121962 有說明),您可以在發生系統效能問題時進行監視 (或是事前進行系統效能分析)。如前所述,如果您遇到問題時,可以使用 WDSUtil 的 /detailed、/verbose 或 /progress 參數取得更詳盡的資訊。

若是 WDS 用戶端在連接或與 WDS 伺服器互動時發生問題,Microsoft Network Monitor (Netmon) 則是偵錯這些問題的絕佳工具。您可在 go.microsoft.com/fwlink/?LinkId=121491 下載取得網路監視器。

其他問題

我有看到幾個值得一提的問題。第一個問題是記憶體 — 別忘了 WDS 的核心是以 Windows PE 2.x 為基礎。這也就是說 WDS 用戶端需要至少 384MB 的 RAM — 就現實的角度來看,您應該確保擁有 512MB 以達最佳效能。也別忘了 Windows PE 2.x 無法在非進階組態與電源介面 (ACPI) 系統上開機 — 這並不一定是指舊式硬體。就曾有報告指出相當新型的系統不支援 ACPI。

請注意這些系統也不支援 Windows Vista 或 Windows Server 2008。對於不支援 ACPI 的系統,您必須保有 Windows Server 2003 或舊版 WDS 或 RIS 伺服器,供預備接移到它的該些用戶端使用,或是透過非 PXE 的機制來安裝 Windows。

最後請牢記,如果您想要從伺服器啟動 Windows PE 1.x,您也需要使用 Windows Server 2003 或舊版 WDS 或 RIS 伺服器,因為 Windows Server 2008 中的 WDS 無法啟動 Windows PE 1.x 映像 (RAMDisk 或 PXE)。

總結

到目前為止,我深入探討了 WDS 的歷史、基礎,以及進階主題。下個月,我將討論一些自訂 WDS 案例 — 特別是您要如何與 WDS 互動,以及如何修改它來執行您要它進行的工作,這往往不用現有 WDS/安裝經驗就可以辦到。

Wes Miller 在位於德州奧斯汀的 CoreTrace (www.CoreTrace.com) 擔任資深技術產品經理。他之前任職於 Winternals Software,並且曾在 Microsoft 擔任專案經理一職。您可以透過電子郵件與 Wes 聯絡:technet@getwired.com