 TechNet Magazine March 2008

TechNet Magazine March 2008

特別報導：Windows Server 2008: 深入探討 Windows Server 2008 核心變更

跟隨本文對於 Windows Server 2008 核心的重大變更的詳細介紹，深入了解它在可靠性、效能及延展性方面的提升。探索 Windows Server 2008 如何妥善運用執行緒集區，精簡硬體失敗的復原程序，使用 Hyper-V 增進虛擬化功能，以及其他更多內容。

Mark Russinovich 特別報導：Windows Server 2008: Active Directory 網域服務中的新功能

Windows Server 2008 在 Active Directory 網域服務中引進了一些重大的增進功能。一同來深入探索唯讀網域控制站和 Windows Server Core 如何提升您環境內的安全性，全新的伺服器管理員和改頭換面的備份功能如何簡化管理工作，以及全新的稽核工具如何幫助落實循規。

Gil Kirkpatrick 特別報導：Windows Server 2008: IIS 7.0 入門

IIS 7.0 滿載著各種新功能 — 多到無法以單篇文章一一說明。新版本是以 IIS 6.0 穩固且重安全性的設計為基礎建置而成，所提供的增強功能大幅提升了平台的管理性和擴充性。一同來了解 IIS 7.0 中一些最重要的變更。

Isaac Roybal 特別報導：Windows Server 2008: 使用 Windows Server 2008 的原則導向網路存取

您如何在不危及安全性的情況下，允許需要存取網路的人存取網路呢？瞧瞧 Windows Server 2008 中的新技術，例如具有進階安全性的 Windows 防火牆和網路存取保護，讓您實作以原則為主的方法，來協助您達成此目標。

Ian Hameroff and Amith Krishnan 特別報導：Windows Server 2008: 透過伺服器管理員設定角色

DNS 伺服器不一定要是列印伺服器。Windows Server 2008 提升安全性和管理性所採取的方法之一，是簡化伺服器的角色，讓您輕易地只安裝所需的工具和服務，不多不少。本文介紹了使用伺服器管理員設定角色和簡化部署作業的程序。

Byron Hynes 特別報導：Windows Server 2008: 透過 System Center 部署 Windows Server 2008

一直以來，伺服器系統管理員都是使用 CD 或 DVD 手動安裝 Windows Server，然後花好幾個小時的時間設定伺服器。隨著 System Center Configuration Manager 2007 及全新 Microsoft Deployment Toolkit 的推出，伺服器系統管理員現在已能夠使用桌上型電腦系統管理員好幾年來使用的工具，來自動化部署作業。

Tim Mintner 特別報導：Windows Server 2008: Windows Server 2008 中的稽核與規範

稽核變更現在是 IT 部門的主要重責大任，要了解和管理分散式環境內的系統和資料，它可說是不可或缺的一部分。本文將探討常見的挑戰、規範和法規的全貌、稽核的一些基本原理，以及您要如何訂定完善的稽核策略。

Rob Campbell and Joel Yoker 編輯的話: 為 Windows Server 2008 舉杯

Joshua Hoffman 讀者來信: 讀者有話直說

工具箱: 適合 IT 專家的新產品

Greg Steen 公用程式焦點: Windows Server 標誌認證

為了協助 ISV 和客戶評估應用程式相容性，Microsoft 特別發起「Works with Windows Server 2008」計劃。本文將介紹透過這項計劃所提供的免費支援測試工具，協助您確保應用程式提供符合期望的使用經驗。

Venkat Krishnamachari The Cable Guy: 使用 ISATAP 將內部網路移轉到 IPv6

準備好遷移到 IPv6 了嗎？The Cable Guy 將說明如何使用 IPv6 轉換技術來取得 IPv6 連線，並移轉至具備 IPv6 能力的內部網路。

Joseph Davies Windows PowerShell: 進度報告

無論您的使用者是否有注意力無法集中的問題，在指令碼中提供狀態回饋功能都是不錯的作法。下文將教導您如何在 Windows PowerShell 中提供狀態。

Don Jones 嗨，Scripting Guy！: 我們最愛的 Shell 遊戲

Scripting Guy 將告訴您如何使用指令碼和 Shell 物件，變更檔案的上次修改日期。

The Microsoft Scripting Guys 安全性監控: 在 Windows Server 2008 上使用 SCW

儘管 Windows Server 2008 已經推出新的伺服器管理員工具，但還是有人使用「資訊安全設定精靈」(SCW)，一同來了解您為什麼要繼續使用 SCW？

Jesper M. Johansson 桌面檔案: 錢不嫌多，人不嫌瘦，電腦不嫌太精簡

雖然精簡型用戶端變化不斷，但似乎永遠能夠造福人類，不被淘汰。目前它們是用於純粹瀏覽網頁的資訊站和環境上。下面我們就來看看如何利用用戶端應用程式讓舊硬體復活，幫您節省金錢。

Wes Miller 現場筆記: 準備迎向 IT 2.0

下面讓我們看看記取過去教訓以面對未來 IT 挑戰的重要性。

Romi Mahajan Windows 機密文件: Beta 版如何演變成 RC

Raymond Chen 講述非最終版本的命名慣例如何演變的有趣緣由，並呼籲企業能夠更重視 Beta 版測試。

Raymond Chen


 特別報導：Windows Server 2008: 深入探討 Windows Server 2008 核心變更
特別報導：Windows Server 2008 Mark Russinovich

深入探討 Windows Server 2008 核心變更
摘要:
  • 記憶體管理與 SMB 2.0
  • NTFS 自我修復、Windows Hardware Error Architecture 及驅動程式檢查器
  • I/O 完成通訊埠、執行緒集區和 NUMA 的延展性
  • Hyper-V 虛擬化

Windows Server 2008 是最新發行的 Microsoft 伺服器平台，包含橫跨作業系統中各功能區域的系統層級變更，從記憶體管理
到執行緒排程，還有從網路到安全性，不勝枚舉。
Windows Server® 2008 與 Windows Vista® SP1 共用相同的核心，因此它包含了我在前幾期《TechNet Magazine》文章中討論過的許多增強功能：＜深入探索 Windows Vista 核心＞第 1-3 篇 (2007 年 2 月、3 月及 4 月) 和＜深入探索 Windows Vista 使用者帳戶控制＞(2007 年 6 月)。在這些文章提及的功能中，只有一小部分是專門針對用戶端而設計，而且並不包含在 Windows Server 2008 中，像是 SuperFetch、ReadyBoost、ReadyDrive、ReadyBoot 及多媒體類別排程器服務 (MMCSS)。
之前討論的某些 Windows Vista 重要核心變更也出現在 Windows Server 2008 中，例如 I/O 優先順序處理、新的開機結構、BitLockerTM、程式碼完整性以及強制整合層級，因此在本文中將不再贅述，我會把重點放在前文尚未提及的關鍵變更內容，包括與可靠性、效能與延展性相關的變革，還有全新的 Microsoft Hypervisor 機器虛擬化技術 Hyper-VTM。
如同先前的文章一樣，本文的範圍僅限於作業系統核心 (Ntoskrnl.exe) 及其密切相關的系統元件。本文內容不包括有關安裝 (WIM，或 Windows® Imaging Format，以及以元件為基礎的服務)、管理 (群組原則和 Active Directory® 改進功能)、一般診斷和監控 (Windows 診斷基礎結構)、核心網路功能 (新的防火牆和 TCP/IP 實作)、Server Core 或伺服器角色等諸如此類的變更。
運用多處理器系統
其中一項低階的系統變更就是，Windows Server 2008 只包含一個專為運用多處理器系統而設計的核心版本。Windows 過去在包含單一 CPU 的電腦上是使用單一處理器的特定版本，因為這種版本會忽略只有多處理器環境才需要的同步處理程式碼，藉此稍微提升效能。隨著硬體速度越來越快，這種最佳化處理所帶來的效能優勢變得微不足道，而且今日大部分的系統都不只包含一個處理器，因此不再需要單一處理器版本。
[圖 1] 顯示 Windows Server 2008 核心的各種變體，在系統上使用的版本取決於它是否是作業系統的偵錯 (檢查) 或零售版本，安裝成 32 位元或 64 位元 (Itanium、Intel 64 或 AMD64)，如果是 32 位元安裝，那麼系統是否具有 4 GB 以上的實體記憶體或支援資料執行防止 (DEP)。Windows Server 2008 也是最後一個可望提供 32 位元版本的 Windows Server 作業系統。
Figure 1 Windows Server 2008 核心變體 (Close Figure 1)

核心 | 32 位元 | 64 位元
多處理器 | 是 | 是
多處理器已選取 | 是 | 是
多處理器實體位址延伸 (Physical Address Extension，PAE) | 是 | 否
多處理器 PAE 已選取 | 是 | 否
Windows Server 的每個版本都致力於提升關鍵伺服器案例的效能，例如檔案服務、網路 I/O 和記憶體管理。此外，Windows Server 2008 涵蓋多項變更與新功能，可讓 Windows 善用嶄新的硬體結構、靈活應變高延遲網路，並擺脫限制舊版 Windows 效能的瓶頸。本節將探討記憶體管理員與 I/O 系統的增強功能，並介紹全新的網路檔案系統 SMB 2.0。

記憶體管理
實驗：查看大型磁碟 I/O
您可以使用類似 TechNet Sysinternals Process Monitor (technet.microsoft.com/sysinternals/bb896645.aspx) 的檔案系統監控工具來尋找 Windows Server 2008 系統上的大型檔案 I/O 作業。
產生大型 I/O 的方式有好幾種。如果您有第二個執行 Windows Vista Service Pack 1 或 Windows Server 2008 的系統，就可以在伺服器上執行 Process Monitor 並監控複製到第二個系統的檔案複本。通常您也可以藉由執行需要大量記憶體的程式，讓記憶體管理員將頁面寫出到分頁檔，來產生大型分頁檔 I/O。
[圖 A] 顯示 Process Monitor 在 Windows XP 系統上執行需要大量記憶體的程式之後的情況，其 Process Monitor [選項 (Options)] 功能表中的 [啟用進階輸出 (Enable Advanced Output)] 選項已選取，而且篩選器被設為只顯示分頁檔 pagefile.sys 的寫入。[詳細資料 (Detail)] 欄顯示寫入大小為 64 KB。
[圖 A]
在 Windows Server 2008 中執行相同步驟時，您很可能會看到如 [圖 B] 所顯示的畫面，其中的寫入大小幾乎都是 1 MB 左右。
[圖 B]

Windows Server 2008 中的記憶體管理員加入了多項效能增強功能。舉例來說，它從分頁檔擷取資料或在對應檔上執行預先讀取 I/O 時，會發出次數較少但規模較大的 I/O。透過變更 I/O 系統以移除自 Windows NT® 以來一直存在的 64 KB I/O 大小限制，因而促進了大型檔案 I/O 的產生。
另外值得注意的是，在 Windows Server 2008 中，快取管理員從對應檔進行預先讀取 (推測讀取) 的資料讀取大小往往比 Windows Server 2003 的大上兩倍，而且直接進入待命清單 (系統的程式碼和資料快取)。上述這種作法使得快取管理員不再需要對應虛擬記憶體並將資料讀入系統的工作集 (由記憶體管理員指派給系統的記憶體)，而第二種作法可能會造成其他使用中的程式碼或資料無緣無故從工作集中被回收。
記憶體管理員在寫入資料到分頁檔時也會執行較大的 I/O。Windows Server 2003 常會執行小於 64 KB 的寫入，但 Windows Server 2008 中的記憶體管理員一般都會發出 1 MB 的寫入。
除了減少對分頁檔的寫入次數來提高效能，較大的寫入也能降低分頁檔內部的分散程度。這也會進而減少讀回多頁所需的讀取和磁碟搜尋次數，因為這些頁面往往並不相鄰。
記憶體管理員還會試著寫出其他接近在主控處理程序的位址空間中被寫出之頁面的已修改頁面，並瞄準已經存放其他相鄰頁面的分頁檔區域。這麼做也能盡量降低分散程度並提升效能，因為最終可能會寫出到分頁檔的頁面早已寫入。此外，這樣還可減少為了提取一系列相鄰處理程序分頁所需的分頁讀取次數。請參閱資訊看板「實驗：查看大型磁碟 I/O」以取得記憶體管理員使用大型 I/O 的詳細資訊。

SMB 2.0
伺服器訊息區 (SMB) 遠端檔案系統通訊協定又稱為 Common Internet File System (CIFS)，自 Windows 引入檔案服務功能以來，向來都是 Windows 檔案服務的基礎。過去幾年來，SMB 的設計限制阻礙了 Windows 檔案服務效能的成長，以及利用本機檔案系統新功能的能力。例如，在單一訊息中可以傳送的最大緩衝區大小約為 60 KB，而且 SMB 1.0 無法察覺 Windows Vista 與 Windows Server 2008 現已加入的 NTFS 用戶端符號連結。
Windows Vista 和 Windows Server 2008 引入 SMB 2.0 這個新的遠端檔案服務通訊協定，當用戶端與伺服器同時有支援時，Windows 就會使用 SMB 2.0。SMB 2.0 不僅可以正確處理用戶端符號連結和其他 NTFS 增強功能，還會使用批次處理來減少用戶端與伺服器之間交換的訊息數量。批次處理可以增進廣域網路 (WAN) 等高延遲網路的輸送量，因為它允許同時傳送更多資料。
SMB 1.0 會針對單一檔案循序發出 I/O，而 SMB 2.0 卻是透過實作 I/O 管線來為相同檔案發出多個並行 I/O。它會測量用戶端用於未處理 I/O 的伺服器記憶體量，以便決定管線深度。
多虧 Windows I/O 記憶體管理員的變更、TCP/IP 接收視窗微調，以及檔案複製引擎的功能改良，SMB 2.0 得以大幅增進輸送量，同時減少大型傳輸的檔案複製次數。部署 Windows Server 2008 檔案伺服器並搭配 Windows Vista 用戶端可以啟用 SMB 2.0 和實現這些效能優勢，因為這兩個作業系統都實作 SMB 2.0。

NTFS 自我修復提供的可靠性
可靠性是一項關鍵的伺服器特質，Windows Server 2008 提供了各種增進功能來協助系統管理員順利執行伺服器，這些功能包括線上 NTFS 一致性修復、新的硬體錯誤報告基礎結構，以及驅動程式檢查器的延伸模組。
今日的儲存裝置容量已達數兆位元組，因此讓磁碟區離線進行一致性檢查可能會導致好幾個小時的服務中斷。Windows Server 2008 發現很多磁碟損毀都是本機單一檔案或部分中繼資料的問題，因而實作新的 NTFS 自我修復功能來修復損害，同時讓磁碟區保持連線狀態。
當 NTFS 偵測到損毀時，它會禁止存取受損檔案並建立系統工作者執行緒，這個執行緒針對受損的資料結構執行類似 Chkdsk 的修正動作，動作完成後即可存取已修復的檔案。進行這項作業的期間可以照常存取其他檔案，藉此盡量避免服務中斷的情況。

WHEA 基礎結構
包含在 Windows Server 2008 中的 Windows Hardware Error Architecture (WHEA) 基礎結構保證一定會簡化硬體失敗的管理程序，並針對非嚴重錯誤主動提出回應。伺服器通常都有嚴格的執行率保證，因此在這類系統上及時識別和回應錯誤攸關重大。
經由 Online Crash Analysis (OCA) 提交給 Microsoft 的當機分析結果顯示，約有 10 % 的作業系統當機事件與硬體失敗相關，但是很難找出這些當機事件的根本原因，因為硬體在當機事件所提供的錯誤資訊不足。此外，在 Windows Server 2008 出現之前，Windows 並未提供監控裝置健康情況，也沒有實作補救措施或即將失敗通知的內建支援。原因在於硬體裝置並非使用通用的錯誤格式，而且也不支援錯誤管理軟體。
WHEA 針對平台裝置 (包括處理器、記憶體、快取和 PCI 與 PCI Express 等匯流排) 提供整合的錯誤來源探索及報告機制。方法是實作 [圖 2] 顯示的架構，其中的核心便是錯誤來源呼叫以報告錯誤的核心 API。API 會要求所有錯誤都以共通方式格式化，並使用 Windows 事件追蹤 (ETW) 事件來記錄錯誤 (嚴重錯誤會於重新開機後記錄)。
[圖 2] WHEA 錯誤報告基礎結構
[圖 2] WHEA 錯誤報告基礎結構
ETW 是由 Windows 2000 引進，而 WHEA 使用 ETW 讓硬體製造商和軟體廠商更容易開發採用 WHEA 事件的裝置診斷管理應用程式。如果事件嚴重性有造成系統當機之虞，WHEA 可確保嚴重錯誤記錄會儲存在損毀傾印檔中，好讓系統管理員判斷當機的主因。
WHEA 的另一個關鍵部分是指定平台硬體錯誤驅動程式 (PSHED)，位於 %Systemroot%\System32\Pshed.dll 中。核心會與 PSHED 連結，並與平台和韌體硬體交接，基本上是當做錯誤通知與 WHEA 錯誤報告 API 之間的轉譯層。每個平台架構 (x86、x64、Itanium) 都有一種 Microsoft 提供的 PSHED，而且 PSHED 會公開一個外掛程式模組，好讓硬體廠商與製造商以其平台特定的行為來覆寫預設行為。
最後，與其他錯誤來源接觸的系統元件 — 包括裝置驅動程式、硬體抽象層 (HAL) 與核心 — 可以實作最初處理錯誤情況的低階硬體錯誤處理常式 (Low-Level Hardware Error Handler，LLHEL)。LLHEL 的工作是從裝置擷取錯誤資訊，通知 PSHED 以便收集其他平台錯誤資訊，然後呼叫核心的 WHEA 錯誤報告 API。

驅動程式檢查器
打從 Windows 2000 開始，各種 Windows 產品都包含驅動程式檢查器，這項功能強大的工具可以追蹤不良的裝置驅動程式和故障硬體。系統管理員常會設定驅動程式檢查器 (%Systemroot%\System32\Verifier.exe) 來密切監控可能造成系統當機的裝置驅動程式。驅動程式檢查器會揪出不當的驅動程式作業，而損毀傾印檔便會直接指向該罪魁禍首。
之前的驅動程式檢查器實作有一項缺點，就是幾乎所有設定變更都需要重新啟動系統，這當然是生產伺服器所不樂見的。Windows Server 2008 對於驅動程式檢查器的實作能改善這項作業，方法是讓最有用的驗證不必重新啟動，讓它無須重新啟動也能疑難排解有問題的伺服器。
不僅如此，驅動程式檢查器還引入了三個新驗證，如 [圖 3] 所示。安全性檢查會確保裝置驅動程式在用來與應用程式互動的物件上有設定安全使用權限。強制擱置 I/O 要求會測試驅動程式對於立即完成而非延遲完成的非同步 I/O 作業的復原能力。而其他 (Miscellaneous) 檢查會搜尋不當釋放使用中資源的驅動程式，錯誤使用 Windows Management Instrumentation (WMI) 登錄 API 的驅動程式，以及遺漏資源控制代碼的驅動程式。
[圖 3] 驅動程式檢查器與 Windows Server 2008 已選取選項
[圖 3] 驅動程式檢查器與 Windows Server 2008 已選取選項

延展性
延展性是指作業系統或應用程式有效利用多處理器和大量記憶體的能力。每一版的 Windows 都會盡量降低或避免使用鎖定來提升延展性，因為鎖定會減少多處理器的平行處理作業，Windows Server 2008 當然也不能自外於這種趨勢。
在執行計時器到期的程式碼中有一個微小卻重要的改良，它不再需要發送器鎖定，發送器鎖定是所有低階同步處理作業使用的全系統排程器鎖定。因此而減少的 CPU 同步處理量讓 Windows Server 2008 終端機伺服器系統能夠比 Windows Server 2003 額外支援 30 % 的並行使用者。
Windows Server 2008 中的其他延展性增強功能還包括完成連接埠增強、新的執行緒集區實作、效率更高的非統一記憶體存取 (NUMA) 硬體運用，以及動態系統資料分割。

改良的 I/O 完成通訊埠處理
大多數可調整的 Windows 伺服器應用程式，包括 IIS、SQL Server® 和 Exchange Server，都仰賴稱為完成通訊埠的 Windows 同步處理 API，來盡量減少在執行 I/O 作業時多個執行緒之間的切換動作。方法是首先建立新要求抵達的通知 (例如網頁伺服器用戶端連線) 與完成連接埠之間的關聯性，並使用某個執行緒集區來等待通知。當要求抵達時，Windows 會排程一個執行緒，這個執行緒接著通常會執行其他 I/O 作業，像是從磁碟讀取網頁，再傳送到用戶端以完成要求。
如此一來，同一個執行緒就可以盡快回來等候其他用戶端要求，執行緒以非同步處理的方式發出 I/O，並建立 I/O 完成與完成連接埠的關聯性。然後執行緒回來等待完成連接埠，當新要求抵達時或其中一個 I/O 完成時，該完成連接埠便會排程這個執行緒。這樣一來，相同的執行緒可以在 CPU 上保持作用中，並交替處理用戶端要求和等候完成連接埠。
舊版 Windows 的完成連接埠實作有一個缺點，就是在 I/O 完成時，I/O 系統會讓發出 I/O 的執行緒立即執行一小段完成處理程序，無論它原本是否在執行其他工作。如果有其他執行緒正在作用中，這種情況常會造成排程器提前佔用使用中執行緒並內容切換到發行者。
Windows Server 2008 透過延緩下一個執行緒的完成處理程序以等候與 I/O 相關聯的完成連接埠，藉此避免這些內容切換動作。因此，即使接下來輪到不同的執行緒等候完成連接埠，它仍會在執行其他程式碼之前執行完成處理程序，而排程器便不需要切換到發行執行緒。這種減少內容切換的方法可以顯著提升負荷過重的伺服器應用程式的延展性。

更有效的執行緒集區
撰寫運用多顆 CPU 的應用程式並不容易，為此 Windows XP 引入了工作者執行緒集區、基礎結構，以及相關的 API 來擷取在 CPU 間執行小型工作單位的詳細資料。應用程式將工作項目指定到執行緒集區 API，此執行緒集區 API 接著在它為系統中各個 CPU 建立和管理的其中一個執行緒上執行這些工作項目。
執行緒集區的目標是要透過使用相同執行緒來連續執行多個工作項目，藉此將內容切換次數減至最低。萬一其中一個執行緒正在執行其他工作而無暇這麼做時，執行緒集區便會使用其他 CPU 上的不同執行緒來執行該工作項目。
Windows Server 2008 執行緒集區實作能夠更妥善運用多顆 CPU，這是由於完成連接埠增強功能所帶來的間接好處，也是由於最佳化執行緒管理，好讓工作者執行緒在需要處理應用程式工作負載時動態往返所帶來的直接效果。再者，基礎結構的核心已移往核心模式，可有效減少使用 API 的應用程式提出系統呼叫的次數。最後，新的 API 讓應用程式更容易執行特定作業，例如在應用程式關閉期間中止佇列的工作單位。

NUMA 最佳化
Windows Server 2003 在執行緒排程器和記憶體管理員方面引入 NUMA 機器的最佳化，而 Windows Server 2008 不但在 I/O 管理員中加入 NUMA 最佳化，更擴充了記憶體管理員的 NUMA 最佳化。
NUMA 系統通常是多處理器系統，而其中的記憶體會根據存取記憶體的處理器不同而具有不同的延遲 (見 [圖 4])。記憶體被區分成節點，當中 CPU 與節點之間的延遲可能不同，而每個 CPU 都被視為它能最快存取的節點的一部份。
[圖 4] NUMA 系統範例
[圖 4] NUMA 系統範例
NUMA 系統，尤其是包含 8 顆 CPU 以上的 NUMA 系統，通常比統一記憶體存取系統更具有成本和效能效益。統一記憶體存取系統必須將記憶體平均提供給所有 CPU，相對來說，NUMA 系統可以針對直接連線到 CPU 的記憶體實作高速互相連線，並針對分隔較遠的 CPU 和記憶體實作成本較低的高延遲連線。
為了在 NUMA 系統上有效調整，作業系統或應用程式必須知悉節點拓撲，以便在含有運算資料與程式碼的記憶體附近執行運算。譬如說，Windows 排程器為每個執行緒指派所謂的理想處理器，也就是排程器試圖用來一直執行執行緒的 CPU。這麼做很可能會讓執行緒放置在 CPU 快取中的資料在每次執行時都能供執行緒使用。
在 Windows Server 2003 中，排程器將此概念進一步發揚光大，它將包含理想處理器的節點視為執行緒的理想節點，當理想處理器忙於執行其他執行緒時，排程器便會嘗試將執行緒排程到理想節點上的另一個 CPU 中。Windows Server 2003 記憶體管理員也變成能夠感知 NUMA，而且在可能時將執行緒的記憶體配置導向正在執行執行緒的節點的記憶體中。
在 Windows Server 2008 中，記憶體管理員會在各個節點間分隔核心的非分頁記憶體緩衝區 (核心與裝置驅動程式用來儲存保證會存留在 RAM 中的資料的記憶體)，以確定配置是來自配置來源節點上的記憶體。如果配置需要新的分頁表頁來滿足其需求，那麼系統分頁表項目 (PTE) 會從配置起源的節點進行配置，而不會向 Windows Server 2003 一樣來自任何節點。
在 Windows Server 2003 中，當執行緒進行記憶體配置時，記憶體管理員偏好使用在配置當時執行執行緒的節點。如果執行緒暫時排程到非理想節點，在這段時間內執行的任何配置都將來自非理想節點。因此當執行緒最終在自己的理想節點上執行時，就無法盡量靠近儲存在已配置記憶體中的資料或程式碼。
為了解決這種情況，Windows Server 2008 記憶體管理員偏好讓執行緒的所有配置皆使用執行緒的理想節點，即使當執行緒是在其他節點附近執行也是如此。記憶體管理員也會自動了解處理器與節點間的延遲，因此萬一理想節點沒有可用的記憶體，它會接著查看最靠近理想節點的節點。除此之外，當執行緒參考程式碼或資料時，記憶體管理員會將待命清單中的頁面移轉到執行緒的理想節點。
針對想要掌控自身配置位置的應用程式，它們可以使用新的 NUMA 記憶體 API，以便指定記憶體配置、檔案對應檢視和檔案對應物件的偏好節點。如果配置與檔案對應相關，記憶體管理員便會查看對應作業是否已指定節點，接著檢查檔案對應物件是否已指定節點，若兩者皆否，記憶體管理員最後會回頭採用執行緒的理想節點。
在 Windows Server 2008 推出之前，儲存或網路 I/O 的插斷和相關的延遲程序呼叫 (Deferred Procedure Call，DPC) 可以在任何 CPU 上執行，包括來自不同節點的 CPU，而非 I/O 被啟動的節點，這可能會導致在 I/O 作業上讀取或寫入的資料位於不同節點的記憶體中，而非存取資料所在的記憶體。
為了避免這個問題，Windows Server 2008 I/O 系統將 DPC 執行導向啟動該 I/O 的節點中的 CPU，而且如果系統的裝置支援 PCI 匯流排 MSI-X (Message Signaled Interrupt 標準的延伸模組)，系統就可以進一步抑制擴大 I/O 完成，方法是使用利用 Windows Server 2008 API 的裝置驅動程式將 I/O 插斷導至啟動 I/O 的處理器。

動態資料分割
系統提高延展性的方法之一，就是支援動態新增硬體資源 (如 CPU 與記憶體)。如果無須系統重新開機就能替換這些資源，這項支援還能增進系統的可用性。
Windows Server 2003 包含熱新增記憶體，可讓具有動態記憶體支援的伺服器在系統管理員新增 RAM 時使用它。Windows Server 2008 進一步擴充此動態記憶體支援，讓您可以替換記憶體。
越來越依賴錯誤修正碼 (ECC) 修正的 RAM 會面臨全體失敗的風險，因此在具有熱替換支援的伺服器上，Windows Server 2008 可以明確地從失敗的記憶庫移轉資料到替換記憶體。這麼做的方法是先移轉由作業系統控制的資料，然後讓硬體裝置轉為低電源狀態來有效關閉這些裝置，接著重新啟動裝置電源來繼續正常操作。
Windows Server 2008 也支援處理器的熱新增和熱替換。就熱替換而言，硬體必須支援備用 CPU 的概念，當現有 CPU 產生失敗指示，備用 CPU 可以開始上線或動態加入，目前只有高階系統才做得到。Windows Server 2008 排程器減緩失敗 CPU 上的活動，並將工作移轉到替換 CPU，接下來就可以移除失敗的 CPU 並替換成新的備用 CPU。
支援處理器熱新增的 Windows Server 2008 可讓系統管理員升級伺服器的處理能力，同時避免停機時間。然而，排程器和 I/O 系統只讓要求 CPU 抵達通知透過新 API 的裝置驅動程式和應用程式使用新 CPU，因為某些應用程式內已假設開機工作階段的 CPU 數目是固定的。舉例來說，應用程式可以配置與各個 CPU 對應的工作佇列陣列，其中的執行緒將使用執行緒執行所在之 CPU 的相關佇列。如果排程器將其中一個應用程式執行緒放置到新的 CPU 上，它會嘗試參考不存在的佇列，這有可能會損壞應用程式的資料，更有可能會使應用程式損毀。
以 Microsoft 伺服器為基礎的應用程式 (如 SQL Server 和 Exchange Server) 都具有新增 CPU 功能，還有一些核心 Windows 處理程序，包括系統處理程序、工作階段管理員 (%SystemRoot%\System32\Smss.exe,) 和 Generic Service Hosting 處理程序 (%Systemroot%\System32\Svchost.exe) 也都具備此功能。其他處理程序也可能要求使用 Windows API 來提出新 CPU 抵達通知。當新的 CPU 抵達時，Windows 會通知裝置驅動程式 CPU 即將抵達，啟動 CPU，然後通知寫入的裝置驅動程式應用程式來利用新的 CPU，以便在必要時配置資料結構來追蹤新 CPU 上的活動。

機器虛擬化
在 Windows Server 2008 之前，Microsoft 虛擬化產品 (包括 Virtual Server 2005) 都是使用裝載虛擬化實作而成，如 [圖 5] 所示。在裝載虛擬化中，虛擬機器是透過 Virtual Machine Monitor (VMM) 進行實作，此 VMM 通常是以裝置驅動程式的身分在主機作業系統旁邊執行。VMM 仰賴主機作業系統的資源管理和裝置驅動程式，當主機作業系統排程 VMM 執行時，它會在使用中虛擬機器 (VM) 間建立 CPU 的時間配量。
[圖 5] 裝載機器虛擬化
[圖 5] 裝載機器虛擬化
Hyper-V (原先代號為「Viridian」) 使用 Hypervisor 虛擬化技術來實作。Hypervisor 完全控制所有硬體資源，即使是啟動系統並讓您由此控制 VM 的 Windows Server 2008 作業系統本質上也是在虛擬器上執行，請參閱 [圖 6]。
[圖 6] Hyper-V 架構
[圖 6] Hyper-V 架構
Hypervisor 可以將系統分割成多個 VM，並將 Windows Server 2008 的開機執行個體視為主磁碟分割或根磁碟分割，以便直接存取硬體裝置，例如磁碟、網路卡和圖形處理器。Hypervisor 預期根磁碟分割會執行電源管理和回應硬體隨插即用事件。它會攔截在子磁碟分割上啟動的硬體裝置 I/O，將其路由到根磁碟分割，而根磁碟分割會使用標準 Windows Server 2008 裝置驅動程式來執行硬體存取。依照這種方式，執行 Hyper-V 的伺服器就能善用 Windows 對於硬體裝置的支援。
當您在 Windows Server 2008 中設定 Hyper-V 伺服器角色時，Windows 會將 hypervisorimagelaunchtypeboot 開機設定資料庫 (BCD) 設定設為 auto，並將 Hvboot.sys 裝置驅動程式設為在開機程序中早期啟動。若已設定選項，Hvboot.sys 便會準備好系統進行虛擬化，接著分別根據系統實作 AMD-V 或 Intel VT CPU 虛擬化延伸模組，將 %Systemroot%\System32\Hvax64.exe 或 %Systemroot%\System32\Hvix64.exe 載入到記憶體。
一旦載入之後，Hypervisor 使用虛擬化延伸模組將自己插入到 Windows Server 2008 底下。使用者模式應用程式使用 x64 處理器的核心第 3 級 (Ring 3) 權限層級，而核心模式程式碼於核心第 0 級 (Ring 0) 執行，因此 Hypervisor 是在概念權限層級 Ring 減 1 下操作，因為它能控制在核心第 0 級 (Ring 0) 中執行的程式碼執行環境。
當您使用 Hyper-V 管理主控台來建立或啟動子磁碟分割時，它會使用 %Systemroot%\System32\Drivers\Winhv.sys 驅動程式與 Hypervisor 進行通訊，這個驅動程式是利用公開記載的 Hypercall API 來引導 Hypervisor 建立特定實體記憶體大小與執行特性的新磁碟分割。根磁碟分割內的 VM 服務 (%Systemroot%\System32\Vmms.exe) 就是針對每個子磁碟分割建立 VM 工作者處理序 (%Systemroot%\System32\Vmwp.exe) 來管理子磁碟分割狀態的服務。
Windows 用來提升子 VM 作業系統效能的方法之一，就是 Windows Server 2008 與 Windows Vista 都實作 Enlightenment，這是只有當作業系統在實作 Microsoft Hypercall API 的 Hypervisor 上執行時才會啟動的程式碼順序。藉由直接要求 Hypervisor 的服務，子 VM 可避免當 Hypervisor 必須猜測子作業系統目的時可能產生的虛擬化程式碼負載。
譬如說，未針對單一執行緒存取鎖 (用來執行低階多處理器同步處理) 實作 Enlightenment 的虛擬作業系統，會直接向內微調緊密迴圈以等候其他虛擬處理器釋放單一執行緒存取鎖。微調動作可能會繫結其中一個硬體 CPU，直到 Hypervisor 排程第二個虛擬處理器。在啟蒙的作業系統中，單一執行緒存取鎖程式碼會透過 Hypercall 通知 Hypervisor 它將反向微調，好讓 Hypervisor 可以立即排程另一個虛擬處理器並減少浪費的 CPU 使用率。
Windows Server 2008 提高 VM 效能的另一種方法是加速 VM 對裝置的存取。經由安裝元件集合 (統稱為「VM 整合元件」) 到子作業系統，即可增強效能。
如果您在未安裝整合元件的情況下執行 VM，子作業系統會針對 Hypervisor 所提供的模擬裝置來設定硬體裝置驅動程式。當裝置驅動程式嘗試接觸硬體資源時，Hypervisor 必須介入以便告知根磁碟分割，而根磁碟分割會代表子 VM 的作業系統使用標準的 Windows 裝置驅動程式來執行裝置 I/O。由於單一的高階 I/O 作業，例如從磁碟讀取，可能涉及許多個別的硬體存取，因此可能會對 Hypervisor 與根磁碟分割引發很多轉換動作，稱為攔截。
Windows Server 2008 使用以下三個元件來盡量減少攔截次數：虛擬機器匯流排驅動程式 (Virtual Machine Bus Driver，%Systemroot%\System32\Drivers\Vmbus.sys)、虛擬服務用戶端 (Virtual Service Client，VSC) 和虛擬服務提供者 (Virtual Service Provider，VSP)。當您將整合元件安裝到具有支援作業系統的 VM 時，VSC 會接手裝置驅動程式的角色，並在子 VM 中使用 Vmbus.sys 驅動程式的服務，透過 Hypercall 與 Hypervisor 的記憶體共用服務，在根磁碟分割中傳送高階 I/O 要求到虛擬機器匯流排驅動程式 (Virtual Machine Bus Driver)。在根磁碟分割中，Vmbus.sys 轉送要求到對應的 VSP，VSP 接著會利用根磁碟分割的裝置驅動程式來啟動標準 Windows I/O 要求。
如您所見，Windows Server 2008 引入以 Hyper-V Hypervisor 為基礎的虛擬化技術，因而在 Microsoft 機器虛擬化策略中扮演舉足輕重的角色。如需這些功能和其他功能的詳細資訊，請參閱下一期敝作《Microsoft Windows Internals》(預定將在今年下半年發行)。

Mark Russinovich 是 Microsoft 平台服務事業群 (Platform and Services Division) 的技術人員。他是《Microsoft Windows Internals》(Microsoft Press，2004 年) 的共同執筆者，經常在 IT 和開發人員會議上發表演說，包括 Microsoft TechEd 和專業開發人員大會 (Professional Developer's Conference)。身為 Winternals Software 公司的共同創辦人，隨著 Microsoft 併購該公司，Mark 也一同加入 Microsoft。他也創立了 Sysinternals，並在該公司發行許多受歡迎的公用程式，包括 Process Explorer、Filemon 和 Regmon。
© 2007 Microsoft Corporation and CMP Media, LLC. 保留所有權利；未經允許，嚴禁部分或全部複製.


 特別報導：Windows Server 2008: Active Directory 網域服務中的新功能
特別報導：Windows Server 2008 Gil Kirkpatrick

Active Directory 網域服務中的新功能
摘要:
  • 透過 ADDS 使用全新的伺服器管理員
  • 在 Server Core 上執行網域服務
  • 唯讀網域控制站
  • 密碼、備份和稽核方面的變更

Microsoft 在 Windows 2000 引進了 Active Directory 的世界。之後的重大版本 Windows Server 2003，則大幅改進 Active Directory，
但並沒有什麼驚天動地的變更。如今的 Active Directory® 可謂是相當成熟且穩固的目錄服務。即便如此，Active Directory 小組仍在最新的版本中提供了幾項重大的進階功能，以提升此核心網路服務的安全性和管理性。
回到這個世紀交替之時，Active Directory 不過是在使用者登入時驗證他的身分、套用群組原則到使用者及其電腦，以及幫助他找出他正在尋找的印表機的一項技術。之後沒幾年，Microsoft 便推出它的獨立變體，稱為 Active Directory 應用程式模式 (ADAM)。
到 2006 年，這全然改觀。Active Directory 不再是特定的技術，它現在是一項產品，可識別許多 Windows® 內建識別和存取控制服務。[圖 1] 簡單介紹了 Active Directory 產品的組成成分。
Figure 1 Active Directory 元件 (Close Figure 1)

現行 Active Directory 技術 | 舊稱 | 描述
Active Directory 網域服務 (ADDS) | Active Directory | 我們過去稱為 Active Directory。它為網域使用者和電腦提供 Kerberos 及以 NTLM 為主的驗證，並且會管理 OU、使用者、群組、群組原則等，還有更多。
Active Directory 輕量型目錄服務 (ADLDS) | Active Directory 應用程式模式 (ADAM) | 以 ADDS 所使用的相同原始程式碼為基礎的高效能 LDAP 伺服器。
Active Directory 憑證服務 (ADCS) | 憑證服務 | 使用 X.509 憑證提供強式驗證。
Active Directory Rights Management Services (ADRMS) | 版權管理伺服器 | 透過建立版權保護的檔案和容器，來保護數位資產 (例如文件和電子郵件) 免遭未經授權的使用。
Active Directory Federation Services (ADFS) | Active Directory Federation Services | 為 WS-* 相容的 Web 服務提供 Web 單一登入和身分識別同盟。
所以正確來說，本文其實是討論網域服務。但為了不造成混淆，我們談的仍舊是您自 2000 年來就愛用的 Active Directory。

Windows Server 2008 中的伺服器管理員
我接下來要討論的前兩項 Active Directory 改進，其實並不是 Active Directory 網域服務 (ADDS) 的變更，它們實際上是 Windows 中影響您管理 Active Directory 的變更。第一項是在您第一次啟動 Windows Server® 2008 伺服器時會馬上出現的全新伺服器管理員 (第二項是 Server Core 安裝，我稍後會談到)。
伺服器管理員看起來可能跟 Windows Server 2003 中的「設定您的伺服器精靈」很類似，預設也是在安裝 Windows Server 2003 之後顯示。然而，那個版本對日常的管理作業並沒有什麼用處，而且我認識的每個人都勾選 [登入時不要顯示這個畫面] 方塊。
另一方面說來，Windows Server 2008 中的伺服器管理員則相當實用 (請參閱 Byron Hynes 在本期《TechNet Magazine》的文章，以概略了解伺服器管理員)。首先，如您在 [圖 2] 所見，伺服器管理員現在是 Microsoft® Management Console (MMC) 嵌入式管理單元，而不是 Microsoft HTML 應用程式 (HTA)。這表示它具備功能完整、既熟悉又便於自訂的使用者介面。不需要額外的設定，伺服器管理員便可讓您管理伺服器角色 (像是 DNS、ADDS 和 IIS 等重要服務) 和功能 (軟體元件，例如 Microsoft .NET Framework、BitLockerTM 磁碟機加密和 Windows PowerShellTM) 的安裝。除了新增和移除軟體的功能之外，伺服器管理員還提供單一窗口來執行診斷工具 (例如事件檢視器和 PerfMon) 和系統設定公用程式 (例如裝置管理員和 Windows 防火牆嵌入式管理單元)。如果您新增 Active Directory 的 MMC 嵌入式管理單元 — 比如，[使用者和電腦]、[網域和信任]，以及 [站台及服務] — 您將擁有一個相當不賴的介面來執行 Windows Server 2008 網域控制站 (DC) 的日常管理工作。
[圖 2] Windows Server 2008 中的伺服器管理員
[圖 2] Windows Server 2008 中的伺服器管理員

Windows Server 2008 Server Core
Windows Server Core 是全新的 Windows 安裝選項，它提供精簡版的 Windows，當中只包含執行某些重要伺服器角色所需的元件，包括 Active Directory 網域服務 ([圖 3] 列出 Server Core 支援的角色)。雖然 Server Core 安裝有個圖形化 UI，但它並不會執行 Windows 桌面殼層，而且幾乎沒有任何圖形化工具可用來管理和設定 Windows (見 [圖 4])。在此您只有一個命令視窗可以用，可能讓您像熱鍋上的螞蟻一樣不知所措。我要怎麼變更電腦名稱？又該如何設定靜態 IP 位址？
[圖 4] Server Core UI 中沒什麼可看的
[圖 4] Server Core UI 中沒什麼可看的
您在進行 Server Core 安裝的前幾分鐘可能會坐立不安。花點時間讓您自己重新熟悉一下 WMIC、NETSH 和 NETDOM，您很快就能輕鬆進行所有例行的安裝和設定工作。而且您還是有 Regedit 和記事本可以滿足您圖形化工具的需要。
Server Core 的主要優點是，進行典型 Windows 安裝所需的程式碼大半都已移除，因為這些核心伺服器角色可能不需要那些程式碼。這不僅能縮小可能受到惡意程式碼攻擊的面積 (這是件好事)，還能減少必須在 DC 上執行的修補程式和重新開機次數 (這甚至更棒)。而且您所需的磁碟使用量和硬碟也小很多 — 這通常沒什麼大不了的，不過在虛擬化的伺服器環境中倒是蠻有利的。
缺乏圖形化公用程式會因此讓管理 ADDS 困難重重嗎？完全不會！您可以在工作站上執行公用程式，然後透過網路連線到網域控制站，從遠端執行幾乎所有的管理工作。我預計絕大多數的 DC 終究會在 Server Core 安裝上執行。

DCPROMO 變更
您在 ADDS 裡面會注意到的第一項變更，就是全新的 DCPROMO。它的運作方式就跟 Windows Server 2003 中的 DCPROMO 一樣，但是它已經徹底重新改寫過，以更利於使用。譬如，您不用再輸入網域系統管理員認證 — DCPROMO 可以使用您目前的登入來升級伺服器。您也不用再輸入 DCPROMO /ADV 來存取 [進階模式] DCPROMO 選項 — 現在在第一個 DCPROMO 對話方塊上有個可以用來啟用這些選項的核取方塊。進階模式也可讓您選擇現有的網域控制站來進行複寫。這表示您可以卸下生產 DC 身上的 DCPROMO 複寫負載。
當您將 DC 升級到新網域或樹系時，DCPROMO 會提供選項讓您設定樹系和網域功能等級，而不是讓您之後才進行這些設定。您也可以在升級過程中指定要放置 DC 的 Active Directory 站台，這在自動 DCPROMO 的情況下相當有用。DCPROMO 甚至還會根據 DC 的 IP 位址來推薦最佳的 DC 站台。
新的 DCPROMO 還會將所有設定選項全都收集到單一頁面上，提供一個位置讓您選擇新的 DC 是要作為通用類別目錄 (GC)、DNS 伺服器，還是唯讀 DC。您不必在 Active Directory [站台及服務] 嵌入式管理單元中，進入難找的地方將 DC 標示為 GC。
但或許新 DCPROMO 裡面最棒的功能是，能夠在升級程序開始前將所有 DCPROMO 設定全都儲存到一個回應檔中。這比手動修補回應檔還要簡單得多 — 而且也比較不會出錯。您之後可以使用該回應檔在其他伺服器上執行自動 DCPROMO 作業。而對於那些熱愛指令碼的人，您現在也可以從命令列存取所有 DCPROMO 選項。

唯讀網域控制站
在 Active Directory 早期，企業常常在使用者可能登入的每個站台部署網域控制站。譬如，銀行在每家分行放置 DC 這種作法就很常見。當中的邏輯是要讓分行的使用者即使在 WAN 失敗時，也能登入和存取區域網路的資源。
當時企業並不是很了解保護 DC 實體安全的必要。我還看過網域控制站被塞在路過的人很容易存取的辦公桌下。Active Directory 架構設計師在幾年之後才完全了解到不安全 DC 所產生的安全性風險，IT 組織於是開始將它們的 DC 合併到較集中化的資料中心。分公司使用者之後得透過 WAN 進行驗證，但為了提高安全性，付出這樣的代價還算值得。
Windows Server 2008 中的 Active Directory 藉著引進唯讀網域控制站 (即 RODC) 而改變了原先相同地位的分公司部署。這成為 Windows Server 2008 網域服務中最重要的變更。
Active Directory 小組在設計 RODC 時，把焦點放在分公司案例的需求上，所採取的目標是「在分公司發生的，就留在分公司」。重點是如果您將 DC 部署在實體上不安全的分公司裡面，您終究無法防止該 DC (以及信任該 DC 的機器) 受到危害，但是您可以避免危害的情況從分公司向外擴散到網域的其餘部分。
要注意的是，即使 RODC 對 ADDS 基礎結構產生了巨大的變更，但要實作它們還是很簡單。您的網域必須是位於 Windows Server 2003 樹系功能等級，而且網域裡面必須至少有一個 Windows Server 2008 DC。RODC 除了可作為分公司的解決方案之外，它也非常適合用於網際網路面向的環境，還有將 DC 放置在網路週邊的情況下。

DC 擅離職守
在分公司中有好幾種威脅要考慮。第一種是「DC 遭竊」案例，也就是有人偷走 DC 或 DC 的磁碟。除了會使本機服務遭到中斷之外，也可能有攻擊者最終獲知網域中所有使用者名稱和密碼，藉此提高他的權限來存取受保護資源或導致拒絕服務的風險。為了應付這項威脅，RODC 預設並不會將密碼雜湊儲存在 RODC 的目錄資訊樹 (Directory Information Tree，DIT) 中。因此若要向網域驗證使用者，當使用首先向特定 RODC 進行驗證時，RODC 會將要求傳送給網域內的完整網域控制站 (FDC)。FDC 會處理該要求，若成功，RODC 便會發出密碼雜湊的複寫要求。
遭到入侵的 RODC 很有可能會要求機密帳戶的密碼雜湊。為了加以防範，網域系統管理員可以針對各個 RODC 設定密碼複寫原則。密碼複寫原則是由 RODC 的電腦物件上的兩個屬性構成。msDS-RevealOnDemandGroup 屬性包含其密碼可快取在 RODC 上的群組、使用者或電腦帳戶的分辨名稱 (這些一般是跟 RODC 位於相同站台的使用者和電腦)。而 msDS-NeverRevealGroup 則包含其密碼不可快取在 RODC 的群組、使用者或電腦帳戶的分辨名稱 (例如，網域系統管理員帳戶絕對不應該將它的密碼雜湊快取在 RODC 上)。當 RODC 要求特定帳戶的密碼雜湊時，FDC 會比照密碼複寫原則來評估要求，以判斷是否應該將密碼雜湊複寫到 RODC。當 DC 遭竊時，這可將受影響的範圍侷限在那些在遭竊的 RODC 從網路移除當時快取的密碼，並且也消除了重要密碼遭到入侵的可能性。
RODC 電腦物件包含其他兩個屬性可幫助您判斷到底是哪些帳戶應該快取它們的密碼。msDS-AuthenticatedAtDC 屬性會列出已向 RODC 驗證的密碼，而 msDS-RevealedList 屬性則會命名其密碼目前是由 RODC 儲存的帳戶。
使用者和電腦密碼雜並不是唯一存放在 DC 上的秘密。KrbTGT 帳戶包括在每個網域控制站上執行的 Kerberos 金鑰發佈中心 (KDC) 服務的金鑰。在典型案例中，網路中的每個 KDC 都是共用相同的 KrbTGT 帳戶，而攻擊者有可能從失竊的 DC 中擷取這些金鑰，並利用它們來攻擊網域的其餘部分。不過，每個 RODC 都有自己的 KrbTGT 帳戶和金鑰，可消除該風險。
應用程式也常常把密碼或其他秘密存在 DIT 中。如果攻擊者要偷取 DC，她很可能會竊取這些應用程式密碼，並利用它們來取得應用程式的存取權。為了減緩這個風險，Windows Server 2008 網域服務容許系統管理員定義「唯讀 DC 已篩選屬性集」(Read-Only DC Filtered Attribute Set，RO-FAS)。屬於 RO-FAS 一部分的屬性永遠都不會複寫到 RODC，因此也無法從遭入侵的 DC 中擷取到它們。您可以在架構中將相對應 attributeSchema 物件的 searchFlags 屬性設為位元 9 (0x0200)，將屬性指定到 RO-FAS。

城門內的野蠻人
另外一種分公司網域控制站的威脅，是發生在本機伺服器系統管理員利用 DC 的權限來提高其權限，藉此獲得其他網域資源的存取權或發動拒絕服務攻擊。再次強調，如果本機系統管理員能夠實際存取網域控制站，那麼對於入侵可能也無計可施。不過倒是可以防止攻擊者使用分公司網域控制站來入侵網域當中的其他 DC。
在網域中完整的 DC 並不會信任 RODC 為網域控制站。從信任的觀點看來，FDC 會將 RODC 當作網域中的成員伺服器來對待。RODC 並不是企業網域控制站或網域控制站群組的成員。RODC 帳戶更新目錄內容的能力非常有限，因此即使攻擊者真的入侵 RODC 帳戶，她所獲得的權限也幾乎無用武之地。
RODC 甚至不會顯示在標準 DS 複寫拓樸中。因為 RODC 看起來像一般的成員伺服器，而不像網域控制站，所以知識一致性檢查程式 (KCC，這是每個 DC 上負責計算 DS 應用程式拓樸的處理程序) 不會從 RODC 建立連線物件。完整 DC 或 RODC 全都不會嘗試從 RODC 複寫。但是，RODC 會建立一個連線物件來代表完整 DC 的輸入複寫授權合約，不過這個連線物件只存在於 RODC 的複本中，其他 DC 完全沒有該連線物件的複本。從複寫的觀點來看，RODC 就像是目錄物件的蟑螂屋。物件只能往內複寫，不能往外複寫。

RODC 上的系統管理角色區隔
分公司 DC 常常是由包辦一切工作 (從在網域控制站上執行備份到清除關鍵字) 的本機伺服器系統管理員來管理。但是將在網域控制站上進行一般維護工作所需的權利授與網站系統管理員，其實有其安全性風險，而且網站系統管理員有可能會提高她在網域中的權限。RODC 提供了兩種系統管理角色區隔來舒緩這項威脅。
透過第一種形式的角色區隔，網域系統管理員可以依正常的方式使用 DCPROMO 來升級 RODC，或者她可以使用包含兩個步驟的程序，安全地將實際的升級程序委派給分公司網站系統管理員，而無需授與任何網域系統管理權限。網域系統管理員可使用 Active Directory [使用者和電腦] MMC 嵌入式管理單元，在網域中預先建立 RODC 電腦帳戶，如 [圖 5] 所示。
[圖 5] 預先建立 RODC 電腦帳戶
[圖 5] 預先建立 RODC 電腦帳戶
選取 [預先建立唯讀網域控制站帳戶] 會執行精簡版的 DCPROMO，它會執行所有需要網域系統管理存取權的工作，包括建立電腦帳戶、指派 RODC 到網站、指定 DC 的角色、指定密碼複寫原則，以及定義在 RODC 上需要權限以完成 DCPROMO 作業的使用者或群組。委派的系統管理員或群組是存放在 RODC 電腦物件的 managedBy 屬性中。
委派的系統管理員接下來可以在伺服器本身執行 DCPROMO。DCPROMO 會偵測預先建立的帳戶，然後將伺服器轉換成 RODC。透過這種方式執行 DCPROMO 就不需要網域系統管理員認證。
RODC 提供系統管理角色區隔的第二種方法，是在 RODC 本身上面建立本機系統管理角色。這些角色看起來像電腦本機群組 — 它們是儲存在 RODC 的登錄內，而且只能在 RODC 上提高權限。但是系統管理員是使用 NTDSUTIL 來管理本機 RODC 角色，而不是使用 [電腦管理] MMC 嵌入式管理單元來管理它們。[圖 6] 列出 RODC 上的本機系統管理角色。這些角色會一對一的對應到 Windows 中的內建群組。
Figure 6 本機 RODC 系統管理角色 (Close Figure 6)

帳戶操作員 (Account Operator)
系統管理員 (Administrator)
備份操作員 (Backup Operator)
憑證服務 DCOM 存取 (Certificate Service DCOM Access)
密碼編譯操作員 (Cryptographic Operator)
分散式 COM 使用者 (Distributed COM User)
事件記錄讀取者 (Event Log Reader)
來賓 (Guest)
IIS_IUSRS
Incoming Forest Trust Builder
網路設定操作員 (Network Configuration Operator)
效能記錄使用者 (Performance Log User)
效能監視器使用者 (Performance Monitor User)
Windows 2000 前版相容存取 (Pre-Windows 2000 Compatible Access)
列印操作員 (Print Operator)
遠端桌面使用者 (Remote Desktop User)
複寫者 (Replicator)
伺服器操作員 (Server Operator)
終端機伺服器授權伺服器 (Terminal Server License Server)
使用者 (User)
Windows 授權存取群組 (Windows Authorization Access Group)

RODC 奇觀
因為 RODC 是唯讀的，而且其他網域控制站也不能從它們進行複寫，所以 RODC 呈現了一些非預期的行為。比方說，DC 的輸出複寫夥伴一般會偵測到延遲物件 — 表示除了在特定 DC 上以外，其他地方都已刪除該物件，因為 DC 無法複寫超過樹系的標記存留時間。但是因為 RODC 並沒有輸入複寫夥伴，所以它們不會偵測到延遲物件。
RODC 不支持 LDAP 更新 (新增、修改、刪除、重新命名或移動) 作業。相反地，RODC 只會傳回錯誤，並提供 LDAP 轉介給可寫入的 DC 進行該作業。如果發行 LDAP 更新的應用程式不當處理轉介作業，應用程式很可能會失敗。
最後，若是樹系中其他網域的使用者嘗試向 RODC 驗證，RODC 必須能夠存取它自己網域中的完整 DC，才能取得信任密碼，適當地將驗證要求傳遞給在使用者網域中的 DC。如果 RODC 和在其網域中的完整 DC 之間的網路連線無法使用，驗證就會失敗。

更細緻的密碼原則
Windows Server 2008 ADDS 為響應熱烈要求，提供在網域中定義一個以上的密碼原則的功能。您大概已經知道，Windows 2000 和 Windows Server 2003 Active Directory 中的每個網域都只支援一個密碼原則，它會套用到網域中的所有安全性主體。如果特定的使用者群組需要不同的密碼原則，您就得建立不同的網域。但是現在在 Windows Server 2008 ADDS 中一項稱為「更細緻的密碼原則」新功能，可讓您在一個網域中定義多個密碼原則。
新策略是使用群組將更細緻的密碼原則套用到使用者身上。定義更細緻的密碼原則，您首先是在 CN=Password Settings Container, CN=System, DC=<domain> 容器中新建一個新的 msDS-PasswordSettings 物件。msDS-PasswordSettings 物件 (簡稱 PSO) 包含與群組原則中的密碼原則設定類似的屬性 (見 [圖 7])。
Figure 7 mSDS-PasswordSettings 物件中的屬性 (Close Figure 7)

屬性 | 描述
mSDS-PasswordReversibleEncryptionEnabled | 指出密碼是否使用可還原加密進行加密的布林值。
mSDS-PasswordHistoryLength | 密碼歷程記錄中所維護的項目數量。
mSDS-PasswordComplexityEnabled | 指出是否已啟用密碼複雜性限制的布林值。
mSDS-MinimumPasswordLength | 定義密碼最小長度的整數。
mSDS-MinimumPasswordAge | 指出密碼在可以變更前的最短使用期限的 INTEGER8。
mSDS-MaximumPasswordAge | 指出密碼在必須變更前的最長使用期限的 INTEGER8。
mSDS-LockoutThreshold | 指出鎖定前允許的登入失敗次數的整數。
mSDS-LockoutObservationWindow | 指出觸發鎖定之前必須發生的連續失敗登入之間的十億分之一秒數的 INTEGER8。
mSDS-LockoutDuration | 指出帳戶鎖定的十億分之一秒數的 INTEGER8。
您之後藉著新增使用者或群組名稱到 PSO 具有多值的 mDS-PSOAppliesTo 屬性的方式，對使用者或群組指派密碼原則。只要您接受不將密碼原則套用到 OU 的概念，其實就很直接明瞭。不過還是有些複雜的地方。
使用者通常是許多群組的成員，所以要是多項與使用者相關的密碼原則因為這些群組成員關係而產生衝突怎麼辦？在這種情況下，ADDS 會評估優先順序，來判斷應該套用哪個密碼原則。它的運作方式如下：
  1. 如果密碼原則直接與使用者物件連結 (而不是透過群組成員資格)，將套用該密碼原則。
  2. 如果有多個密碼原則直接與使用者連結，將套用具有最低優先順序值 (由 PSO 的 msDS-PasswordSettingsPrecendence 屬性值決定)。
  3. 如果有多個 PSO 具有相同的優先順序，將套用具有最低 objectGUID 值的 PSO。
  4. 如果沒有任何 PSO 直接與使用者連結，ADDS 將評估與該使用者的群組連結的 PSO。如果不只一個 PSO，將套用在 msDS-PasswordSettingsPrecedence 屬性中具有最低值的 PSO。
  5. 如果有一個以上的 PSO 具有相同的優先順序值，將套用具有最低 objectGUID 值的 PSO。
  6. 如果沒有任何 PSO 與使用者相關聯，將使用網域密碼原則。
使用者物件有一個叫做 msDS-ResultantPSO 的新屬性，有助於區分套用到使用者的是哪一個 PSO。這個屬性包含掌控使用者密碼的 PSO 的分辨名稱。
更細緻的密碼原則所賦予的彈性遠超過您所需，但是您必須小心管理這些原則，不要將它們複雜化。系統中並沒有隨附任何公用程式，讓您定義更細緻的密碼原則，您必須使用 ADSIEdit 或另尋協力廠商公用程式。

可重新啟動的 Active Directory 服務
您每次將網域控制站停機進行 DIT 維護，就會對網路服務層級造成一些中斷。Windows Server 2008 DC 有項新功能可讓您在不完全關閉 DC 的情況下停止目錄服務。
NET STOP NTDS 命令會停止 Windows Server 2008 DC 上的 ADDS。這麼做時，DC 上的本機安全性授權 (LSASS) 會繼續執行，但是它會卸載所有 ADDS 相關的 DLL，而目錄服務會變得無法使用。LSASS 接下來基本上會像在成員伺服器上一樣運作，把網域驗證要求轉送到 DC。因為處理 ADDS 的 DLL 已經卸載，您於是可以套用 ADDS 相關的修補程式，或對 DIT 執行離線磁碟重組。啟動 ADDS 很簡單，只要輸入 NET START NTDS 就行了。不過，若要從系統狀態備份還原 DIT，您還是需要開機到目錄服務修復模式。
您必須了解，目錄服務並不是真正的 Windows 服務。它仍舊是 LSASS 不可或缺的元件，而且您必須關閉機器才能停止 LSASS。不過在 Windows Server 2008 中啟動和停止目錄服務的功能，算是蠻便利的一個選項。

備份與復原
整個備份與復原的機制在 Windows Server 2008 中已經改頭換面。我在此不多細述，不過全新的 Windows Server Backup 有幾項影響 ADDS 的變更。
Windows Server Backup 是一套以磁碟區為主的備份解決方案，也就是說它會一次備份整個磁碟區。它也只會備份到磁碟 (或類似磁碟) 裝置 — 完全不支援磁帶。
WBADMIN 命令列備份公用程式有個系統狀態備份選項。使用 WBADMIN START SYSTEMSTATEBACKUP 命令，您現在可以建立一個備份映像，包含還原網域控制站上的 Active Directory 所需的所有重要系統檔案。不過備份組中最多能有五個磁碟區，但是備份組中的磁碟區只能包含系統狀態還原所需的檔案。更煩人的是，自 Windows Server 2008 的 RC0 組建版開始，不能對網路共用執行系統狀態備份。您必須要有本機磁碟區來存放系統狀態備份映像，而且該磁碟區不能屬於系統狀態備份磁碟區組的一部分。您可能必須在執行系統狀態備份的每個網域控制站上加入新的磁碟區。
執行系統狀態還原很簡單，只要將 DC 開機到 [目錄服務還原模式]，並執行 WBADMIN START SYSTEMSTATERECOVERY 命令就成了。結果會產生非授權還原的 DIT，您可以在上面使用 NTDSUTIL 授權還原特定物件，就跟在 Windows Server 2003 中進行的一樣。
Windows Server Backup 還有一點特別值得一提：它會以虛擬硬碟 (VHD) 格式存放備份映像。這跟 Microsoft Virtual Server 2005 用來儲存其虛擬硬碟映像的格式一樣。這表示您可以把使用 Windows Server Backup 建立的備份映像，掛接成執行在 Microsoft Virtual Server 下的虛擬機器中的磁碟機。之後就可以把它當作一般磁碟機一樣瀏覽當中的備份內容！
另外一項與 ADDS 備份有關的變更，是您現在能夠使用磁碟區陰影複製服務來建立 Active Directory 的時間點快照集。當使用 NTDSUTIL 建立快照集時，磁碟區陰影複製服務會在更新作業覆寫 DIT 的每個磁碟區塊之前，先儲存它的前映像。透過將儲存的前映像與 DIT 目前的版本相結合，磁碟區陰影複製服務不費吹灰之力，就可以建構 DIT 的完整快照集。典型的快照集只需要花幾秒的時間就可以建成，無論 DIT 的大小為何。
這本身算是個相當有趣的功能，但是其實用處不大。不過，在 Windows Server 2008 中，ADDS 包含了一個稱為 DSAMAIN 的命令列公用程式，可在唯讀模式中掛接快照集映像。這提供了獨立的 LDAP 伺服器，就跟內含製作快照集當時目錄裡面內容的 ADLDS 執行個體沒什麼兩樣。您可以使用 LDAP 公用程式或其他 LDAP 工具來瀏覽目錄，並擷取稍早時間點的目錄物件版本。

透過 DFS-R 進行 SYSVOL 複寫
Windows Server 2003 R2 的特色是提供了經過改造的分散式檔案服務 (Distributed File Service，DFS)，它併入了一套嶄新的檔案複寫機制，稱為 DFS-R。它採用遠端差異壓縮，這可藉著判斷目標檔案的哪個區塊需要複寫，以便使它與來源檔案同步，進而大幅縮減檔案複寫的流量。然而，Windows Server 2003 R2 仍舊使用檔案複寫服務 (而不是 DFS-R) 來複寫網域控制站之間的 SYSVOL。因此，SYSVOL 複寫仍然是 Active Directory 系統管理員頭痛的根源之一。
在 Windows Server 2008 網域功能等級執行時，Windows Server 2008 可使用 DFS-R 來複寫 SYSVOL，藉此提高 SYSVOL 複寫的速度和穩固性。因此，將較大型的檔案放在 SYSVOL 中，供所有的 DC 存取是很合理的。若要將 DFS-R 用於 SYSVOL，您必須先使用 DRSRMIG 公用程式先將舊版的 SYSVOL 資料移轉到 DFS-R。這個程序分成四個步驟：
  • 建立 DFS-R 所需的 Active Directory 物件。
  • 在每個網域控制站上建立 SYSVOL 的新檔案結構。
  • 切換所有網域控制站以使用新的 SYSVOL。
  • 移除舊版 SYSVOL。
根據 SYSVOL 的大小還有您擁有的網域控制站數量而定，這個程序可能會花一段時間完成，不過效能和可靠性方面的提升將值回票價。

稽核方面的改進
Active Directory 裡面適用於 Windows Server 2003 的稽核系統有好也有壞。一方面，它提供一套相當完善、富彈性又安全的解決方案，可用來追蹤目錄當中的變更。但有些人可能會反駁，覺得它有幾項嚴重的使用性問題。
在 Windows Server 2003 網域控制站啟用稽核目錄變更功能，可說是孤注一擲的決定 — 不是開啟，就是關閉。而且忙碌的企業 DC 上大量的稽核流量，讓稽核看來頗不切實際。為了設定稽核系統以產生您真正需要的訊息，而擺弄個別的安全性識別元，不但麻煩又容易出錯。稽核訊息本身往往很隱密，而且在許多情況下都不含您所要的資訊，例如已變更屬性的前後值。另外，使用原始的 Windows 工具來收集、封存多個網域控制站的訊息，以及建立它們之間的關聯，其實並不可行。
Windows Server 2008 中的目錄服務稽核系統解決了當中的一些問題。首先，有四個新的稽核子類別可用於目錄服務稽核：DS 存取、DS 變更、DS 複寫，以及詳細的 DS 複寫。所以，如果您只想稽核目錄變更，就不用費力地處理所有的讀取和複寫事件。但是如果您想要在稽核記錄中包含物件刪除作業，就必須啟用 [DS 存取]。這會產生所有 DS 物件存取的訊息，基本上是讓您再次身陷產生太多訊息的困境中。所以要不要設定安全性識別元，針對您所關心的物件產生稽核訊息，就讓您自己決定吧。
稽核訊息已經過大整頓，除了更方便讀取之外，也包含您所需的資料。特別是，目錄變更現在產生的稽核記錄項目，會包含已變更屬性的新舊值。這可說是一大改進。它唯一的缺點是新舊值是出現在不同的稽核記錄項目中，所以您必須建立它們的關聯，才能真正了解所做的變更。許多附加的稽核記錄收集產品，包括 Microsoft Audit Collection Services，都支援這類的相關性。

改良的 UI
Active Directory [使用者和電腦]、[站台及服務] 和 [網域和信任] MMC 嵌入式管理單元向來就足以管理 Active Directory。在 Windows Server 2008 中，基本的系統管理工具已經過大掃除，並介紹了幾項不錯的新功能。如果您啟用 [進階功能]，每個物件的 [內容] 對話方塊會另外顯示一個標題為 [屬性編輯器] 的索引標籤。這跟 ADSIEdit 使用的屬性編輯器索引標籤相同，可讓您偵查和編輯物件的所有屬性。現在此索引標籤本身更容易解碼已編碼的屬性，例如 userAccountControl 屬性。[圖 8] 說明屬性編輯器如何完美整合。
[圖 8] Active Directory [使用者和電腦] 中的屬性編輯器
[圖 8] Active Directory [使用者和電腦] 中的屬性編輯器

總結
除了我在本文中討論到的重點之外，您還可以在 Windows Server 2008 的 ADDS 中找到其他更多的改進功能。譬如，若網域是位於 Windows Server 2008 網域功能等級，KDC 便會使用 256 位元進階加密標準 (AES-256)。您可以在任何 DS 物件的 [物件] 索引標籤上勾選適當的方塊，來啟用物件的 [預防意外刪除 (Accidental Deletion Prevention)]。提供資料管理服務的可延伸儲存引擎已經過增強，以使用單一位元錯誤修正，藉此降低磁碟子系統因軟硬體錯誤而損毀 DIT 的可能性。DNS 服務會在完全載入 DNS 資料庫之前開始處理要求。DC 定位程式模組已經過加強，當它在預期的站台中找不到 DC 時，會嘗試在最接近的下一個站台尋找 DC，而不是直接使用它在網域中隨便找到的任何 DC。而 NTDSUTIL 現在支援 RODC 和磁碟區陰影複製服務快照集。
Windows Server 2008 顯然在 Active Directory 網域服務中提供了許多改進功能。將所有這些變更結合起來，可大幅提升 ADDS 的安全性和管理性。不過最棒的是，將 Windows Server 2008 整合到您的 Active Directory 環境不必進行繁雜的移轉作業 — 反而是簡單又循序漸進的過程。

Gil Kirkpatrick 是 NetPro 的技術長，他從 1996 年開始開發 Active Directory 軟體。他與來自 HP 的 Guido Grillenmeier 共同推行大受歡迎的 Active Directory Disaster Recovery 工作室。Gil 也是 Directory Experts Conference (www.dec2007.com) 的創辦人。


 特別報導：Windows Server 2008: IIS 7.0 入門
特別報導：Windows Server 2008 Isaac Roybal

IIS 7.0 入門
摘要:
  • IIS 7.0 架構變更
  • 管理 IIS 7.0
  • 回溯相容性
  • IIS 7.0 疑難排解

IT 工作室各不相同，每個都有自己的需求和目標，尤其是在主控網站或服務方面。為了滿足組織的需求，網頁伺服器可能需要填東補西，更別提把相同的配方應用在多部伺服器上，
又要同時有效地管理它們所帶來的挑戰。IIS 7.0 中一些重大的變更，就是要協助 IT 工作室在建置網頁伺服器或 Web 伺服陣列時達成這樣的目標。
在逐一掃視 IIS 7.0 中所有的重要功能後，我對於能與您分享這些功能的細節是滿心雀躍。當我發現無法在本文一一細述後，我決定把重點集中在 IIS 7.0 中一些最顯著的功能和重大的變更上。如需詳細資訊，請造訪 IIS.net 上的 IIS 社群網站。

全新架構
IIS 7.0 中的核心變更與架構、要求處理、PHP 應用程式架構支援和設定存放區有關。在 IIS 6.0 中，功能基本上是全有或全無。您必須安裝所有的功能，而且只能使用 ISAPI 來自訂 IIS。
建置 IIS 的前提，是讓網站管理員從一組基本的功能開始著手，之後再針對他的環境所需分層加上其他必要的功能。您最了解自己的環境，因此 IIS 7.0 提供您建置組塊讓您建立自己的自訂網頁伺服器。這麼做可以減輕您的系統管理負擔，因為這可縮小伺服器的受攻擊面，並且無須更新不用的元件。此套新作法的關鍵在於 IIS 7.0 的模組化架構。
IIS 7.0 具有嶄新的設計可讓您選擇要安裝在伺服器上的功能 (亦稱為模組)。這些模組會直接掛入整合式要求管線。這個全新的模組化設計有幾項優點，包括縮小受攻擊面和減少網頁伺服器數目。
IIS 目前有 40 個預設模組 — 例如，基本、匿名和 Windows® 驗證現在都是個別的模組，可獨立地加入要求管線。為了方便分類，模組分成八個子類別 (見 [圖 1])。
[圖 1] IIS 7.0 模組分成八個功能區域
[圖 1] IIS 7.0 模組分成八個功能區域
這表示您現在能夠建置一個完全為您的環境量身訂做的自訂網頁伺服器。但若是 40 個預設模組沒有提供您要的功能，像是自訂驗證或內容修改程式怎麼辦呢？沒問題，您可以使用機器碼或 Managed 程式碼編寫模組，來滿足這項需要，然後將它直接掛入管線中。這也可讓 Microsoft 個別編寫和發行新模組，如此一來，您就不用苦等下一次 Service Pack 或主要的產品發行版。IIS 7.0 可讓您以自己的自訂模組來覆寫 40 個預設模組中的任何一個。如需有關如何建置您自己的模組的詳細資訊，請參閱 IIS.net。

整合式要求管線
您可以把整合式要求管線想成是每次提供頁面時必須採取的一組基本線性步驟 (如 [圖 2] 所示)。一般來說，一定要進行某種驗證，隨後授權以擷取內容，判定和執行該內容所需的處理常式，進行任何必要的記錄作業，最後是傳送回應。 整合式要求管線讓 IIS 7.0 具備同時執行不同應用程式架構的彈性。例如，您可以在同一管線內以自訂記錄模組在 PHP 內容上執行表單驗證。
[圖 2] IIS 7.0 整合式管線和模組
[圖 2] IIS 7.0 整合式管線和模組
伺服器上的每個網站都有整合式要求管線，而且可以在兩種模式之一當中執行：[整合式] 和 [傳統]。[整合式] 是預設模式，容許在管線中掛入特定的功能，讓您細微地控制要求處理序。[傳統] 模式透過 ISAPI 模組在管線中重新產生 IIS 6.0/ISAPI 功能，來保持相容。這在將應用程式移轉至 IIS 7.0 時相當有用。

預設安裝
現在讓我們來討論一下要怎麼設立您全新的模組化網頁伺服器。看一下 IIS 7.0 的預設安裝，您會發現其中只包含 10 個模組 (如果把 Windows 處理程序啟動服務包含在內的話)。在安裝網頁伺服器角色時，IIS 7.0 安裝程式會提供 IIS 的基本功能，特別是只包括提供靜態內容 (像是純 HTML 或傳統 ASP) 所需的模組。在這之後，要在伺服器上安裝什麼全由您自己決定。下面是預設安裝所含的功能：
  • 常見 HTTP 功能，包括靜態內容、預設文件、目錄瀏覽和 HTTP 錯誤
  • 健康情況和診斷功能，例如 HTTP 記錄和要求監視器
  • 安全性功能，例如要求篩選
  • 效能功能，例如靜態內容壓縮
  • 管理工具，包括 IIS 管理主控台
  • Windows 處理程序啟動服務
如您所見，這是最基本的伺服器，不含 ASP.NET 或其他 IIS 7.0 新功能，像是診斷和疑難排解功能。要在伺服器上啟用其他功能，例如傳送如 ASP.NET 和 FastCGI (PHP) 的動態內容，其實很簡單。只要在 Windows Server® 2008 伺服器管理員內，從網頁伺服器角色的 [新增角色服務] 選取要安裝的模組就行了。

全新的設定存放區
IIS 7.0 中另一個可讓您的生活更輕鬆的重要變更，是全新的設定存放區。為了達到回溯相容性而提供選擇性安裝的元件 Metabase，現在已由 XML 設定系統取代。我知道您一定會大叫：「但是 Metabase 不就是 XML 嗎！」沒錯，但是它既難處理又不容易閱讀 (至少一般人看不太懂)。它已由一套比較富有彈性的 XML 系統取代。就跟 ASP.NET 一樣，IIS 7.0 也使用 .config 檔案 — 簡潔、可攜又容易閱讀的 .config 檔案。
改採這種格式意謂著設定系統現在不受機器控制，與鍵入個別機器的 Metabase 截然不同。因此，您現在便能輕鬆地透過簡單的拖放動作或 xcopy，將設定系統移植到其他系統，隨您到處跑。
這套全新的設定系統也利用 IIS 7.0 中一項稱為「共用設定」的新功能，在 Web 伺服陣列達到不可思議的成效。由於這套全新的設定系統具備可攜性，您可以將一個主要 .config 檔案在伺服陣列中的所有節點間共用。共用設定可讓您匯出已知具備良好狀態的生產前伺服器的設定，然後將它共用於您的生產或「實際執行」環境中。
匯出 .config 檔案時，您還必須一起附上加密金鑰密碼。這可保護 .config 檔案預防惡意的網頁伺服器試圖在沒有授權的情況下模擬您伺服器的 .config 檔案。
啟用共用設定很簡單，只要在 IIS 管理員的伺服器節點中，選取位於工作窗格的 [管理] 區段下的 [共用設定]。選取 [啟用共用設定]，提供要共用之設定的實體路徑 (這一般是 UNC 共用)，輸入存取實體路徑所需的憑證，然後按 [套用] 就行了。找到 .config 檔案時，系統會提示您輸入它的加密密碼。這個程序完成後，請重新啟動 IIS 管理員，它就會採用新的 .config 檔案。
新設定系統的結構跟您所習慣的大不相同，讓我們來看一下其中的基本內容。如 [圖 3] 所示，IIS 7.0 的設定已化分成兩種類別，即全伺服器設定和站台特定設定。所有的伺服器端設定都是存放在 applicationhost.config 中，此檔案位於 %systemroot%\windows\system32\inetsrv\config。這當中包括所有已安裝的模組、伺服器上的站台等等。站台特定設定則是存放在個別的 web.config 檔案。
[圖 3] 全伺服器設定有個 .config 檔案，而伺服器上的每個網站都有各自不同的檔案。
[圖 3] 全伺服器設定有個 .config 檔案，而伺服器上的每個網站都有各自不同的檔案。
如果您曾用過 ASP.NET，可能比較熟悉 web.config 檔案。IIS 7.0 使用 web.config 檔案來存放個別站台特定的設定，例如站台的預設文件和應用程式設定，還有 ASP.NET 設定。這表示您伺服器上的每個站台都有一個 web.config 檔案。
站台的 web.config 檔案是位於站台的實體路徑中，例如 %systemroot%\inetpub\wwwroot。這種設計也提供像前文所述的可攜性優點，不過是在站台層級。比方說，您可以輕鬆地在測試伺服器上開發一個站台，然後直接將該站台的 web.config 和應用程式檔案拖放或 xocopy 到生產伺服器。
每次移植或共用 .config 檔案時，請特別注意電腦特定的資訊，像是 IP 位址和磁碟機代號。IIS 7.0 支援 OS 環境變數 (例如 %systemroot%)，來應付這類疏忽。另外也請確保測試和生產伺服器上安裝了相同一組的模組。這有助於避免不預期的應用程式錯誤。如果 web.config 參考到尚未安裝的模組，或是預設模組與自訂模組相衝突，也可能會發生錯誤。

管理網頁伺服器
現在有了這部卓越、全新、可自訂、富彈性又可攜的網頁伺服器， 要怎麼管理它呢？管理工作是規劃和建置 IIS 7.0 相當重要的一環，而處理系統管理的雜務有好幾種方法。
管理喜好設定一般不出三種類別：從 UI 進行點擊執行管理，在命令列輸入命令，以及撰寫指令碼盡可能自動化。讓我們先從 UI 談起。
在 IIS 6.0 中，Microsoft® Management Console (MMC) 嵌入式管理單元的 UI 有兩個基本、常見的檢視，即樹狀檢視和標籤式檢視。若要切入設定，可按一下滑鼠右鍵，選取 [內容]，然後就會顯示一堆索引標籤，當然還有選項按鈕和核取方塊。
好消息是，IIS 7.0 中的 UI 已徹底改頭換面。這個 UI 的設計是採取工作導向的方法，稱為「IIS 管理員」，如 [圖 4] 所示。另外還有適用於下層用戶端 (例如 Windows XP 和 Windows Server 2003) 的「遠端管理員 (Remote Manager)」。您可以透過 IIS.net/downloads 下載它。
[圖 4] IIS 7.0 中的新 UI
[圖 4] IIS 7.0 中的新 UI
全新的使用者介面左方有 [連線] 窗格，右方有 [執行] 窗格，而中間是工作窗格或工作空間。左方的連線管理員樹狀結構類似於 IIS 6.0 的樹狀檢視，都有父節點和子節點。您可以建立新連線、儲存目前連線或刪除現有連線，這些都是樹狀檢視所沒有的新功能。工作窗格是 UI 最明顯的改進部分，有兩個檢視可以使用。功能檢視將 IIS 所有可設定的屬性從舊式「標籤式」檢視取出，並將它們依系統管理區域分組，例如 IIS、管理和安全性。
ASP.NET 屬性也已整合至 IIS 管理員中，而不必再使用多餘的 MMC 嵌入式管理單元。每個可設定的屬性都有自己的圖示，方便您尋找。而且因為 IIS 管理員是當作 Windows Form 應用程式建置而成，所以您可以輕易地為您所寫的任何自訂模組或功能加入外掛圖示。
工作窗格的第二個檢視是內容檢視，這與 IIS 6.0 極為雷同之處在於，您可以查看站台的內容目錄裡面有什麼內容，然後對該內容執行動作。這裡的新功能是，您可以選取特定的內容 (例如特定的網頁)，然後切換到功能檢視來叫用選定內容上的特定設定，以便更細微地往下控制頁面層級。

其他管理方式
對於比較偏好使用命令列的人，有一個功能強大的新工具，叫做 APPCMD.exe，它可讓您執行簡單的工作，例如停止站台或備份目前的 .config 檔案，以及較為複雜的工作，例如搜尋設定的結構描述。語法相當簡單：
APPCMD (command) (object-type) <identifier> </parameter1:value1 ...>.
TolistallobjectsavailabletoAPPCMD,type:
APPCMD /?
或者，如果您想要查看特定物件類型的可用命令，可輸入：
APPCMD (object-type) /?
針對所有程式碼作者，IIS 7.0 新增了 Managed 程式碼 API，稱為 Microsoft.Web.Administration，以及全新的 Windows Management Instrumentation (WMI) 提供者。這兩種方法都開放了無數選項，讓您透過指令碼處理、自動化和撰寫工具的方式來管理 IIS 7.0。兩者都可與 Windows PowerShell® 搭配使用，而 WMI 提供者也可與 VBScript 和 JScript® 搭配使用。如需詳細資訊，請參閱 blogs.msdn.com/carlosag/archive/2006/04/17/MicrosoftWebAdministration.aspx。

遠端管理和委派管理
IIS 7.0 提供全新的方法讓您遠端管理伺服器、站台、Web 應用程式，以及安全地委派非系統管理員的系統管理權限。讓我們先來討論一下全新的遠端管理功能，以及它們如何減輕您的負擔。
在過去，遠端管理 IIS 伺服器有兩種方法：使用遠端管理網站，或使用遠端桌上型電腦/終端機服務來存取 UI。但若您是位於防火牆之外或是離站，這些選項就沒那麼有用。IIS 7.0 所採取的對策，是將遠端管理功能直接建置到 UI 當中，這樣 UI 就可以透過與防火牆互動的 HTTPS 運作。
IIS 7.0 中的遠端管理在好幾方面可減輕您的工作負擔。首先，您所獲得的 UI 體驗就跟登入本機一樣。其次是不用開啟防火牆上的連接埠，因為通訊是透過 HTTPS 進行。最後，您現在可以從單一 UI 管理數部伺服器。而不需要同時開啟好幾個遠端桌面或遠端網站視窗。
IIS 7.0 中實際的遠端管理服務，基本上是一個小型 Web 應用程式，它是在 Windows NT® 本機服務帳戶 (稱為 NT Service\WMSVC) 下以個別的服務執行。這種設計可在 IIS 伺服器本身沒有回應時仍舊保有遠端管理功能。
就跟 IIS 7.0 中大部分功能一樣，基於安全性考量，預設並不會安裝遠端管理。若要安裝遠端管理功能，可在 Windows Server 2008 伺服器管理員 (可在 [管理工具] 裡面找到) 中，為網頁伺服器角色新增角色服務。安裝好這項功能後，您還必須啟用遠端連線並啟動 WMSVC 服務，因為它預設是處於停止狀態。
WMSVC 服務的預設啟動設定是手動。如果您希望該服務在重新開機後自動啟動，就必須將設定變更為自動。您可以透過命令列進行這項作業，只要輸入：
sc config WMSVC start=auto
當透過管理服務啟用遠端連線時，您會看到一份設定清單，例如識別認證、連線和 IPV4 位址限制。此時最重要的決策是判定要將連線到 IIS 7.0 的權限授與哪一組識別認證：僅 Windows 認證或是 Windows 和 IIS 管理員認證。
第一個選項很明顯是指您只想允許 Windows 使用者帳戶，無論是本機或網域。第二個選項則包括 Windows 使用者和 IIS 7.0 中與 Windows 使用者帳戶無關的全新帳戶類型：IIS 管理員使用者。透過 IIS 管理員使用者，系統管理員能夠建立只在 IIS 7.0 內容中已知且無法存取 OS 的使用者帳戶。最後，根據預設，IIS 還提供自我簽署認證讓您著手進行，但是建議您加入有效的已簽署 SSL 認證。現在只要套用您的設定，然後啟動服務就大功告成了。
為了提高控制能力及安全性，IT 系統管理員可以安全地委派各個站台或 Web 應用程式的系統管理工作給非系統管理員。
委派的系統管理基本上是遠端管理，但它會限制個別站台或 Web 應用程式的存取範圍。「IIS 管理員使用者」功能在這裡特別管用，您可以為這些僅此一次的站台擁有者建立 IIS 使用者，並委派權限給他們，讓他們管理自己的站台或應用程式。他們並無法存取全伺服器設定，而且只受限於存取他們特定的站台或 Web 應用程式。
您也可以指定使用者能夠變更的功能和設定，甚至指定哪些要顯示在 UI 中。舉例來說，假如您不希望某人變更他站台所使用的驗證類型，您可以將該功能設定為唯讀或不可繼承。當某功能是唯讀時，使用者仍然可以存取該功能並確定設定，但不能進行變更，而對於不可繼承的設定，該功能不會出現在委派的使用者 IIS 管理員檢視中。這類的功能委派可讓您在不提供網頁伺服器的系統管理控制權的情況下，嚴格控制其他人的存取權。

邁向 IIS 7.0
IIS 小組在設計 IIS 7.0 時，希望能夠藉著讓您利用現有的管理工具投資和 IIS 6.0 的指令碼，使轉移的過程盡可能順暢。他們在 IIS 7.0 的回溯相容性方面尤其投入許多心力，使它能與您的 IIS 6.0 指令碼搭配運作。在安裝程序的 IIS 6.0 管理相容性節點下，其實有一整組的工具可以安裝 — 範圍從 IIS 6.0 Metabase 相容性到實際的 IIS 6.0 管理主控台，應有盡有。
IIS 6.0 Metabase 相容性基礎結構採用一個叫做 ADOMapper 的元件。它可讓您在全新的設定系統中執行 IIS 6.0 Admin Based Object (ABO) 和 ADSI (Active Directory 服務介面) Metabase 指令碼，使它侷限於 IIS 6.0 的功能。因此，它無法讀取或寫入新的 IIS 7.0 屬性，存取新的執行階段資料，或是讀寫 ASP.NET 屬性或 web.config 檔案。

疑難排解和診斷
疑難排解和診斷向來是耗時的差事。要在大型的 Web 伺服陣列甚或是單部伺服器中挖出記錄檔並試著重現問題並不容易。IIS 7.0 有項工具，稱為「失敗要求的追蹤」，有助於減輕這類的苦活，並減少浪費時間。它在很多情況下都很有用，包括當要求沒有回應或產生錯誤時，還有對於調查驗證和授權問題等。
失敗要求的追蹤使用追蹤規則作為搜尋錯誤的條件。您可以建立追蹤規則來尋找行為或錯誤的類型，方法是指定您想要追蹤的內容類型 (例如伺服器上的全部內容，僅 ASP.NET 內容，或是自訂內容，像是 PHP)，以及應該開始追蹤的條件 (例如特定的傳回狀態代碼，提供頁面所花的時間，事件嚴重性，或各種組合)。
比如，假設使用者報告某站台載入的時間太長。如果您每個小時有上千次點閱，這是很難重現的案例。透過失敗要求的追蹤，您只要加入追蹤規則，在網頁花超過預期的時間載入時開始記錄 — 針對此例，我假設是兩秒 — 然後等伺服器自己重現問題就行了 (見 [圖 5])。
[圖 5] 使用失敗要求的追蹤進行疑難排解
[圖 5] 使用失敗要求的追蹤進行疑難排解
失敗要求的追蹤和傳統記錄功能之間的差別在於，前者只會在偵測到特定的失敗要求條件時才會進行記錄。記錄檔本身是 XML，外加一個 XML 樣式表，使它既簡潔又方便閱讀。就跟 IIS 7.0 的其他多數功能一樣，這項功能預設並不會安裝，您可以在安裝程序的健康情況和診斷區段中找到此功能。您還必須在 IIS 管理員中啟用它才行。
IIS 7.0 對所有系統管理員來說，是向前邁進了一大步。它全新的架構和功能提供了順應您多變環境所需的靈活度和彈性。它的管理功能、回溯相容性工具和疑難排解功能正等著您部署，並運用於您現有的環境。

Isaac Roybal 在 Microsoft 擔任 Windows Server 的產品經理。他負責所有與 Windows Server 相關的網路事宜。Isaac 自 Windows NT 3.51 和 IIS 4.0 開始就投入 Windows Server。在這之前，他曾擔任 Office 網際網路平台和營運 (Office Internet Platform & Ops) 小組的營運專案經理 (Operations Program Manager) 一職。他擁有 Windows NT 4.0、Windows 2000 和 Windows Server 2003 的 MCSE 認證。


 特別報導：Windows Server 2008: 使用 Windows Server 2008 的原則導向網路存取
特別報導：Windows Server 2008 Ian Hameroff and Amith Krishnan

使用 Windows Server 2008 的原則導向網路存取
摘要:
  • 權衡網路存取和安全性
  • 以原則導向的方法存取網路
  • Windows Server 2008 中全新的安全性技術

隨著行動工作人力漸增，以及需要存取公司 IT 資源的使用者和裝置越來越多樣化，
傳統週邊網路的式微也就不足為奇。為了促進產能，使用者和企業營運擁有者全都渴望擁有順暢且程序簡潔的連線體驗。這樣的情況本身就很複雜，而法規遵循方面的負荷、不斷演變的威脅環境，以及有關資料分散的風險更是雪上加霜。
這使得 Windows® 系統管理員恰好困在艱鉅的安全性權衡行動中，動彈不得：要如何讓資源方便存取，又同時滿足與日俱增的資訊和網路安全性需求。
雖然沒有一套解決方案可以克服所有這些挑戰，但身為 Windows 系統管理員，倒是有許多工具任您運用，幫助提高您已有的安全性控制 — 像是邊緣防火牆。在存取和安全性之間取得適當平衡點的絕佳辦法，就是轉移傳統的連線模型，尋求以更具邏輯和以原則為中心的方式定義網路存取。

原則導向的網路存取方法
網路資源
  • IPsec (英文)
  • 具有進階安全性的 Windows 防火牆 (英文)
  • 伺服器和網域隔離 (英文)
  • Windows Server 2008 的網路存取保護 (NAP) (英文)

原則導向的網路存取目的在於，消除當您嘗試將信任主要放在網路拓樸邊緣時遇到的現有限制。舉例來說，只因為裝置插入您公司防火牆背後其中一個 Ethernet 切換連接埠，您就真的該信任和授權該裝置連線到執行客戶關係管理 (CRM) 應用程式的伺服器嗎？
全新的模型會同時驗證裝置的安全性狀態和要求存取之使用者的身分識別 (無論從何處連線)，來作出存取的決策。一通過驗證，便可採用相同的架構來授權可存取的資訊和資源。
從防禦式立場轉換成比較著重存取的觀點，牽涉著許多要素，包括設立機制來驗證連線主機的身分識別，以及是否遵守原則；發行信任的使用者識別；以及根據這些特性動態地控制網路存取。為了方便管理這些各不相同的變動部分，中央原則存放區也是很重要的元件。
採取原則導向的方法有助於將許多可能完全不同的網路存取組織在一起，並將安全性控制裝載到比較完善的解決方案中。結果可讓您在連線組織上的邏輯層設定網路存取的基本規則，從而發展出傳統深度防禦的最佳作法。
例如，當使用者將膝上型電腦連線到公司的無線網路時，可以最新的安全性設定需求來檢查該裝置是否符合規定。一旦確定該膝上型電腦裝有所有最新的防毒更新和重大安全性更新程式，並且也啟用了所有的端點安全性控制之後 — 例如主機防火牆 — 便可授權存取公司網路。接下來，當使用者嘗試存取商務應用程式時，可搭配使用膝上型電腦的健康狀態和使用者的網路識別來判定他是否有權利連接到裝載應用程式的資源。透過在實體網路基礎結構上操作此一邏輯層，便可持續強制施行原則，即使使用者從無線網路移到有線甚或遠端存取連線也一樣。
實作時，原則導向的網路存取可向使用者傳達更為通暢無阻的連線體驗，而不會危及程序當中的安全性。對於系統管理員來說，切換連接埠或遠端存取閘道設定所達成的上層網路存取控制，能提供更簡單的管理經驗。在這兩種情況下，都能達到提升產能，以及改進公司網路健康整體的成果，甚至是在網路可能對於像是來賓 (無論有沒有邀請)、廠商、合作夥伴和員工等具有不同存取權限的實體來說，扮演著主機的角色的情況也一樣。
就跟任何安全性專案一樣，實作原則導向網路存取的第一步，是開發一組可操作的整體原則。這通常包括下列的指導方針：
  • 裝置安全性循規 — 何謂保持裝置的健康狀態？
  • 邏輯網路分區 — 您如何區隔不健康的裝置與已授權的裝置？
  • 資訊風險管理 — 機密資料如何分類，以及免受侵害？
所幸，Microsoft® TechNet 資訊安全中心 (microsoft.com/technet/security) 提供了各種原則開發資源。
發展出存取原則後，必須選擇既容易散佈又能有效強制施行的技術。對此，找 Windows Server® 2008 準沒錯。這是因為 Windows Server 2008 不僅是當今最安全的 Windows Server，更提供系統管理員強固的安全性平台，可構成原則導向網路存取解決方案的基石。除了一長串的全新和增強功能外，Windows Server 2008 還提供許多必要的元素，讓您對網路實作安全、以原則為主的存取，協助確保機密資訊已受到保護而免於侵害。

下一代網路
在 Windows Server 2008 中，網路安全性進階功能的核心是下一代 TCP/IP 堆疊，這是針對平台的網路功能及相關服務的一項重大更新。除了提升網路效能並提高延展性之外，Windows Server 2008 更透過一系列整合式網路功能促進安全性，這些整合式網路功能為建造原則導向網路存取解決方案提供了堅實的基礎。
網際網路通訊協定安全性 (IPsec) 在 Windows Server 2008 中已經過大幅升級，使得它在原則導向網路存取方法裡面扮演著關鍵的角色。現在不是使用 IPsec 作為通道和加密通訊協定，而是運用它的主機對主機網路驗證功能。此外，因為 IPsec 是在第 3 層運作，所以您可以利用它在各種類型的網路間強制實施網路存取原則。
為了讓實作以 IPsec 為主的網路存取控制更加容易，Windows Server 2008 引入了一長串改進和全新功能，旨在簡化原則的建立、強制和維護工作。比方說，可用的 IPsec 驗證方法在數量和類型方面都有擴增。這是透過「已驗證網際網路通訊協定」(AuthIP) 的引進而達成，它是網際網路金鑰交換 (IKE) 通訊協定的延伸。AuthIP 可讓您製作連線安全性規則 (Windows Server 2008 中對於 IPsec 原則的別名)，要求通訊對等不僅使用電腦認證，也可選擇使用使用者或健康情況認證，彼此進行成功的驗證。如此產生的彈性使您不需要升級切換和路由基礎結構，便能設計出非常精緻的邏輯網路。

具有進階安全性的 Windows 防火牆
全新的「具有進階安全性的 Windows 防火牆」是以剛剛提到的 IPsec 功能為基礎建置而成。透過將 IPsec 連線安全性規則與防火牆篩選器合併成單一原則，全新的 Windows 防火牆為原則導向網路存取增添了新次元：更具智慧的驗證防火牆動作。
如 [圖 1] 所示，您現在為輸入或輸出防火牆篩選器定義應該採取的特定動作時，有三個選項可以選擇：允許、封鎖或僅在安全時允許。當選取 [僅允許安全連線] 作為行動時，Windows 防火牆會利用 IPsec 的主機對主機網路驗證功能，根據您所定義的原則來判斷是否應該許可要求連線的主機或使用者。防火牆規則可讓您規定哪些使用者、電腦和群組有權進行連線。值得一提的是，這可多添一層保護，補充現有作業系統和應用程式層級存取控制的不足。
[圖 1] 定義驗證防火牆規則
[圖 1] 定義驗證防火牆規則
說到現在，您應該逐漸了解為什麼透過中央原則將這些不同的網路安全性控制全部組織在一起，就能夠以更有效率且可調整的方法來管理網路存取。
回到 CRM 的例子：系統管理員可選取 [僅允許安全連線] 選項，為執行公司的 CRM 應用程式的伺服器，建立輸入規則 (透過程式的可執行檔或是服務連接埠)。透過相同的防火牆原則，系統管理員還可以指定只有「CRM 應用程式使用者」群組的成員，才能連線到這個網路應用程式，如 [圖 2] 所示。如果您把相同的概念擴大到網路上所有受管理電腦之間的所有網路通訊，等於是在原則導向網路存取策略上多加了一個「伺服器和網域隔離」層。
[圖 2] 系統管理員可以根據此原則指定能夠連線的對象
[圖 2] 系統管理員可以根據此原則指定能夠連線的對象

伺服器和網域隔離
隨著連線到各公司網路的來賓和其他未管理裝置的數量與日俱增，找出對策來隔離和保護您受信任的主機也變得日益重要。幸好，將受信任和受管理的電腦與網路上其他電腦相隔離的方法不可勝數。不過，您應該曉得當中許多選項隨著網路增長，成本會變高 (例如，安裝不同的實體纜線系統)，而且也難以維護 (例如，切換式架構的 VLAN)。
伺服器和網域隔離能夠提供比較符合成本效益又方便管理的方法，將您的環境分隔成邏輯隔離和安全的網路。如 [圖 3] 所示，基本上您使用的是之前提到的連線安全性規則 (也就是 IPsec 原則)，但是透過 Active Directory® 群組原則將它們對應到所有受管理電腦。如此產生的網路存取原則，會要求所有對等在進行任何通訊之前，先順利地通過彼此驗證。由於這項隔離是發生在第 3 層，因此強制這些存取控制會橫跨集線器、交換機和路由器，跨越實體和地理的界限。
[圖 3] 定義驗證需求以符合您的網路存取需要
[圖 3] 定義驗證需求以符合您的網路存取需要
要建立隔離的網路，應當根據所需的存取類型來隔離網路上的各部電腦。您可以定義原則，讓隔離網路上的電腦能夠起始與網路上所有電腦的通訊，包括那些不在隔離網路上的電腦。相反地，不在隔離網路上的電腦並無法起始與位在隔離網路上的電腦的通訊。事實上，位在隔離網路上的電腦將忽略隔離網路以外的電腦所發出的所有通訊要求。
您可使用 Active Directory 網域和網域成員資格來強制這種網路原則。網域成員電腦只會接受來自其他網域成員電腦通過驗證的安全通訊。您也可以選擇強制規定加密隔離網域內的所有通訊。
因為現有網路結構或應用程式的變更不大，所以伺服器和網域隔離提供了明顯的成本效益。這項解決方案利用原則所建立的保護層，不僅有助於防禦代價高昂的網路攻擊，以及預防未經授權存取信任的網域資源，同時也不需要根據網路拓樸中的變更而不斷進行維護。

網路存取保護
如前所述，伺服器和網域隔離解決方案可確保邏輯分隔網路上的各種電腦和伺服器。雖然這項解決方案有助於防止未經授權存取網路，但不能保證已授權電腦肯定不會造成安全性威脅。
網路存取保護 (NAP) 是 Windows Server 2008 的內建平台，它有助於確保連線到網路或在網路上通訊的電腦符合您所定義的系統健康情況的需求 (也就是，遵守安全性和原則規定)。
即使是經過授權的使用者也常成為網路上傳播病毒和間諜軟體的罪魁禍首。例如，當使用者外出渡假時，他的電腦可能無法符合系統管理員所設定的安全性需求。如果在他缺席期間發行的強制補充程式或簽章沒有安裝到電腦上，就可能造成嚴重的後果。
系統管理員的可用頻寬不足以追蹤每名連線到網路的使用者。這時候真正需要的是一項自動化工具，完全根據中央原則，驗證連線到網路的每部電腦是否符合健康情況，補救任何不符合規定的電腦。這也正是 NAP 的功效所在，為您的原則導向網路存取解決方案更添一層。
NAP 代理程式 — 不論是內建於用戶端電腦的 OS (例如在 Windows Vista® 中) 或是個別安裝的 (用於舊版 Windows 以及非 Windows 作業系統) — 會向網路原則伺服器 (NPS) 報告任何不合規定的問題，NPS 是內建至 Windows Server 2008 的原則引擎。您正是在 NPS 中定義每部裝置必須遵循的規範遵守原則。
雖然限制沒有通過循規檢查的裝置有其必要性，但確定它們可以選擇進行隔離和補救也很重要。NAP 可讓您選擇是要在開啟防火牆或防毒解決方案的情況下自動補救裝置，或是手動補救裝置，將它強制放入隔離區域。裝置在隔離區域可存取補救伺服器，取得最新的修補程式、更新和簽章。一旦使用者手動更新裝置之後，它便可在通過合格性驗證之後獲權存取網路。
隨著網路越來越普及，網路存取也變得簡便許多。然而，無論存取機制為何，確保裝置健康且符合規定也增加了額外的負荷。電腦可透過標準 802.1X 相容的交換機或無線存取點來存取網路，或是使用以 VPN 或終端機服務為主的遠端存取連線從家裡進行遠端連線。NAP 不僅可確保透過這些不同機制連線的電腦符合規定，也讓 DHCP 伺服器、802.1X 交換機、VPN 閘道、終端機服務閘道，或 802.1X 相容的無線存取點強制遵循規範。
[圖 4] 中的網路已經使用伺服器和網域隔離解決方案加以隔離。使用 NAP 搭配這類的隔離網路，可提供額外的好處來確保連線到網路的電腦符合健康要求。用戶端在啟動時會傳送它的健康狀態 (SoH) 給健康情況登錄授權 (HRA)，這是一部認證伺服器。HRA 會將 SoH 傳遞給 NPS 進行原則驗證。如果 SoH 有效，HRA 便會發給 NAP 用戶端一份健康認證，而該用戶端現在就可以起始 IPsec 式的安全通訊，存取安全資源。如果 SoH 無效，HRA 會告訴 NAP 用戶端如何修正它的健康狀態，並且不會發出健康情況憑證。NAP 用戶端無法起始與其他要求有健康情況憑證進行 IPsec 驗證的電腦的通訊。不過，NAP 用戶端可與補救伺服器通訊，讓它重回合格狀態。
[圖 4] 使用 IPSec 強制的網路存取保護
[圖 4] 使用 IPSec 強制的網路存取保護

總結
掌握了 Windows Server 2008 中這些新功能和特色的基本知識後，更重要的是深入了解每個元件是如何以舊版元件為基礎建置而成的。舉例來說，從傳統深度防禦策略轉換的催化劑，正是 Windows Server 2008 透過 Active Directory 群組原則所提供的基礎原則架構。
您將具備更堅固的工作基石來定義和部署原則導向網路存取解決方案，而不用捨棄現有的投資，這都要歸功於這項整合體驗。憑藉著將存取決策提升到更具邏輯、以原則為中心的層級，您便能夠視需要在「方便存取」和「提高安全性」之間取得平衡。
Microsoft 發行了相當豐富的指導方針，深入探討本文所討論的技術。我們建議您先查閱這些文章和逐步指南，實際體驗一下各種功能 (「網路資源」資訊看板中的連結可幫助您開始著手)。接下來，部署各個階段時，考慮先為下個階段打好堅固的基礎。
例如，根據＜具有進階安全性的 Windows 防火牆＞一節所述，為您的任務關鍵應用程式建立一組這類的驗證火牆規則。熟悉這個步驟之後，便可擴充連線安全性規則來隔離您的網路網域，然後在上面建立 NAP 層。實作原則導向網路存取策略的優點可能相當顯著，包括幫助您順應公司網路的善變世界。

Ian Hameroff 在 Microsoft 的安全性和存取產品行銷 (Security and Access Product Marketing) 小組擔任資深產品經理，他負責 Windows Server 平台網路技術的產品管理和行銷工作。Ian 積極推動 Windows Server 網路和解決方案的上市策略，把焦點放在重要的安全性和網路行動，例如伺服器和網域隔離、可調整的網路，以及採納 IPv6。
Amith Krishnan 在 Microsoft 的安全性和存取產品行銷 (Security and Access Product Marketing) 小組擔任資深產品經理，他負責 Windows Server 網路和安全性行動的產品管理和行銷工作，例如網路存取保護和安全無線。他也發展了上市策略，並推廣大眾對這些解決方案的認知。


 特別報導：Windows Server 2008: 透過伺服器管理員設定角色
特別報導：Windows Server 2008 Byron Hynes

透過伺服器管理員設定角色
摘要:
  • 角色和功能之間的差異
  • 伺服器管理員的功用
  • 使用精靈
  • 從命令列管理角色和功能

少就是多，似乎是經常圍繞在 Windows Server 2008 的一個主題。這並不是指不必要地刪去功能，而是簡化和釐清角色與工具，讓您只安裝您所需要的 — 不多不少。伺服器管理員
這個概念在 Windows Server® 2008 中是很重要的一環。
它有兩個層面：首先是伺服器角色和功能這個重要的概念，它們是 Windows Server 2008 的建置區塊。其次則是伺服器管理員工具本身。這項工具不僅取代了 Windows Server 2003 中所使用的數項工具，也加入了更多功能，讓像您一樣忙碌的系統管理員可以更迅速更輕鬆地完成更多工作。

角色和功能
如果您一直有注意 Windows Server 2008，可發會發現一些之前 Windows® 內容裡面沒用過的名詞，例如「工作負載」和「角色」。一開始我將先解釋這些詞彙對 IT 專家的意義何在。
最初開發 Windows Server 2008 時，我們花了很多時間了解使用者如何使用我們的伺服器產品 (附帶一提，這項工作一直沒有間斷過)。我們發現通常大家部署我們的伺服器，是為了做特定的事。聽起來好像不難懂，但是知道有人不只是為了想有一部伺服器才買伺服器，有些人還是很驚訝。更重要的是，他們部署伺服器並不是為了完成各種工作，而是只讓伺服器做一些特定的事。當然也有例外的情形，但是對大多數人來說，伺服器主要是在執行特定的功能。
為了因應這些出乎意料的發現，我們把「特定的事」分成各種類別，稱為工作負載。比方說，資料庫工作負載和應用程式伺服器工作負載。由於工作負載的範圍相當廣泛，而且有時候也不是很明確，因此我們在工作負載內建立了子類別，稱作角色。角色是指伺服器被認定要做的一件非常特定的事。您不妨想想看您 (和貴公司的使用者) 是如何看待您網路上的伺服器。如果您跟大多數使用者一樣，那麼大概會把它們視為檔案伺服器、網域控制站、列印伺服器、網頁伺服器等等吧。就因為大家多半傾向於這樣看待伺服器，因此 Windows Server 2008 也採取同樣的方法來處理角色。
廣義來說，Windows Server 2008 中的角色有三大類別：身分識別和存取管理 (那些被視為 Active Directory® 一部分的角色)、基礎結構 (包括檔案伺服器、列印伺服器和 DNS 等等)，以及應用程式 (例如網頁伺服器角色和終端機服務)。
Windows Server 2008 大概隨附了 17 種伺服器角色 (這些包括像是 Active Directory 憑證服務、網路原則和存取服務，以及 Windows Server Virtualization 等角色)。還有一些可供下載的其他角色，例如串流處理媒體角色。
每個角色其實都值得另闢單元獨立介紹，當中有些會在本期的《TechNet Magazine》中詳細探討，有些過去已經介紹過，而有些則還沒有討論過。您應該從 technet2.microsoft.com/windowsserver2008/en/servermanager/default.mspx 提供的資訊開始依序探索每一種。
一開始部署 Windows Server 2008 時，必須選擇每部伺服器上要安裝哪些角色。這種以角色為基礎的部署方式，是有效利用 Windows Server 2008 以及靈活部署資源的重要概念。
角色清單並沒有包括像是 BitLockerTM 磁碟機加密和網路負載平衡 (NLB) 等項目。這是因為這些常用的功能並不是使用者購買系統的用意。另一方面說來，角色確實代表了購買系統所要執行的工作。例如，使用者購買伺服器並不是為了實作負載平衡，而是為了把它作為網站使用。NLB 也許是網頁伺服器不可或缺的一部分，但這並不是伺服器存在的目的。
系統管理員應該選擇需要安裝的功能，而不是安裝伺服器的全部功能，並讓它們處於作用中狀態 ([圖 1] 所列的是 Windows Server 2008 所包含的功能)。只包含需要使用的角色和功能，可以提升穩定性和安全性。因為您無須擔心沒有安裝的功能或角色會耗用到資源，也不必為疑難排解未安裝的功能或保護未安裝的角色安全而煩心。
Figure 1 Windows Server 2008 內含的功能 (Close Figure 1)

Microsoft .NET Framework 3.0 功能
BitLocker™ 磁碟機加密
BITS 伺服器延伸
連線管理員系統管理組件
桌面體驗
群組原則管理
網際網路列印用戶端
Internet Storage Name Server (iSNS)
LPR 連接埠監視器
訊息佇列
多重路徑 I/O
對等名稱解析通訊協定
高品質 Windows 音訊視訊體驗 (qWave)
遠端協助
遠端伺服器管理工具
卸除式存放裝置管理員
RPC Over HTTP Proxy
Services for NFS
SMTP 伺服器
SAN 存放管理員
簡單 TCP/IP 服務
SNMP 服務
UNIX 應用程式子系統
Telnet 用戶端
Telnet 伺服器
簡單式檔案傳輸通訊協定 (TFTP) 用戶端
容錯移轉叢集
網路負載平衡
Windows Server Backup
Windows 系統資源管理員
Windows Internet Naming Service (WINS) 伺服器
無線區域網路服務
Windows Internal Database
Windows PowerShell
Windows 處理程序啟動服務
這個概念的典型範例是 Server Core 安裝選項。Server Core 已超出本文討論範圍，但您可以拿掉不必要的角色和功能，甚至不將它們複製到硬碟或者不供使用者使用，看到這種邏輯的延伸。標準安裝和 Server Core 安裝之間最主要的差別在於，標準安裝包含了隨時安裝其他角色所需的資源，而且它支援所有的角色。而 Server Core 的殼層則是連 GUI 都沒有，而且它支援的角色有限。

伺服器管理員
Windows Server 2008 中全新的「伺服器管理員」主控台，使得管理和保護企業當中多個伺服器角色的工作更加輕鬆。伺服器管理員基本上是經過擴充的 Microsoft® Management Console (MMC)，它可讓您檢視和管理所有攸關伺服器產能的資訊和工具。它還提供一個來源，來管理伺服器的身分和系統資訊，顯示伺服器狀態，識別伺服器角色設定的問題，以及管理伺服器上所安裝的所有角色 (要注意的是，它也取代了 Windows Server 2003 內含的幾項功能，例如「管理您的伺服器」、「設定您的伺服器」，以及「新增或移除 Windows 元件」)。
在某些情況下，伺服器管理員也可以減少系統管理員在部署伺服器之前執行「安全性設定精靈」(SCW) 的必要。伺服器管理員會設定您的伺服器，讓任何安裝的角色都能順利操作 — 例如，自動設定 Windows 防火牆。不過在一些情況下，像是角色經過新增而後又移除，或是當您想要進一步掌控確實的安全性設定時，SCW 仍然是相當實用的工具。如需詳細資訊，請參閱 Jesper Johansson 在本期發表的《安全性監控》專欄：＜在 Windows Server 2008 上使用 SCW＞(microsoft.com/technet/technetmag/issues/2008/03)。
在 Windows Server 2008 上工作時，我們仔細探究了我們期望系統管理員怎麼執行工作。我們發現工作和精靈如何幫助您更輕鬆的完成工作，也發現有時候您浪費太多時間在切換工具上。通常我們會為 Windows Server 2008 設立一個重要的設計目標 — 尤其是伺服器管理員 — 讓系統管理員從單一位置執行多類型的工作，進而讓伺服器管理工作更有效率。也就是說，透過伺服器管理員，您可以：
  • 檢視和變更安裝在伺服器上的伺服器角色和功能。
  • 執行與伺服器相關的管理工作，例如啟動或停止服務和管理本機使用者帳戶。
  • 執行與伺服器上安裝的角色相關的管理工作。
  • 檢查伺服器狀態、識別重大事件，以及分析設定問題。
  • 使用 GUI 或命令列來安裝或移除角色、角色服務和功能。
伺服器管理員主控台在小小的空間中呈現了大量資訊和功能。[圖 2] 顯示伺服器管理員主控台上的 [檔案服務] 角色節點。主控台的主視窗包含四個可摺疊的區段：伺服器摘要、角色摘要、功能摘要，以及資源與支援。
[圖 2] 顯示 [檔案服務] 角色的伺服器管理員主控台。
[圖 2] 顯示 [檔案服務] 角色的伺服器管理員主控台。
[伺服器摘要] 區段包括兩個子區段，即 [電腦資訊] 和 [安全性資訊]。[電腦資訊] 子區段會顯示電腦名稱、網域、本機系統管理員帳戶名稱、網路連線，以及作業系統的產品識別碼。您也可以在此處使用命令來編輯此資訊。[安全性資訊] 子區段會顯示 Windows 自動更新和 Windows 防火牆是否已啟用，以及 Windows Internet Explorer® 增強安全性設定是否已開啟 (針對系統管理員或其他使用者)。同樣地，您也可以使用命令來編輯這些設定和檢視所有的進階選項。
[角色摘要] 區段包含一份表格，指出伺服器上安裝了哪些角色。此區段中的命令可讓您新增或移除角色，或前往較為詳細的主控台來管理特定的角色。
[功能摘要] 區段也提供一份表格，顯示伺服器上安裝了哪些功能。跟您預期的一樣，您可以在此處新增和移除功能。
最後，[資源與支援] 區段會指明「客戶經驗改進計畫」和「Windows 錯誤報告」中的伺服器參與者，並讓您在意見反應計畫中設定伺服器的參與者。您可以在 Windows Server TechCenter 和技術庫中快速找出其他相關的說明和研究主題。

角色資訊
每個安裝的角色在伺服器管理員中都有自己的首頁。針對這些各個角色首頁，[資源與支援] 區段會提供一個功能表，內含運用角色或角色各部分的建議設定或案例。每項建議的設定都會連結到一份說明檢查清單，帶領您逐步完成為指定角色提供最佳體驗所需執行的工作。
伺服器管理員有一項特別不錯的優點是，它會顯示重要資訊和命令，把它們放在您需要它們的地方。比方說，當您查看 [檔案服務] 角色首頁時，您馬上會看到與該角色相關的任何事件，而不用啟動事件檢視器或建構篩選器。
不過，有些角色可能會產生上百個事件，因此您也可以從角色首頁建立自訂篩選器。您可以在旁邊的功能表上選擇 [篩選事件]，然後進一步縮小要顯示的事件範圍。這個對話方塊並未提供事件日誌檢視器中所有可用的篩選選項，但是它的確可以讓您快速地把焦點放在與這個特定角色相關的事件上，而不必擔心過濾其他事件。
同樣地，您可以查看系統服務 (此角色所需、但屬於整個系統的服務) 和角色服務 (此角色專屬的服務) 的狀態。對於某些角色，您可以選擇角色的哪些部分能夠使用，以及選擇安裝不同角色服務組。您還可以直接從角色首頁啟動和停止服務，以及指定哪些服務應該作為角色的系統服務加以監視。

使用精靈
設計良好的精靈不但可以節省您的時間，還可以避免錯誤發生，這些優點在處理偶爾執行的工作時更加明顯。舊版的 Windows Server 要求您使用「設定您的伺服器」、「管理您的伺服器」和「新增或移除 Windows 元件」來變更安裝在伺服器上的元件。除了依存性檢查有限之外，「新增或移除 Windows 元件」還要求您必須先安裝一個角色之後，才能新增另外一個角色。
現在，使用伺服器管理員精靈，您就可以在同一個工作階段安裝或移除多個角色、角色服務和功能。但是更重要的是，依存性檢查會跟伺服器管理員精靈同時執行，以確保所有必要的角色和角色服務皆已安裝。而且角色會以預設的建議安全性設定來設定 — 但是您可以使用「安全性設定精靈」來修改安全性設定。其實您可以在其中一個伺服器管理員精靈的一個工作階段，就完全做好部署的準備。
伺服器管理員包含許多精靈，包括「新增角色精靈」、「新增角色服務精靈」、「新增功能精靈」、「移除角色精靈」、「移除角色服務精靈」，以及「移除功能精靈」等。
就跟您猜的一樣，「新增角色精靈」是用來新增角色到伺服器，它會自動檢查角色之間的依存性，並確認每個選定的角色都已安裝所有必要的角色和角色服務。對於某些角色 (例如終端機服務和 Active Directory 憑證服務)，「新增角色精靈」也提供設定頁，讓使用者指定要如何將角色設定為安裝程序的一部分。[圖 3] 顯示「新增角色精靈」的 [選取伺服器角色] 一頁。
[圖 3] 使用「新增角色精靈」來選取伺服器角色。
[圖 3] 使用「新增角色精靈」來選取伺服器角色。
大多數角色都包含多個子元素，伺服器管理員稱之為角色服務。複雜的角色一旦安裝妥當，就可以使用「新增角色服務精靈」，將角色服務新增到角色中。
跟「新增角色精靈」類似，「新增功能精靈」也可讓您安裝功能。您可以在同一個工作階段新增一或多個角色到系統中。
而「移除角色精靈」正如其名，可讓您從伺服器移除角色。此精靈會自動檢查依存性，以確保沒有要移除的角色所需的任何角色或角色服務不會被移除。您也可以使用「移除角色服務精靈」，從已安裝的角色移除角色服務。另一方面，「移除功能精靈」可讓您移除系統中的功能。

命令列
有時候我會碰到討厭精靈的 IT 專家。雖然有些 IT 專家很有意見，但也有很多 IT 專家喜歡使用命令列。它可以做簡單的重複工作和指令碼編寫，的確是比較方便。伺服器管理員提供一個命令列工具，亦即 ServerManagerCmd.exe，它比早期的 ocsetup 和 pkgmgr 工具明顯簡單得多。您可以使用 ServerManagerCmd.exe 來安裝和移除角色、角色服務和功能。而且使用簡單的參數就可以列出所有的角色、角色服務和功能 — 同時包括那些已經安裝和那些可供安裝的項目。
這個命令列可方便您執行自動安裝，以及移除角色、角色服務和功能。您還可以使用命令列在一個命令執行個體中安裝或移除單一角色、角色服務或功能，或者使用 XML 回應檔案搭配伺服器管理員命令，在同一個命令執行個體中新增或移除多個角色、角色服務和功能。而且您可以檢視作業的記錄，以及執行查詢來列出那些已經安裝和可供安裝的角色、角色服務和功能。
這個命令列工具特別值得一提的是 –whatif 參數，它可讓您查看如果安裝指定角色的話，伺服器會產生什麼變化。譬如，[圖 4] 便顯示了執行下列命令的結果：
ServerManagerCmd -install Web-Server
-allsubfeatures -whatif
當然您可以將輸出存成檔案做進一步的分析。
[圖 4] 使用 –whatif 參數來查看伺服器可能產生的變化。
[圖 4] 使用 –whatif 參數來查看伺服器可能產生的變化。
若要深入探索 ServerManagerCmd.exe 的細節和語法，請參閱＜伺服器管理員概觀附錄＞(英文)，網址是 go.microsoft.com/fwlink/?LinkId=107113。
在此特別感謝 Gaby Kaplan 對本文所作的貢獻。

Byron Hynes 是 Microsoft 企業和合作夥伴小組 (Enterprise and Partner Group) 的企業技術策略專家。他曾服務於 Windows Server 部門，擔任過顧問和培訓講師。您可以透過電子郵件與他連絡：bhynes@microsoft.com。


 特別報導：Windows Server 2008: 透過 System Center 部署 Windows Server 2008
特別報導：Windows Server 2008 Tim Mintner

透過 System Center 部署 Windows Server 2008
摘要:
  • Configuration Manager 部署功能
  • 建立和自訂伺服器工作序列
  • 新增伺服器角色
  • 設定電腦特有的變數

而隨著 System Center Configuration Manager 2007 的發行，伺服器系統管理員現在也可以利用用戶端系統管理員使用好幾年的
作業系統部署工具了。在過去，伺服器系統管理員常常是使用 CD 或 DVD 手動安裝 Windows Server®，然後花好幾個小時的時間設定伺服器。有些系統管理員甚至還建立 unattend.txt 檔案，說不定還使用遠端安裝服務 (RIS)，藉此建置自動安裝常式來自動化安裝程序，而免去親自現身伺服器主控台的必要。更老道的系統管理員則利用 Windows Server 2003 的 Automated Deployment Services (ADS)，徹底自動化整個伺服器組建程序。而在 Windows Server 2008 中，伺服器的安裝程序則經歷了自 Windows NT® 4.0 以來的首次大幅變動。
Windows Server 2008 部署採用的基礎部署工具和技術與 Windows Vista® 所採用的相同。也因為這項變動，伺服器系統管理員在過去所使用的工具將有需要更新或置換。RIS 已被 Windows® 部署服務 (WDS) 取代，而 ADS 並不支援 Windows Server 2008 部署。如需有關伺服器和用戶端部署在技術和工具方面的變動，請參閱＜您不可不知關於部署 Windows Vista 的十大事項＞，網址是 technetmagazine.com/issues/2006/11/Deployment。
既然用於部署 Windows Server 2008 和 Windows Vista 的基礎技術是一樣的，要是能夠使用相同的工具並運用相同的知識來部署兩者該有多好？System Center Configuration Manager 和 Microsoft® Deployment 現在就提供這樣的工具集。本文將探討您要如何使用 Configuration Manager 搭配 Microsoft Deployment，開始部署 Windows Server 2008。

透過 Configuration Manager 部署作業系統 (OS)
在開始部署 Windows Server 2008 之前，先來看一下 Configuration Manager 的 OS 部署功能。當您啟動 Configuration Manager 主控台，然後前往 [電腦管理 (Computer Management)] 時，您會發現一個新的 [作業系統部署 (Operating System Deployment)] 登陸區域，如 [圖 1] 所示。
[圖 1] [作業系統部署 (Operating System Deployment)] 頁面
[圖 1] [作業系統部署 (Operating System Deployment)] 頁面
您可以在這個畫面查看您環境內作業系統部署的快速摘要，而且可以瀏覽至其他作業系統部署節點，例如 [管理工作序列 (Manage Task Sequences)] 和 [管理開機映像 (Manage Boot Images)]。您會看到一份 Web 註解報告，供您檢視部署的狀態和部署環境的健康情況。[資源 (Resource)] 下方另外還提供快速說明參考，可將您連結到作業系統部署的說明文件。
如果您注意瀏覽窗格中的節點下方，可以看到執行 OS 部署必須設定的所有項目。以下是這些項目的摘要：
開機映像 包含一份根據部署過程中會用到的 Windows PE 2.0 所列出的開機映像清單。
電腦關聯 主要是用於用戶端部署，將現有的電腦對應到新機器，以便安全地管理使用者狀態。同時它也包含一個精靈，可以將不明的電腦帳戶匯入至 Configuration Manager 資料庫，以供部署裸機 (bare metal) 伺服器。
作業系統映像 包括一份內含伺服器和用戶端部署所用之自訂 Windows Imaging Format (WIM) 映像的套件清單。
作業系統安裝套件 存放內含 OS 部署所用之完整來源檔案組的套件，例如 Windows Server 2008 的來源檔案。
工作序列 包含多個步驟，每一個步驟都各自定義不需使用者互動就會執行的命令列動作。工作序列是作業系統部署程序背後的推手，而且可以提供部署和設定作業系統所需的所有步驟。
驅動程式 管理不同伺服器和用戶端電腦模型所需的所有驅動程式的中央存放庫。
驅動程式套件 包含一或多組驅動程式，可發佈到 Configuration Manager 發佈點，而且會用於部署伺服器或用戶端電腦的程序中。
對 Configuration Manager 的作業系統部署功能有基本的了解後，讓我們把需要執行 Windows Server 2008 部署所需的一切拼湊起來。

做好部署 Windows Server 2008 的準備
什麼是 Microsoft Deployment？
Microsoft Deployment 是新一版的 Business Desktop Deployment (BDD) 2007，它將桌上型電腦和伺服器部署兩者所需的工具和程序，一同放入一個共同的部署主控台，並收集各種指引說明。這項產品使用 System Center Configuration Manager 2007 為桌上型電腦和伺服器添增了部署和工作序列等新功能。
您可以在 Microsoft 下載中心取得 Microsoft Deployment，並且在 Microsoft Technet 上的桌上型電腦部署和伺服器部署 TechCenter 中，線上閱讀指引材料。如需這些地方的連結和其他相關內容的詳細資訊，請造訪 microsoft.com/deployment。

若要使用 Configuration Manager 部署 Windows Server 2008，必須具備下列項目：
Microsoft Deployment Toolkit (MDT) 提供用於部署伺服器和用戶端作業系統的工具和最佳作法說明文件。它與 Configuration Manager 主控台直接整合，讓部署程序更有效率。您可以從 microsoft.com/deployment 下載 Microsoft Deployment Toolkit。
自訂開機映像 Configuration Manager 提供以 Windows PE 2.0 為基礎的 32 位元和 64 位元開機映像，而且還包含對 VBScript、Windows Management Instrumentation (WMI) 和 HTML 應用程式 (HTA) 的支援。然而，如果您希望部署程序向不同的 SQL Server® 資料庫要求資訊，就需要有具備 ADO 支援的自訂開機映像。
作業系統安裝套件 包含 Windows Server 2008 DVD 裡面的來源檔案。
MDT 套件 包含 Microsoft Deployment Toolkit 所需的所有指令碼和支援檔案。
Configuration Manager 用戶端套件 包含用於 Configuration Manager 用戶端的安裝檔案。
設定套件 包含用於自動安裝 Windows Server 2008 的 unattend.xml 檔案，以及與 Microsoft Deployment Toolkit 搭配使用的 customsettings.ini 檔案。
Sysprep 套件 僅用於部署 Windows Server 2003 或 Windows XP 時，並且提供準備電腦以擷取作業系統映像所需的 sysprep 檔案。
驅動程式 包含特定伺服器模型所需的所有驅動程式。
存放套件來源和擷取的 WIM 的網路共用 在存放上列套件和自訂 WIM 映像的通用命名慣例 (UNC) 位置。
要建立這些套件看起來似乎要花許多功夫，但是如果使用 Microsoft Deployment Toolkit，只需要一個精靈就能幫您建好所有的套件。
若要透過 Configuration Manager 使用 Microsoft Deployment Toolkit，必須將它安裝在安裝 Configuration Manager 管理主控台的同一部電腦上。接著再前往 [開始] | [所有程式] | [Microsoft Deployment Toolkit]，選取 [設定 ConfigMgr 整合 (Configure ConfigMgr Integration)]，然後指定 Configuration Manager 站台伺服器的名稱及站台代碼，再按 [下一步 (Next)]。這麼一來就會在 Microsoft Deployment Toolkit 所提供的 Configuration Manager 主控台中加入延伸模組。現在當您啟動 Configuration Manager 主控台，然後以滑鼠右鍵按一下 [工作序列 (Task Sequences)] 時，就會看到新選項，如 [圖 2] 所示。
[圖 2] 匯入 Microsoft Deployment 工作序列
[圖 2] 匯入 Microsoft Deployment 工作序列
請選擇 [匯入 Microsoft Deployment 工作序列 (Import Microsoft Deployment Task Sequence)]，然後遵循下方步驟，建立必要的套件和 Windows Server 2008 工作序列：
  1. 在 [選取範本 (Choose Template)] 畫面上，選取 [伺服器工作序列 (Server Task Sequence)]，然後按 [下一步 (Next)]。
  2. 提供工作序列名稱和描述工作序列的註解，再按 [下一步 (Next)]。
  3. 填寫要加入網域或工作群組的詳細資料，包括將伺服器加入網域的使用者帳戶認證。接著填寫組織資訊和產品金鑰，並且提供要擷取之自訂 WIM 映像的 UNC 路徑和檔名。然後再提供連接到存放 WIM 檔案之網路共用所用的使用者認證，再按 [下一步 (Next)]。
  4. 在 [開機映像 (Boot Image)] 畫面上，選擇建立新開機映像套件，並提供要作為該開機映像套件之套件來源目錄使用的網路位置，然後按 [下一步 (Next)]。
  5. 提供開機映像套件的套件名稱、版本資訊和註解，然後按 [下一步 (Next)]。
  6. 選取平台 (x86 或 x64)、ADO 支援、任何您所需的選用字型、用於開機映像的自訂背景 (若有必要的話)，以及任何要包含在 Windows PE 映像中的其他資料夾，然後按 [下一步 (Next)]。
  7. 在 [MDT 套件 (MDT Package)] 畫面上，選擇建立新的 Microsoft Deployment Toolkit 檔案套件，並提供要作為該套件來源使用的 UNC 路徑，然後按 [下一步 (Next)]。
  8. 提供 MDT 套件的名稱、版本、語言、製造商和註解，然後按 [下一步 (Next)]。
  9. 對於 OS 映像，選擇建立新 OS 安裝套件，提供 Windows Server 2008 來源檔案的路徑，以及要作為該套件來源目錄使用的 UNC 位置，然後按 [下一步 (Next)]。
  10. 對於用戶端套件，選擇建立新 Configuration Manager 用戶端套件，然後按 [下一步 (Next)]。
  11. 對於設定套件，選擇建立新設定套件，並提供要作為設定套件之套件來源使用的 UNC 位置，然後按 [下一步 (Next)]。
  12. 對於 Sysprep 套件，選擇 [不需要 Sysprep 檔案 (No Sysprep Files required)]，然後按 [下一步 (Next)]。
精靈現在會建立開機映像及所有套件。如果您展開 [套件 (Packages)]、[開機映像 (Boot Images)]、[作業系統安裝套件 (Operating System Install Packages)] 和 [工作序列 (Task sequences)]，就可以看到所有已建立的套件和工作序列。建好所有這些套件之後，應該將它們部署到發佈點。
除了這些套件之外，您通常還需要新增特定伺服器硬體的驅動程式。方法是將驅動程式新增至 Configuration Manager 驅動程式存放區，然後建立要在部署過程中使用的驅動程式套件。
若要將驅動程式匯入驅動程式目錄並建立驅動程式套件，請前往 Configuration Manager 主控台，在 [驅動程式 (Drivers)] 按一下滑鼠右鍵，選取 [匯入 (Import)]。然後選擇匯入指定 UNC 路徑中的所有驅動程式，輸入包含您為特定伺服器模型收集之所有驅動程式的 UNC 路徑。完成這個步驟之後，再按 [下一步 (Next)]。
接著在 [驅動程式詳細資料 (Drivers Details)] 頁面上，選取您要匯入的 INF 檔案，再選擇是否要為驅動程式指定類別 (類別可依特定伺服器模型類型而定)。按了 [下一步 (Next)] 之後，在 [新增驅動程式至套件 (Add Drivers to Package)] 頁面上，再按一下 [新增套件 (New Package)]，指定驅動程式套件的名稱、註解以及要作為套件來源使用的 UNC 路徑，再按 [確定 (OK)]。然後選取 [完成時更新發佈點 (Update distribution points when finished)]，再按 [下一步 (Next)]。
接著在 [新增驅動程式至開機映像 (Add Driver to Boot Images)] 頁面上，選取之前建立的開機映像，再勾選 [完成時更新散佈點 (Update distribution points when finished)] 方塊，然後按 [下一步 (Next)]，最後在摘要頁上再按 [下一步 (Next)] 完成精靈、匯入驅動程式，以及建立驅動程式套件。

編輯工作序列
完成建立安裝 Windows Server 2008 所需的所有套件和工作序列後，可能要在預設工作序列中自訂幾項動作。如果要修改工作序列，請在它上面按一下滑鼠右鍵，然後選取 [編輯 (Edit)]。接著會出現 Microsoft Deployment Server 工作序列範本，如 [圖 3] 所示。
[圖 3] 您可以自訂預設的工作序列
[圖 3] 您可以自訂預設的工作序列
以高階的角度來看，工作序列是一系列稱為工作的命令列項目，各自會執行特定的作業。每項工作可能有特定的屬性可以設定，而且還可在 [選項 (Options)] 索引標籤上設定條件，來評估是否應該執行某些特定工作。例如，工作序列中的第一個工作有幾個設定成像 [圖 4] 所示的條件。
[圖 4] 您可以在 [選項 (Options)] 索引標籤中停用工作或設定它的條件
[圖 4] 您可以在 [選項 (Options)] 索引標籤中停用工作或設定它的條件
在本例中，因為勾選了 [停用此步驟 (Disable this step)] 核取方塊，所以工作預設為停用。如果工作已啟用，它也只會根據目前指定的條件來執行。
在部署 Windows Server 2008 之前，還有幾項較常見的工作您可能需要修改，其中包括格式化和分割磁碟、驗證、套用作業系統映像和套用網路設定。
「格式化和分割磁碟 (Format and Partition Disk)」工作可讓您定義要如何為伺服器部署建立磁碟分割結構。預設值是建立一個磁碟分割，它會使用第一個磁碟上的所有空間。如果不想使用這種設定來部署伺服器，可以變更這個設定來指定您想要使用的磁碟配置。
「驗證 (Validate)」工作可讓您檢查一些基本需求，例如記憶體和處理器速度等。假設貴公司的伺服器部署標準是要具備 2GB 的記憶體，您可以將它設為必備條件，而且伺服器必須達到這項需求才能繼續安裝。
「套用作業系統映像 (Apply Operating System Image)」工作容許您設定要部署的特定映像。比方說，當使用 Windows Server 2008 的來源檔案時，您可以選擇部署 Server Standard、Server Enterprise、Server Datacenter、Server Standard Core、Server Enterprise Core，以及 Server Datacenter Core。您必須選取適當的映像來使用，而這得視您要部署的 Windows Server 2008 版本而定。
「套用網路設定 (Apply Network Settings)」工作可讓您設定網路卡的靜態 IP 位址，以及變更加入網域或工作群組的設定。雖然您可以使用這個工作來設定靜態 IP 位址，但是此舉會限制這個工作序列只能用於一部伺服器。稍後我們要告訴您如何使用變數來設定靜態 IP 位址，以便將單一工作序列用於多部伺服器。

安裝和設定伺服器角色
目前為止，您已經學會如何修改工作序列來設定與安裝作業系統相關的項目。不過，透過 Microsoft Deployment Toolkit，您還可以安裝和設定伺服器角色。例如，您可以設定工作序列將 Windows Server 2008 部署到會執行唯讀網域控制站和檔案伺服器的分公司伺服器。
為了讓這個動作順利完成，請在工作序列編輯器中，瀏覽到 [安裝軟體 (Install Software)] 工作，然後選取 [新增 (Add)] | [MDT] | [安裝角色和功能 (Install Roles and Features)]。接下來，在新建的 [安裝角色和功能 (Install Roles and Features)] 工作中，同時勾選 [Active Directory 網域控制站 (Active Directory Domain Controller)] 和 [檔案伺服器 (File Server)]，如 [圖 5] 所示。
[圖 5] 安裝角色和功能
[圖 5] 安裝角色和功能
現在您必須設定唯讀網域控制站的設定。請在工作序列編輯器中，選取 [新增 (Add)] | [MDT] | [設定 ADDS (Configure ADDS)]。然後在新建的 [設定 ADDS (Configure ADDS)] 工作中，選擇建立新的唯讀網域控制站複本，並指定下列屬性的值：
  • 現有的網域 DNS 名稱
  • 複寫來源網域控制站
  • 帳戶
  • 修復 (安全模式) 密碼

使用變數
您必須瞭解工作序列提供的最強功能之一，是讓使用者在部署期間，動態地將工作序列中幾乎所有的屬性設定為變數。Configuration Manager 和 Microsoft Deployment 同時提供了幾種機制來設定和使用變數。
Configuration Manager 容許您將變數設定為電腦變數、集合變數，或直接在工作序列中設定變數。Microsoft Deployment 則讓您透過 customsettings.ini 檔案、後端資料庫或 Web 服務來設定變數。您可以在 technet.microsoft.com/bb632442.aspx 找到一份可設定的變數清單。
讓我們以在特定伺服器上設定靜態 IP 位址為例。前文提到您可以直接在「套用網路設定 (Apply Network Settings)」工作的工作序列內設定靜態 IP 位址，但這並不是最理想的作法，因為它只能讓那個工作序列用於一部特定的伺服器。
您要做的不是在工作序列設定 IP 位址，而是透過變數來設定 IP 位址。下面我們將逐步說明如何將靜態 IP 位址設為電腦變數：
  1. 在 [Configuration Manager] 主控台中，瀏覽至 [System Center Configuration Manager] | [站台資料庫 (Site Database)] | [電腦管理 (Computer Management)] | [集合 (Collections)]。
  2. 若要為電腦指派依電腦而異的變數，找出並展開電腦所屬的集合，請以滑鼠右鍵按一下該電腦、按一下 [內容 (Properties)]，再按一下 [變數 (Variables)] 索引標籤。
  3. 若要指定自訂變數及其相關值，請按一下 [新增 (Add)] 圖示，開啟 [<New> 變數 (<New> Variable)] 對話方塊。
  4. 在 [<New> 變數 (<New> Variable)] 對話方塊中，必須指定變數的名稱，以及在 Configuration Manager 2007 主控台中是否看得到這個變數。對於靜態 IP 位址，您應該加入下列變數：
  • OSDAdapter0IPAddressList
  • OSDAdapter0SubnetMask
  • OSDAdapter0Gateways
  • OSDAdapter0DNSServerList
設定的變數看起來應該像 [圖 6] 所示。
[圖 6] 使用電腦變數來設定靜態 IP 位址
[圖 6] 使用電腦變數來設定靜態 IP 位址

部署工作序列
現在您已經完全設定好工作序列和變數，可以準備部署 Windows Server 2008 了。Configuration Manager 提供了好幾種機制用來部署作業系統，例如開機前執行環境 (PXE)、工作序列可開機媒體、獨立媒體，以及透過現有機器的標準通告。
為了簡單起見，我將概述如何建立可開機媒體的工作序列。請在 Configuration Manager 主控台中，瀏覽至 [工作序列 (Task Sequences)]，從 [動作 (Actions)] 功能表選取 [建立工作序列媒體 (Create Task Sequence Media)]。然後在 [選取媒體類型 (Select Media Type)] 頁面上選取 [可開機媒體 (Bootable Media)]，再按 [下一步 (Next)]。接著在 [媒體類型 (Media Type)] 頁面上指定 CD 作為媒體類型，並指定媒體檔案的名稱。您可以在 [安全性 (Security)] 頁面上指定密碼來保護媒體，或者指定自我簽署認證。最後是指定開機映像。完成這一步之後，就會進入 [確認 (Confirmation)] 頁面，請在這裡按一下 [完成 (Finish)]。如需有關如何使用這種機制和其他機制進行部署的詳細指示，請參閱 technet.microsoft.com/bb681029.aspx 上的說明文件。

總結
從本文中，您瞭解到如何使用 System Center Configuration Manager 和 Microsoft Deployment 來部署 Windows Server 2008、新增諸如檔案伺服器和網域控制站等角色、設定電腦特有的變數，以及使用工作序列可開機媒體來部署作業系統。雖然實際的伺服器部署可能要複雜得多，但本文應該還是能協助您著手統一伺服器和用戶端部署工具。

Tim Mintner 是 Microsoft 解決方案加速器 (Solutions Accelerator) 小組的資深軟體開發工程師，主重 Microsoft Deployment Toolkit。他協助客戶部署 Microsoft 作業系統已有 14 年以上的經驗。您可以透過電子郵件與 Tim 聯絡：timintner@microsoft.com。


 特別報導：Windows Server 2008: Windows Server 2008 中的稽核與規範
特別報導：Windows Server 2008 Rob Campbell 和 Joel Yoker

Windows Server 2008 中的稽核與規範
摘要:
  • 提高規範的重要性
  • 了解您環境內的變動
  • 稽核安全性事件的挑戰
  • 稽核的技術層面

在資訊科技的世界裡，變動是一種常態。如果您的 IT 組織跟其他大多數 IT 組織一樣，那麼想必您是面臨著與日俱增的壓力，不得不了解您環境內所發生的變更。隨著 IT 環境的複雜度和規模的擴增，
系統管理方面的失誤和資料不慎暴露所產生的衝擊也跟著加大。當今社會對這類的事件負責的呼聲高漲，因此各公司現在也必須盡法律責任來保衛資訊的安全。
這樣的結果，使得稽核您環境內的變更就變得很重要了。為什麼呢？稽核提供了各種方法來了解和管理當今大型高分散式 IT 環境的變動。在本文中，我們將探討大多數公司所面臨的常見挑戰、IT 當中規範和法規的全貌、在 Windows® 中進行稽核的一些基本原理，以及 Windows Server® 2008 和 Microsoft® System Center Operations Manager 2007 Audit Collection Services (ACS) 的功能如何補充不足，來達成完備的稽核策略。

稽核挑戰
只要稍微瞄一下每天的頭條新聞，就不難發現資料暴露的問題已成為家常便飯。這些當中的許多事件都牽涉到法律行動、財務損失和公司需負責的公關議題。降低資料暴露事件所造成的衝擊，關鍵在於快速釐清發生了什麼變動或是識別問題所在。
舉例來說，讓我們假設貴公司負責管理某特定客戶基底的個人識別資訊 (PII)。要保護包含在您管理的系統上的資訊，雖說方法不計其數，但仍舊免不了遭到侵害。適當的稽核可讓公司對受到侵害的系統，甚或是丟失的資料瞭若指掌。若不進行稽核，資料遺失所帶來的衝擊可能更大，這多半是因為要估計出遭到侵害的範圍根本不可能。
那麼 IT 組織為什麼還遲遲未行？事實上是，大多數的公司對稽核的技術層面並沒有通盤的了解。雖然資深的主管階層一般都了解像是備份和還原的概念，但是稽核環境裡面的變動所牽涉的複雜度實在難以表達。結果，關於稽核的疑問往往只在發生重大的事件後才此起彼落。例如，公司有可能已經施行基本的稽核，但若因缺乏規劃，而未設定系統來稽核特定的變更，也就不會收集該項資訊。
再者，稽核的安全性事件也有一些 IT 專家必須處理的固有問題。其中一個困境就是在現今大型運算環境內系統的分散程度，這在收集和彙總方面呈現了明顯的挑戰，因為變更很可能在任何特定時間發生在任何系統或一組系統上。這就產生了另一項挑戰 — 相關性。為了找出情況發生真正的意義，往往有必要解釋單一和多重系統上的事件之間的關係。
另外還有一個問題，那就是稽核通常超出傳統組織化的界限。不同的組織或小組結構是因不同的理由而存在，因此可能不容易銜接。許多公司都有目錄服務小組、訊息基礎結構小組和桌上型電腦小組，但很可能只有一個安全性小組負責所有這些領域。除此之外，貴公司的專屬安全性人員可能無法現身於所有地點。比如說，分公司辦公室通常只有一名員工或一小組人馬要負責所有的工作，包括安全性事件日誌管理在內。
最後，量大的事件也極富挑戰。稽核的安全性事件數量遠比其他類型的事件日誌還多。收集的事件數目之多，要有效地保留和檢閱記錄檔實在不容易。再者，現行和尚未通過的法規也規定要保留這項資訊，使得現今運算基礎結構的負荷更加沉重。
在過去，稽核資訊的存取可以歸納成是一種求知和想要求得安全的慾望。而現在，因為公司 — 以及負責的資深管理階層 — 必須擔負起因資料遺失或缺乏適當保護措施而引起的法律責任，IT 系統管理員更有必要熟悉適用於其環境的法規。對於全球性的公司來說，這些挑戰更為複雜，因為每個國家對於資訊及其相關保護措施，都有自己的一套規定。[圖 1]列出了一些現行的法律規範範例，以及對 IT 組織的相關期望。
Figure 1 法規與它們對 IT 專家的含意 (Close Figure 1)

法規 | 期望
2002 年沙式法案 (Sarbanes-Oxley Act of 2002) (SOX) | Section 404 認定資訊系統的角色，並要求上市公司提供內部財務報告的年度評量。
美國健康保險流通與責任法案 (Health Insurance Portability and Accountability Act，HIPAA) | 解決健康資料的安全性和私密性；「安全性規則」涵蓋系統管理、實體和技術層面的資料保護。
電子探索 (Electronic Discovery，eDiscovery) | 定義文件保留和存取的標準，包括由誰負責存取文件，以及如何存取。
2002 年聯邦資訊安全性管理法案 (Federal Information Security Management Act of 2002，FISMA) | 聯邦批准為美國政府系統提供完整的資訊安全性 (INFOSEC) 架構，與不同的執法機構協調，施行控制，告知商用產品，以及軟體功能等。Section 3544 涵蓋機構職責，包括 IT 控制。
聯邦資訊處理標準出版品 200 (Federal Information Processing Standards (FIPS) Publication 200) | 指定聯邦資訊和資訊系統的最低安全性需求，並概述 NIST Special Publication (SP) 800-53 中的建議用法。在 NIST SP800-53 中，AU-2 (可稽核的事件) 一款指定了資訊系統必須提供功能以便將多重元件的稽核記錄編譯成與時間相關的全系統稽核追蹤，依個別元件管理稽核的事件，以及確保公司定期檢閱可稽核的事件。
IT 專家要怎麼應付這些法律壓力呢？IT 經理和技術人員必須發展出簡明扼要的藍圖，呈現給公司內外的人員。這包括開發適當的稽核策略，這種策略需要採取主動的手段和投資。此處的關鍵概念是，稽核不當無法在設計事後再添補，而當前的稽核卻往往事後補救。
這類的 IT 挑戰一般透過人員、程序和技術的結合便能獲得解決。稽核時，程序是最重要的一環。因此，第一步應該是掌握基本原則，如此一來您就能回應公司的需要，以及遵守法規方面的需求。我們會先討論在 Windows 內進行稽核的基礎，接下來將深入探討 Windows Server 2008 和 Windows Vista® 中的變更。

稽核安全性事件
所有稽核的事件都會記錄在 Windows 安全性事件日誌中。這些事件通常不能立即採取行動，而且在本質上往往只是提供參考資訊之用。每個事件都會針對所發生的特定存取類型，記錄簡單的「稽核成功」或「稽核失敗」。這不像應用程式或系統事件日誌，可以透過色彩編碼 (提示：尋找紅色事件以找出問題所在) 辨識出問題。
安全性事件日誌之所以不同，是因為稽核的事件往往因為量大而不容易發現，而且之前提過，安全性資料的相關性可能會呈現相當大的挑戰。即便是單一系統上一個簡單的資料漏洞，也是問題連連。要識別存取資料使用的是哪個帳戶，必須分析安全性事件日誌，而系統管理員得追蹤整個記錄檔，才找得到那個帳戶。不幸的是，當今複雜的攻擊行為常常是經過協調而且目標分散，使得受害者難以進行這類的分析。
因此，務必要了解讓資訊記錄在 Windows 的安全性事件日誌中的關鍵要素：稽核原則和系統存取控制清單 (SACL)。稽核原則是本機電腦中可透過群組原則或本機安全性原則進行設定的設定，它定義著收集特定存取類型的成功和失敗事件的作業。下列主要的稽核原則類別在 Windows 中已行之多年 (稍後會詳細說明 Windows Server 2008 中的細微稽核原則)：
  • 稽核帳戶登入事件
  • 稽核帳戶管理
  • 稽核目錄服務存取
  • 稽核登入事件
  • 稽核物件存取
  • 稽核原則變更
  • 稽核權限使用
  • 稽核處理序追蹤
  • 稽核系統事件
大部分 IT 組織都知道定義稽核原則和這些相關類別是不可少的，但是稽核原則不過是整個解決方案的一小部分。SACL 在實作整體稽核計畫時也扮演著重要的角色。有兩個特定的稽核原則類別 — 稽核目錄服務存取和稽核物件存取 — 完全仰賴 SACL 以便在安全性事件日誌中傳回資訊。那麼，SACL 到底是什麼？
每個物件 — 檔案、登錄或目錄服務 — 都有一份存取控制清單 (ACL) 和一或多個分成兩種類型的存取控制項目 (ACE)：判別存取控制清單 (DACL) 和 SACL (後者定義著記錄嘗試存取安全物件的設定)。SACL 中的每個 ACE 都會指定應該記錄在安全性事件日誌中的特定信任者所嘗試的存取類型。ACE 會定義嘗試存取指定物件的成功和/或失敗記錄。[圖 2] 說明使用物件上的 SACL 來產生特定存取類型的事件。
[圖 2] 使用物件上的 SACL
[圖 2] 使用物件上的 SACL
了解稽核原則和 SACL 之間的關係至關重要，因為要擷取「正確」的稽核事件，設定是不可少的，它與環境內的變更息息相關。如前所述，稽核目錄服務存取和稽核物件存取稽核兩種原則，只會針對該些特定的類別在安全性事件日誌中產生稽核，但是只有當物件在它的 SACL 中有設定稽核 ACE 時才會產生事件。一旦一切就定位，Windows 本機安全性授權單位 (LSA) 就會產生安全性事件，並寫入安全性事件日誌中。
事件包括兩大不同的區域：標頭和本文，前者是靜態的，而且會針對每個事件識別元 (Event ID，事件識別碼) 預先定義；後者則是動態的，並且依不同的事件包含不同的詳細資料。[圖 3] 以簡單的 Windows Server 2008 安全性事件說明這兩個要素。了解這些事件元件對於任何稽核專案的分析階段來說很重要，尤其是關於資訊如何在像是 ACS 的工具內回傳這方面。
[圖 3] 稽核事件的標頭和本文
[圖 3] 稽核事件的標頭和本文

Windows Eventing 6.0
了解問題所在之後，Windows Server 2008 要如何協助公司面對這些挑戰呢？Windows Server 2008 是第一個包含全新 Windows Eventing 6.0 事件子系統的伺服器版本，這個子系統可大幅改進安全性事件管理的情況。要注意的是，雖然我們此處的重點是放在 Windows Server 2008，但 95% 的新功能組仍存在於 Windows Vista 中。
對於 Windows Eventing 6.0，許多人會先注意到的是全新的使用者介面。全新的事件檢視器 Microsoft Management Console (MMC) 嵌入式管理單元提供了絕佳的 [概觀] 和 [摘要] 頁、富彈性的自訂檢視，以及大幅改進的解說文字。這些介面可以幫助使用者或系統管理員直接從事件檢視器本身尋找事件資訊，以及設定重要的事件日誌選項。
資料保留是經常影響事件日誌中的安全性資料的一大問題。在過去，事件日誌子系統 (包括所有記錄檔) 都面臨著延展性的限制。如果超過這些限制，整個子系統便會停止記錄事件。這在 Windows Eventing 6.0 中倒不成問題，公司現在唯一面臨的限制是可用的磁碟空間大小。不過也別輕忽，非常大型的事件日誌分析起來可能困難重重，因為每個個別的日誌項目在篩選時都必須經過評估，因此您應當將記錄檔保持在可管理的大小限度裡面。
不用說，這還是有待 IT 系統管理員針對許多系統開發出一套事件日誌的封存計畫。Windows Eventing 6.0 中現在有個功能在本機伺服器層級上可以幫得上忙，那就是 [當記錄檔已滿時進行封存，不要覆寫事件] 選項。在舊版的 Windows 中，這個選項只能透過修改 AutoBackupLogFiles 登錄值直接設定。這雖然提供了一種機制來封存本機的記錄檔，但它並沒有為長期管理這些檔案提供解決方案，也沒有解決發生在多個系統上的彙總問題。稽核收集服務在這方面倒是提供一套完整的解決方案，我們一會兒就會討論到。
全新的介面只是開頭，好康的還在後面。Windows Eventing 6.0 的真正威力其實是全新的 Windows 事件日誌服務和其下的 XML 架構引擎。這些元件正是提供高延展性、可存取性和管理選項背後的推手。事件現在是以富彈性的 XML 格式儲存，透過這種格式，便可建立自訂解決方案從自身獲取這項資訊。
Windows Eventing 6.0 也提供將系統管理動作與特定事件建立關聯的功能。它採用的方法是將 Windows 事件收集器服務與工作排程器相整合，以供進行工作式事件記錄。這是工作排程器的新運作模型，它過去只限根據時間來觸發事件。「附加工作到此事件」精靈 (可從 Windows Server 2008 事件檢視器中任何事件的快顯功能表存取) 提供一種簡單的方法，在每次記錄特定事件的時候啟動程式、傳送電子郵件，或是顯示訊息。這在嘗試識別環境內所發生的特定動作以隔離成特定的安全性事件時相當有用。比方說，如果您要稽核網域控制站上對「允許的架構更新」登錄機碼所做的變更，您可以建立一項工作來傳送電子郵件給特定的安全性系統管理員，以便在此登錄機碼遭到修改時通知他們。
除了收集和存放大量事件項目的新功能外，您現在還能進一步控制事件日誌中要記錄哪些事件。這是透過一項稱為細微稽核原則 (GAP) 的新功能達成。在舊版的 Windows 中，九大稽核類別往往使事件超載。這些上層類別現在可以透過 50 個細微的子類別來控制，它們各自代表一個相關的事件子集。
這讓您能夠從事件日誌中篩選出非關鍵的資訊，同時不致失去類別層級的可見性。例如，若是在特定系統上您只想監視登錄的變更，而不想監視檔案系統的變更，在過去您只能選擇在「物件存取」類別上報告成功或失敗。但是現在透過 GAP，便可以篩選出像是「檔案系統」、「憑證服務」和「檔案共用」等子類別，而只報告「登錄」子類別上的事件。若要探索 Windows Server 2008 系統上的 GAP 子類別，您必須從較高權限的命令提示執行 Auditpol 命令。若要列出可用的 GAP 子類別，請輸入下列命令：
auditpol /list /subcategory:*
若要取得您系統上所設定的 GAP 子類別清單，請輸入：
auditpol /get /category:*
請注意，GAP 並不能透過標準群組原則使用者介面設定，它必須透過 auditpol.exe 管理。知識庫文件 (support.microsoft.com/kb/921469) 有如何針對 Windows Server 2008 和 Windows Vista 系統透過群組原則部署 GAP 設定的相關指引。
Windows Server 2008 也可以同時擷取安全性事件日誌中特定類型的新舊值。在舊版的 Windows 中，稽核子系統只會記錄有經過變更的 Active Directory® 物件屬性或登錄值的名稱 — 它並不會記錄該屬性之前的值和現在的值。這項新功能適用於 Active Directory 網域服務、Active Directory 輕量型目錄服務和 Windows 登錄。透過啟用「登錄」或「目錄服務變更」子類別的 [稽核成功] 或 [稽核失敗]，然後設定相關聯的 SACL，事件日誌中便會引發詳細的事件對這些物件採取行動。這可以使用下列的 auditpol 命令來執行：
auditpol /set /subcategory:"Registry" /success:enable
auditpol /set /subcategory:"Directory Service
    Changes" /success:enable
對於登錄變更，這些會顯示成「事件識別碼 4657」事件，如 [圖 4]。
[圖 4] 登錄變更前後
[圖 4] 登錄變更前後
在嘗試追蹤 Active Directory 物件上的變更時，這項功能特別有用。對於目錄服務變更，這些變更會以一組「事件識別碼 5136」事件顯示，如 [圖 5] 所示。每個事件在事件的本文中都有目錄服務物件、屬性和作業。對含現有資料的屬性所做的變更，我們會看到兩項作業：「刪除的值」和「新增的值」。對於未填入的屬性，我們在資料寫入該屬性時只會看到「新增的值」作業。例如，當對使用者物件的屬性 (例如 telephoneNumber) 執行成功的修改作業時，Active Directory 會將該屬性之前的值和現在的值記錄在詳細的事件日誌項目中。
[圖 5] 目錄服務變更事件前後
[圖 5] 目錄服務變更事件前後
在新物件建立時，便會記錄在建立物件當時填入的屬性值。如果將物件移入網域中，就會記錄之前的位置和新的位置 (命名為截然不同的名稱)。當設有適當的稽核原則設定時，預設便會啟用「新舊」功能。如果您想要將屬性保持為私用，例如員工識別碼號碼變更，只要進行簡單的修改，就可以特別排除那些屬性。如果在架構中將屬性的 searchFlags 屬性修改成 0x100 (值 256 -NEVER_AUDIT_VALUE)，如 [圖 6] 所示，那麼當屬性發生變更時就不會引發「目錄服務變更」事件。
[圖 6] 將屬性從目錄服務變更中排除
[圖 6] 將屬性從目錄服務變更中排除
最後，Windows Eventing 6.0 其中一項最棒的新功能是事件訂閱。之前有提到，存取和檢閱事件日誌是重要的系統管理工作。全新的事件訂閱功能提供方法直接在系統間轉送事件。事件訂閱包含一個事件收集器和事件來源，前者會收集事件，而您以可設定後者將事件轉送到指定主機。Windows 事件收集器服務 (Windows Eventing 6.0 的新功能) 提供取用事件的功能，而訂閱者功能則已內建至 Windows 事件日誌服務中。您可以設定收集器收集許多事件來源的事件，包括 Windows Server 2008 或 Windows Vista 系統。
所有從事件來源收集到的資料都放在不同的事件日誌中，名為轉送的事件 (ForwardedEvents.evtx)，並且是由收集器上的事件日誌服務來管理。兩端 (收集器和來源) 都必須進行設定，而且設定可以自動化 (在來源上使用 winrm quickconfig –q；在收集器上使用 wecutil qc /q)。有一點要注意的是，事件訂閱這項功能並不是針對企業而設計的，更不是要取代傳送事件到外部資料庫的系統。
其中一個可以運用此功能的範例，就是小型 Web 伺服陣列。假設您有一小組與特定網站相關聯的系統 (包括網頁伺服器和 SQL 伺服器)。這些系統便可以使用新的事件訂閱功能，將它們的安全性事件日誌資訊合併在單一的系統上。較大規模的環境一般都需要較為進階的事件日誌合併工具組。

稽核收集服務
Windows Server 2008 雖然具備所有這些新功能，但長期管理和封存安全性事件日誌資訊的真正解決之道，其實在於稽核資訊的中央資料庫。稽核收集服務是 System Center Operations Manager 2007 的核心功能。ACS 提供了一種機制供轉送、收集、存放和分析安全性事件資料。安全性事件是幾近即時收集而成，而且是存放在中央 SQL 儲存機制中。因為不用實際存取真正要稽核的系統，ACS 也讓各公司有途徑可以提供對稽核資訊的最低權限存取。現在就來看看 ACS 的運作方式。
ACS 有三大元件：第一元件是轉寄站，在這個部分中，Operations Manager 代理程式會將用戶端的事件日誌資料傳輸到 ACS 基礎結構。轉寄站會將資料傳輸到第二個元件，即收集器，這是伺服器端的接聽程式。ACS 轉寄站會透過 TCP 連接埠 51909 連線，安全地與它們指定的收集器通訊。在傳輸之前，事件日誌資料會先正規化成 XML，表示多餘的資訊會移除掉，而事件資訊會根據事件特定的標頭和本文資訊歸納成對應的欄位。資訊一抵達收集器，就會將它傳送到第三也是最後一個元件 — ACS 資料庫。這遂變成長期存放安全事件資訊的儲存機制。一經存放後，資訊就可以直接透過 SQL 查詢來採礦，或使用 HTML 報告 (採用 SQL Server® Reporting Services) 來轉譯。ACS 提供三種預設的檢視，如 [圖 7] 所示。
Figure 7 ACS 檢視 (Close Figure 7)

ACS 檢視名稱 | 用途
AdtServer.dvHeader | 收集事件的標頭資訊。
AdtServer.dvAll | 收集事件的標頭和所有本文資訊。
AdtServer.dvAll5 | 收集事件的標頭和本文資訊的前五個字串。
從效能的觀點看來，單一 ACS 收集器在尖峰時段每秒最多可處理 100,000 個事件，而且每秒最多可連續處理 2,500 個事件。若要進行規劃，根據預設稽核原則設定而定，單一 ACS 收集器可支援多達 150 個網域控制站，3000 部成員伺服器，或 20,000 台工作站。在經過測試、實際執行的案例下，約有 150 個網域控制站顯示出每秒最多可處理大約 140 個事件，而在尖峰時段每小時平均可處理 500,000 個事件。14 天下來 (ACS 的預設保留設定)，SQL Server 資料庫中便儲存了超過 150GB 的安全性事件資料。比較積極的稽核原則和相關聯的 SACL 設定很明顯地會產生甚至更多的資料 (每個小時、每天及整體下來)。
在這裡有一點要特別注意的是，資料量這麼大，根本沒有人有辦法可以檢閱典型大型企業環境中的每個事件。反過來說，公司也不用對此處所呈現的數字感到懼怕。要了解您環境內所發生的變更，其實關鍵在於分析大量資料。
這正是 ACS 發揮功效的地方。透過 SQL Server Reporting Services 和 ACS，您可以將一般深埋在安全性事件日誌的問題，轉化成像是在應用程式事件日誌中容易辨別的色彩編碼事件。雖然 ACS 包含一組預設報告，但要針對環境的特定需要來擴充這些報告其實很簡單。
以下面這個案例來說：由於環境內部對外部信任相當敏感，因此管理階層要求我們開發出一份報告，詳述建立 Active Directory 信任的程序。進行過一些研究調查之後，我們知道當建立信任時，Active Directory 內特定的網域命名內容中的 cn=System 容器內會建立一個 trustedDomain 物件。只要在編輯此容器上的 SACL 以稽核順利建成的任何受信任網域之後，接下來便能夠在每次建立此類型的物件時，擷取安全性事件。這在執行信任建立的 DC 上的安全性事件日誌當中，是解譯在 566 事件中。之後我們便可以寫入簡單的 SQL 查詢，從 ACS 擷取這項資訊：
select * from AdtServer.dvAll
where EventID = '566' and
String05 like '%trustedDomain%'
order by CreationTime desc
若要把它製作成報告，請使用隨附在 SQL Server 2005 Reporting Services 的 Visual Studio® 2005 版本，因為它是專門針對開發報告而提供的。完成精靈之後，很容易就可以建立非常類似 [圖 8] 中的報告。除此之外，可以顯示在安全性事件日誌中的任何環境內變更，也會歸納成類似的專業外觀報告。
[圖 8] ACS 報告範例
[圖 8] ACS 報告範例

開發稽核計畫
現在我們對稽核的挑戰，還有法律和技術層面已有所了解，那麼 IT 系統管理員該如何為公司開發「稽核計畫」呢？就跟很多事情一樣，開發完備的稽核原則也牽涉多個步驟。第一個步驟是判定應該要稽核的項目。這包括分析您的環境，並決定哪種類型的事件和變更應該產生稽核。這可包括簡單的項目 (像是帳戶鎖定、敏感的群組變更、建立信任)，或是複雜的變更 (例如在您環境內修改應用程式當中的設定項目)。此處的關鍵是管理階層必須一併參與決定稽核計畫裡面的「內容」。這項作業必須在書面上完成，而且應該定期重複操練 — 而不是只在重大事件發生後才進行。
第二步包括識別攸關特定變更的稽核資訊要如何以安全性事件的形式回傳。稽核資訊有時候相當隱密，而且不容易閱讀。在實作之前，必須在安全性事件和不同動作之間建立相關性，以便了解安全性事件的真正意涵。事件發生後才花時間了解事件與動作的關係就太遲了。
第三步是試車，也就是實作您的稽核原則和 SACL 的時候。先前有討論過，您必須定義目錄、檔案系統和登錄中的稽核原則設定 (以便產生安全性事件) 和 SACL (以針對相關聯的動作產生稽核追蹤)，才能對這些區域中的變更有概全的了解。
這就把我們帶到第四個也是最後一個步驟 — 收集、觸發和分析。視貴公司的規模大小和需要而定，這可涵蓋在原始的 Windows Server 2008 功能中，或是涵蓋在進階的解決方案中，例如 System Center Operations Manager 的稽核收集服務功能。大多數公司最常犯的錯誤是，只設定稽核原則，而沒有定義 SACL。最後一個步驟主要是實作技術解決方案，以便向公司內部的共同工作人員報告和分享資料。之前有提到，大部分公司都有既定的實體負責安全性，而稽核計畫必須針對現有的組織要素來建構才能發揮功效。最後這個步驟的關鍵是，以有意義的方式收集資訊，並將之呈現給所有那些負責了解環境變更的人。
絕大多數 IT 組織都有考慮訂定完備的稽核計畫，但卻都等到發生重大事件之後才了解到它的必要性。跟舊版的平台比起來，Windows Server 2008 提供更加強化的機制來收集和分析安全性事件資料。進階的收集和報告技術，例如 ACS，可暴露過去因大量事件和分散情況而受到隱蔽的問題，進而讓這些變更立即可見。
就跟大部分的 IT 問題一樣，程序也是主要的挑戰。達到 IT 經理的期望向來需要進行額外的設定，因此深入了解您的環境需求，以及 Windows 平台的功能，將可讓您因應這些迎面而來的挑戰。祝您涉獵順利。

Rob Campbell 和 Joel Yoker Rob Campbell 是 Microsoft Federal 小組的資深技術專家，而 Joel Yoker 則是該組的資深顧問。Robl 和 Joel 專門負責為美國聯邦政府客戶開發及部署安全性解決方案。


 編輯的話: 為 Windows Server 2008 舉杯
編輯的話
為 Windows Server 2008 舉杯

時時刻刻都有產品上市。 而且當您手邊有上百組產品的資料 (如果把網路也納入考量的話，其實是上千組產品)，那麼產品上市的消息可說是家常便飯。但這次不同。
今年二月，Microsoft 宣布 Windows Server 2008 正式上市，讓我們興奮不已。毫無疑問，此產品的發行讓人期盼已久，但它一定會讓您覺得值回票價。其中包含的許多主要重大改進功能 — 以及豐富的新功能 — 讓人充滿驚喜。IIS 7.0 或網路存取保護的確值得一提，而我們也的確都深入討論。此外，我們還可以介紹伺服器管理員、新的部署技術或新的法規遵循功能 (逐一打勾)。天啊，這份清單還真長，但坦白說，這個新產品最讓我們感動的地方，就是它對於提升 Windows Server 管理性方面所投入的心血。
我們花了許多時間想方設法來讓 IT 專業人員的工作更輕鬆。有鑑於此，我們真的很樂意看到有一個產品這麼盡力於協助 IT 專業人員做好工作。就以 Windows Server 2008 中新的 Eventing 基礎結構為例，Rob Campbell 與 Joel Yoker 將在本期專欄中加以討論。即使是我們之中最奇怪的怪胎都很難對 Eventing 有什麼興趣，但我不得不承認，這個產品中的 Eventing 實在很與眾不同。XML 資料、自訂檢視、更詳細的說明、更簡易的報告 ... 族繁不及備載。
撇開玩笑話不談，這個產品針對資訊業界賴以謀生的工具提出重大的改進，讓人不得不情緒激昂。針對 Active Directory、IIS、網路、安全性、虛擬化等等的功能改進，使它成為史上意義最重大的產品上市，為此我們特別獻上本專欄，提供您有關 Windows Server 2008 的一切資訊。
尤其值得高興的是，我們非常歡迎 Mark Russinovich 這位擔任平台服務事業群 (Platforms and Services Division) 的技術人員再次歸隊，他同時也是一直以來都很熱門的 Sysinternals 工具的創造者。Mark 過去曾為《TechNet Magazine》編寫過一些膾炙人口的內容，其中最著名的就是系列專欄《深入探討 Windows Vista Kernel 核心變更》(2007 年 2 月、3 月及 4 月份期刊)。Mark 在本月將再度執筆此系列，針對 Windows Server 2008 核心的變革提出深入、技術性的導覽。好好享受吧！
—Joshua Hoffman

感謝下列 Microsoft 技術專家：Brandon Baker、Mai-lan Tomsen Bukovec、Bryce Cogswell、Nils Dussart、Gregoire Guetat、Brett Hill、Gaby Kaplan、Jason Leznek、Paul Mayfield、Nathan Muggli、Meg Muran、Michael Murgolo、Michael Niehaus、Raja Perumal、David Solomon、Eric Traut、Jim Truher 和 Landy Wang。


 讀者來信: 讀者有話直說
讀者來信
讀者有話直說

Windows Vista Complete PC 備份
謝謝您在 2007 年 9 月份針對 Windows Vista® Complete PC 備份發表的大作 (＜Windows Vista 備份技術指南＞technetmagazine.com/issues/2007/09/Backup)。不過我卻無法實際照著步驟做，因為當它問我要把備份映像放在哪裡時，它都會說要放在我的外接式硬碟上 (這也是我想做的)。可是它卻不讓我選擇將檔案放在外接式硬碟的特定資料夾中，我很擔心這樣會覆寫磁碟機上所有其他的檔案。這一點我有必要顧慮嗎？
—Ben B.

我們把您的問題轉交給作者 Christine Fok，他說 Complete PC 備份會在儲存映像的目標磁碟機上實際建立一個資料夾，所以您不必擔心這一點，它不會覆寫任何資料。

登錄機碼參照不正確
2007 年 12 月份的文章＜追蹤難以捉摸的網路問題＞(technetmagazine.com/issues/2007/12/Network) 當中有一個小錯誤，那是我參考登錄機碼來調整Windows® 中的 TCP/IP 堆疊時發現的。作者 Christopher Stoneff 在第 70 頁提到，您可以調整 HKLM\System\CurrentControlSet\Services\TCPIP 機碼中的值，而正確的機碼事實上應該是 HKLM\System\CurrentControlSet\Services\TCPIP\ Parameters (他一定是忘了加上 "Parameters")。
—Ingmar K.

Christopher Stoneff 確認您所說的完全正確。機碼結尾的確應該有 \Parameters。漏掉登錄路徑的必要部分，這一點我們向大家致歉。我們已經更正該篇文章線上版了。

將檔案加密
我對加密檔案系統 (EFS) 非常感興趣，希望能夠深入瞭解，因此特別拜讀您在 2007 年 3 月份的《安全性監控》專欄＜部署 EFS：第二篇＞(technetmagazine.com/issues/2007/03/SecurityWatch)。我有一個網域環境，其中已有部分使用者在裡面加密了一些檔案。後來我又採用了憑證授權單位 (CA) 和 EFS 範本。我的問題是：如果已經使用自己自我簽署憑證來加密檔案的使用者，需要加密新的檔案時，應該使用舊的自我簽署憑證來加密，還是向 CA 註冊一個新憑證？另外，如果我所有的使用者都有漫遊設定檔，那麼使用者的私密金鑰該儲存在哪裡？
—Ammar H.

下面是撰寫部署 EFS 這篇專欄的作者 John Morello 所做的回答：
一旦使用者註冊新的 EFS 憑證之後，它就開始用在新作業。但是所有現有的加密檔案還是會繼續以舊的金鑰組加密，直到將它們更新為止。因此使用者註冊之後，您可以執行 cipher /u，將那些檔案的金鑰組全部更新。
如果使用漫遊設定檔的話，金鑰組就會在設定檔中漫遊。我建議您改用認證漫遊，它比漫遊設定檔更輕量。 如需其他相關資訊，請參閱：go.microsoft.com/fwlink/?LinkId=107469。

規則運算式不正確
2008 年 1 月份的《嗨，Scripting Guy！》專欄＜規則運算式不出錯＞(technetmagazine.com/issues/2008/01/HeyScriptingGuy) 一文裡面所用的範例，
objRegEx.Pattern = "[^A-Z][^a-z]"
可能不是原來要用的。原本它要尋找的是所有非小寫或大寫字母的字元，但是這個模式所找的卻是大寫字母後接小寫字母，所以像 "aBcde" 這樣的字串是找不到的。也許它應該改為：
objRegEx.Pattern = "[^A-Z^a-z]"
—Roger R.

我們把您的問題轉交給 Scripting Guy，下面就是他們的回答：
嗨，Roger。謝謝您來信指出這一點。情況好像是我們不知何時起在專欄做了更改，可是卻沒有全面更改。在原稿中 (還放在我電腦裡面的某處)，我們的確有提到它原本是要尋找大寫字母後接小寫字母。但是後來大概覺得還是尋找非字母的字元比較有用，所以又改了內文，卻忘了一併更改範例程式碼。我們會更正線上版的。對於這一點我們感到很抱歉。


 工具箱: 適合 IT 專家的新產品
工具箱
適合 IT 專家的新產品
Greg Steen

管理 SQL 資料庫
SQL Sentry Event Manager
sqlsentry.net/event-manager/standard-sql-server.asp
您的基礎結構規模越大越複雜，需要考量的互相干擾的維護和操作工作就越多。這種情況很可能會讓使用者的製程流程一片混亂。幸好，資料庫和系統管理員可以借助一些工具來協調複雜環境的排程。
如果您的環境是多資料庫伺服器環境，不妨考慮使用 SQL Sentry Event Manager 這種工具，它是在後端使用 SQL Server® 2000 或 SQL Server 2005 執行個體的 Microsoft® .NET Framework 伺服器應用程式。當您透過 SQL Sentry 主控台 UI 連接到伺服器應用程式時會出現一個統一畫面，顯示您環境中的管理伺服器。伺服器應用程式並不透過代理程式管理，但是按照慣例，這也表示它需要根據有權連接到您想要管理之機器和服務的使用者的使用者內容來執行。
該應用程式最令人津津樂道的功能，是由主控台 UI 以拖放方式重新排定伺服器工作，協助您調整維護與操作活動，以防止發生衝突和停機事件。雖然 UI 乍看之下稍嫌迂迴曲折，卻能夠讓您快速發現潛在問題，並且找出一個時段來轉移衝突的工作。它甚至提供一個類似 Microsoft Outlook® 的檢視，上面列有您的 SQL 代理程式作業以及 Windows® 排程工作，來監視您所選的伺服器。而行事曆檢視則是以反白標示長時間執行和失敗的工作，幫助您一路追蹤並解決問題。
除了排程功能之外，SQL Sentry 還具備強大的通知系統，取代您對 SQL Mail、MAPI、xp_sendmail 或 sp_send_dbmail 的需求。同時也透過其子系統，從管理伺服器路由傳送所有的事件通知，讓您集中控制那些通知的類型、頻率和發佈。
通知可以在全域、伺服器以及工作或作業層級加以設定，提供大多數系統管理員對該類型事件所預期的細微度。您可以設定一些不同類型的事件條件來觸發通知，比方說，當作業時間太長或太短、當 CPU 使用率這類效能指示器達到特定的閾值，或者當 SQL 代理程式作業因故而遭到封鎖。您也可以設定讓 SQL Sentry 在設定變更時通知您，這麼一來，只要有人調整排程或中止監視器，都會在您的掌握之中。
但是 SQL Sentry 負責處理的不只是 SQL 代理程式作業和 Windows 工作排程器事件，它也支援來自維護計劃、DTS 套件、SSIS 工作和 SQL 代理程式記錄的事件。
它也會顯示系統的執行效能，如果您的執行時間等級相當傲人，也可以一併炫耀一番。SQL Sentry 有一些僅供工作使用的內建報告選項，可讓您產生和列印執行階段和效能統計圖表。您也可以將報告資料匯出到 XML、CSV 或 HTML，納入您自己的報告文件和工具當中。
請注意，Professional Edition 另外還多了管理 Oracle 伺服器的功能，以及其他像是報告服務監視、將 SQL 代理程式工作排進佇列、鏈結非 SQL 伺服器事件，以及規劃共用資源行事曆等功能。

售價：Standard Edition $395 美元起。
以 SQL Sentry 排定維護作業
以 SQL Sentry 排定維護作業

遠端管理系統
Mobile Admin
rovemobile.com/products/ma/features
人不能同時出現在一個以上的地方，因此對於分身乏術的 IT 專家來說，使用行動遠端伺服器管理工具是一個不錯的主意。其中一項值得一試的產品就是 Rove Mobile (前身為 Idokorro Mobile) 推出的 Mobile Admin。
Mobile Admin 是一部通訊伺服器 (有權存取您要管理的伺服器) 與一組無線掌上型裝置互動的主從架構設定。應用程式的伺服器部分並沒有代理程式，也就是說，您不必在要管理的伺服器安裝任何東西。但是，您需要提供適當的遠端系統管理權限給該部機器和應用程式內容，讓您管理基礎結構中的機器。
大部分的主要行動平台 (包括 Windows Mobile® Pocket PC 和 Smartphones，以及 BlackBerry Smartphone) 都能夠存取這部伺服器。此外，任何一部與網際網路連線並且具有相容瀏覽器的電腦，都可以連接到 Mobile Admin (如果您的安全性原則容許您這麼做的話)。
任何系統或網路專家對於行動系統管理都有一個重要的顧慮，那就是安全性。如果您有部署 BlackBerry Enterprise Server，可以選擇將所有與 TDES (三重資料加密標準) 或 AES (進階加密標準) 的通訊全部加密 — 此二者皆採用聯邦資訊處理標準 (Federal Information Processing Standard，FIPS)。
另外，Mobile Admin 還針對 BlackBerry 擴充了「刪除」功能，萬一不慎遺失，也可以從遠端移除手機裡面的軟體和資料。如果是其他的掌上型裝置，則可以實作 VPN 來保護通訊，以及 (或者) 設定讓 Mobile Admin 使用 Windows 登入、LDAP、RSA SecurID、RADIUS 驗證或 Mobile Admin 特有的登入。
一旦連線之後，就可以執行 Windows 系統管理工作，例如檢視和清除事件記錄、重新開機、管理檔案和目錄，以及檢視和編輯排定的工作。
就 Active Directory® 整合來說，您可以檢視、建立、編輯、停用或刪除使用者、群組和電腦。而就 Exchange 系統管理來說，則可以變更信箱設定，以及凍結和取消凍結訊息佇列等等。
透過 IIS，您可以重新啟動應用程式集區或網站，並且變更虛擬目錄設定。對於 SQL 伺服器，您可以執行 T-SQL 查詢、修改登入以及啟動和停止 SQL 代理程式作業等。如果您是執行叢集服務，則可以移動群組、讓資源離線，以及在其他一般系統管理工作之間進行容錯移轉。
最後，Mobile Admin 也支援 Oracle、Novell LDAP、Lotus Domino、Citrix、HP iLO、Backup Exec 的管理面向及其他面向。

售價：每部伺服器 $245 美元起。

書評
Mastering Windows Network Forensics and Investigation
sybex.com
您的硬體和程序可能全都就定位，準備好偵測和減少您的網路威脅。但是您可知道在安全事件發生之後，如何將您所需要的通訊協定定位就緒，來調查或甚至檢舉違法鼠輩嗎？
這就是《Mastering Windows Network Forensics and Investigation》(Sybex，2007) 這本書所要闡述的主題。本書主要在傳授完整調查 Windows 網路入侵的技術，這些針對機密系統的攻擊，從小規模的單一機器事件 (例如，不當使用公司服務) 到較大規模甚至更為廣泛的事件都在討論之列。
本書也會逐步引導您收集證據，包括進行訪談到追蹤稽核事件與記錄等等，務求滴水不漏。它探討的範圍包括要在何處以及如何使用 WireShark、LogParser、EnCase 和 SysInternals 工具集等工具，從 Windows 機器和網路收集證據。
此外，本書也會告訴您，從指定機器上的登錄、檔案系統結構及內容、文字記錄、事件記錄以及程序可以取得哪些資訊。您還將學會建立 Live-Analysis CD 的方法，這張 CD 包含了追蹤證據所需要的工具。最後則是討論呈現調查結果的方法，詳細說明在法庭作證的程序與指導方針。

售價：$59.99 美元。

收集系統資料
MetaLAN
hammer-software.com/metalan.shtml
集中式系統管理是系統管理成功的主要元件之一。它免除了許多麻煩，節省您的寶貴時間，進而減少您的工作壓力。
Hammer Software 所開發的 MetaLAN 工具，可以幫助您管理和支援 Windows 網路上的使用者和伺服器。這個無代理程式的應用程式可讓您快速收集 Windows 機器的相關資訊、變更 Windows 機器的設定，以及廣泛管理您的 Windows 機器。當然囉，您必須具備使用者內容和權限才能這麼做。
MetaLAN 有兩種作業模式。您可以選擇以系統管理員模式直接執行它 (連接到您要查詢或修改屬性的機器)，或者使用遠端電腦上免費附加的代理程式/服務 (稱為 ProbeServer)，搭配以伺服器模式執行的 MetaLAN，連續監視您的工作站。
當您啟動應用程式之後，就會進入 MetaLAN 控制台的 UI，這裡會提供選項讓您探查目前網路來尋找要管理的網域。您也可以在這裡啟動各種工具元件，例如服務台工具 (Help Desk Tool)、報告工具 (Report Tool)、軟體工具 (Software Tool) 和 RegCast 工具 (RegCast Tool)。
服務台工具 (Help Desk Tool) 提供一個檢視，讓您搜尋和瀏覽您所管理之網域中的各台機器。只要選取一部電腦，就會出現一連串有關這部電腦的資訊，包括製造商、IP 位址、處理器、磁碟機、MAC 位址以及伺服器角色。您可以從這裡執行 Windows Management Instrumentation (WMI) 查詢、連接到即時效能監視器、檢視安裝的軟體，以及執行其他有用的系統管理工作。
報告工具 (Report Tool) 則提供快速、可匯出的圖形化檢視來查看您管理的節點。舉個例說，您可以產生一個顯示網路上所有機器 CPU 速度的圓形圖，也可以驗證哪些機器有安裝 Windows XP Service Pack 2。
軟體工具 (Software Tool) 可讓您快速檢視和匯出網路中一到 N 部機器上所安裝的軟體清單 — 非常適合用於稽核。
而 RegCast 工具可讓您檢視及修改 (如果您是網域或企業系統管理員的話) 您所選的一組遠端機器的登錄資訊。
除此之外，MetaLAN 還包含一個可在遠端部署和安裝 Microsoft Installer (MSI) 套件 (如果它們支援無訊息安裝的話) 的工具；以及一個存放區概觀，顯示您機器上的每一個磁碟機和可用空間；另外還有服務系統管理工具，負責啟動、停止甚至移除服務。如果這還不夠，那麼還有一個很棒的虛擬網路運算 (Virtual Network Computing，VNC) 遠端控制工具，它會下推一個小小的 VNC 執行檔，只要執行這個執行檔，就可以在遠端控制機器 (類似遠端協助)。

售價：授權套件 (含 20 節點) $75 美元起。
服務台工具 (Help Desk Tool) 提供您可搜尋和瀏覽的檢視
服務台工具 (Help Desk Tool) 提供您可搜尋和瀏覽的檢視

自動化工作
AutoHotkey
autohotkey.com
自動化可以幫助 IT 專家避開耗時的反覆執行作業，可說是他們最好的朋友。在那麼多的工具當中，能達成這種目的當屬 AutoHotkey 公用程式。凡是需要用到鍵盤、滑鼠或甚至是搖桿輸入的工作，幾乎都可以借助這項免費的開放原始碼工具將它們自動化，協助簡化桌面常式，就像是打了類固醇的指令碼快速鍵和巨集工具。
AutoHotkey 是在系統匣中執行，它會在開機時執行您所建立的指令碼定義，而且會個別執行指令碼檔案中的指令碼命令。如果您想在開機時啟動您最愛的應用程式組，這是再適合不過的選擇了。等等，還不止這些呢：您還可以定義任何數目的快速鍵和快速字串。
快速鍵或快捷鍵是您為了觸發某個動作 (像是啟動應用程式、將視窗帶到前景，甚至是模擬滑鼠滾輪捲動動作等) 所定義的任何按鍵組合。
而快速字串則是將您常打的命令或詞組以文字縮寫表示。不止如此，您也可以使用這些快速字串來啟動以指令碼控制的動作，就像快速鍵所做的一樣。舉個例說，您可以用簡單的按鍵順序「td」建立一個快速字串，用它開啟 Microsoft Word，並且以您所要的格式寫下今天的日期。如果您都會固定傳給使用者一段特定的文字回覆，也可以建立一個簡單的快速字串，自動將這段文字套進新的 Outlook 郵件當中。
指令碼語言本身支援變數、數學運算式和字串作業、內建廣域變數、函數、迴圈以及條件陳述式，因此應該可以建構一個適合您系統管理需求的指令碼。總計有超過 100 個命令和語言建構可以助您一臂之力。舉幾個例來說，您可以模擬滑鼠拖曳、顯示訊息方塊、執行非同步作業、傳送電子郵件、修改登錄、在迴圈中設定計時器以重複檢查、開啟應用程式、關閉視窗以及刪除處理序。
AutoHotkey 還有一個很棒的功能，那就是針對您的需求，編譯指令碼作為發佈和重複使用的用途。這麼一來，使用者即使沒有安裝 AutoHotkey，也可以利用您的快速鍵和指令碼。而且，由於開放原始碼專案的授權，您可以不受任何限制的發佈或販售它們。
在公司內部，您可以輕易發佈一個執行指令碼給一般使用者，執行某些使用者必須在桌面手動執行的自訂動作。另外，如果您需要針對每個使用者量身訂作指令碼，AutoHotkey 也接受命令列參數，讓指令碼可以在您的網域發揮功用並且重複使用。
許多開放原始碼專案的文件常常缺乏深度，但是 AutoHotkey 文件經過妥善編排，內容非常周密完備，它列舉很多適合且中肯的例子作為示範，告訴您編寫自動化工作的指令碼時，不可不知的知識。此外，您可以在專案網站上找到有效的使用者論壇幫助您解決任何問題，以及一個包含指令碼、教學課程以及命令參考的 Wiki。另外還有一個指令碼百寶箱網頁，裡面列有使用者提供的範例，相當實用。

售價：免費。
AutoHotKey 可以編譯指令碼作為發佈和重複使用的用途

Greg Steen 是一位技術專家和企業家，為人十分熱心。他總是四處探尋新的工具，協助 IT 專家更輕鬆地進行操作、品管及開發。


 公用程式焦點: Windows Server 標誌認證
公用程式焦點
Windows Server 標誌認證
Venkat Krishnamachari
下載本文程式碼: Works with Windows Server 2008 (KB)

藉由 Windows Server® 2008 軟體認證，Microsoft 試圖協助開發人員厲行最佳作法，並讓 IT 專業人員在購買應用程式之前能夠先進行評估，以節省時間和避免犯錯。為了幫助客戶判斷應用程式相容性，Microsoft 發起「Works with Windows Server 2008」計劃，其中包含免費的支援測試工具，有助於確保應用程式提供符合期望的使用經驗。
「Works with」工具是透過監視檔案系統狀態、登錄、服務和驅動程式，來收集應用程式在其生命週期內對作業系統有何影響的相關資料。此工具接著會分析這些資料，並報告特定的成功與失敗測試案例。「Works with」測試架構說明文件和其他工具 (可從 windowsservercatalog.com/ready 取得) 將提供更詳細的內容。這些工具可望協助 ISV 建置應用程式相容性，並讓 IT 專家針對在 Windows Server 2008 上部署的應用程式評估其就緒程度。
若要使用這些工具，首先必須在測試電腦上安裝最新版的 Windows Server 2008，從 windowsservercatalog.com/ready 下載「Works with」工具，並確認您已經裝有應用程式驗證器工具。此工具的 GUI 中包含四項簡單功能：建立測試；繼續進行現有測試；檢視測試結果；以及建立提交套件 (ISV 可用來向授權的測試廠商要求「Works with」驗證)。
顯示結果的文字報表
建立測試的方法是逐步完成應用程式的生命週期：安裝、設定、執行和解除安裝。「Works with」工具主要是在背景執行，檢查作業系統穩定性和安裝程式相容性，以及各項功能在平台有新的安全性需求與其他可設定的功能下，是否能正確執行。一般而言，最好能完成測試並產生完整報表，這個程序通常要花上兩至四個小時。不過您也可以停止測試，產生速成報表，留待以後再繼續測試。
整個程序完成後，各個測試案例上會有紅色或綠色的狀態報表，內含詳細的結果，如螢幕擷取畫面所示。綠色的測試報告表示有相容。如果是紅色結果，您可以查看記錄檔來了解錯誤狀況。請記得將本機產生的記錄儲存到另一台機器，以便在清除測試電腦後能夠繼續參考這些資料。「Works with」工具可在任何伺服器應用程式上執行，也可以評估專為 Windows Vista® 設計的用戶端元件和管理工具。
若您使用的是商業軟體，「Works with」工具可協助您規劃有關已知相容應用程式的移轉作業。您可以利用測試結果向廠商提出有關支援計劃的問題，並同時節省開發人員尋找相容性問題以及排定修復程式優先順序的時間。就自訂應用程式而言，您可以提供開發小組非常特定的意見反應。您還可以隨著新修補程式的發行來確認持續保持相容，並記錄 IT 部門所需的應用程式設定資料。有些客戶曾使用這些工具來記錄系統應用程式接觸的檔案。
歡迎您提出批評指教，協助我們改進測試案例或工具來提高環境的使用性。請將意見寄至：wslogofb@microsoft.com。

Venkat Krishnamachari 自 2005 年以來即擔任 Windows Server 軟體認證的技術主管，在此之前，他曾是發行 SQL Server 2005 的小組成員。


 The Cable Guy: 使用 ISATAP 將內部網路移轉到 IPv6
The Cable Guy
使用 ISATAP 將內部網路移轉到 IPv6
Joseph Davies
本文是根據 Windows Server 2008 的搶鮮版所撰寫。本文包含的所有資訊均有可能變更。

對於使用「網際網路通訊協定第 6 版」(IPv6) 有個常見的迷思，就是要使用它，您必須部署原生 IPv6 定址和路由，而這需要詳細分析 IPv6 定址配置、路由器更新和設定，以及首展排程。雖然 IPv6 連線最終必須滿足這些
條件，但您可以使用「內部網站自動通道定址通訊協定」(ISATAP) 來輕鬆部署通道 IPv6 連線。有了通道 IPv6 連線能力，支援 ISATAP 的主機就能使用以 IPv4 標頭封裝起來的 IPv6 流量進行通訊 ([IPv4 通訊協定] 欄位設為 41)。ISATAP 流量可以周遊僅 IPv4 的內部網路，因此您不必等待原生 IPv6 基礎結構，便可立即開始測試具備 IPv6 能力的應用程式。
ISATAP 是一項以 RFC 4214 定義的位址指派和自動通道技術，可在僅 IPv4 上的 IPv6/IPv4 主機之間提供單點傳送 IPv6 連線。ISATAP 主機使用指派了 ISATAP 位址的邏輯通道介面，並採用 UnicastPrefix:0:5EFE:w.x.y.z (其中的 w.x.y.z 是指派給 ISATAP 主機的私用 IPv4 位址) 或 UnicastPrefix:200:5EFE:w.x.y.z (其中的 w.x. y.z 是指派給 ISATAP 主機的公用 IPv4 位址) 這兩種形式。UnicastPrefix 是任何一種 64 位元單點傳送位址首碼，包括 Link-local、全域和唯一本機首碼。舉例來說，ISATAP 位址可以是 2001:DB8::98CA:200:131.107.28.9 及 2001:DB8::98CA:0:10.91.211.17。

使用 ISATAP 將內部網路移轉到 IPv6
ISATAP 部署包含一或多個邏輯 ISATAP 子網路，這些子網路是指派給 64 位元 IPv6 子網路首碼的僅 IPv4 網路。在邏輯 ISATAP 子網路上有 ISATAP 主機和 ISATAP 路由器。ISATAP 主機使用 ISATAP 通道介面來封裝 IPv6 流量。此流量可以直接傳送到位於相同邏輯 ISATAP 子網路上的其他 ISATAP 主機。為了到達位於其他 ISATAP 子網路或原生 IPv6 子網路上的目的地，此流量會傳送到 ISATAP 路由器。ISATAP 路由器是一種 IPv6 路由器，它會向 ISATAP 主機通告子網路首碼，並在 ISATAP 主機與其他 IPv6 子網路上的主機之間轉送 IPv6 流量。[圖 1] 顯示一個經過簡化的內部網路上的 ISATAP 元件。
[圖 1] 內部網路上僅 IPv4 的部份和具備 IPv6 能力的部分
[圖 1] 內部網路上僅 IPv4 的部份和具備 IPv6 能力的部分
ISATAP 可讓您透過三階段在內部網路上部署原生 IPv6 定址和路由功能。
第 1 階段：僅 IPv4 的內部網路 在此階段中，您的整個內部網路可能是單一的邏輯 ISATAP 子網路。[圖 2] 中的範例顯示具有 ISATAP 路由器的僅 IPv4 內部網路，它只會向 ISATAP 主機通告全域或唯一本機位址首碼。
[圖 2] 僅 IPv4 的內部網路
[圖 2] 僅 IPv4 的內部網路
第 2 階段：內部網路上僅 IPv4 的部份和具備 IPv6 能力的部分 在此中間階段中，內部網路包含僅 IPv4 的部份 (邏輯 ISATAP 子網路) 和具備 IPv6 能力的部份。內部網路上具備 IPv6 能力的部分可支援 IPv4，並且已更新為支援原生 IPv6 定址和路由功能。您已在 [圖 1] 中看過此設定。
第 3 階段：具備 IPv6 能力的內部網路 在這個最後階段中，整個內部網路同時支援 IPv4 和原生 IPv6 定址與路由功能。請注意，此時已不再需要 ISATAP。[圖 3] 顯示範例。
[圖 3] 具備 IPv6 能力的內部網路
[圖 3] 具備 IPv6 能力的內部網路
藉由 ISATAP，從僅 IPv4 轉換到具備 IPv6 能力的內部網路的前兩個階段中，您可在主機與應用程式之間進行 IPv6 連線。

Windows Server 2008 與 Windows Vista
用於 Windows Server® 2008 和 Windows Vista® 的 IPv6 通訊協定，支援 ISATAP 同時做為 ISATAP 主機與 ISATAP 路由器。在具有不同 DNS 尾碼的電腦上所安裝的各個 LAN 介面都有個別的 ISATAP 通道介面。 例如，如果執行 Windows Vista 的電腦具有兩個 LAN 介面，而且都連接到相同的內部網路，並指派有相同的 DNS 尾碼，便只會有一個 ISATAP 通道介面。如果這兩個 LAN 介面連接到兩個不同的網路且具有不同的 DNS 尾碼，便會產生兩個 ISATAP 通道介面。針對執行 Windows Server 2008 或 Windows Vista SP1 的電腦，除非可解析名稱「ISATAP」，否則 ISATAP 通道介面會處於媒體中斷連線狀態。
在預設情況下，用於未安裝 Service Pack 的 Windows Vista 的 IPv6 會在 ISATAP 通道介面上，針對已指派給對應 LAN 介面的 IPv4 位址自動設定 Link-local ISATAP 位址 (FE80::5EFE:w.x.y.z 或 FE80::200:5EFE:w.x.y.z)。
用於 Windows Server 2008 和 Windows Vista SP1 的 IPv6 通訊協定只有在能夠解析名稱「ISATAP」時，才會在 ISATAP 通道介面上設定 Link-local ISATAP 位址。
為了接收 ISATAP 路由器的路由器通告訊息，ISATAP 主機必須向 ISATAP 路由器傳送路由器請求訊息。在 Ethernet 子網路上，原生 IPv6 主機會傳送多點傳送路由器請求訊息，接著子網路上的路由器會以路由器通告訊息進行回應。由於 ISATAP 不使用 IPv4 多點傳送流量，也不需要具備 IPv4 多點傳送能力的基礎結構，因此 ISATAP 主機必須單點傳送路由器請求訊息到 ISATAP 路由器。
為了單點傳送路由器請求訊息到 ISATAP 路由器，ISATAP 主機首先必須確認位於邏輯 ISATAP 子網路上的 ISATAP 路由器介面的單點傳送 IPv4 位址。如果是用於 Windows Server 2008 和 Windows Vista 的 IPv6 通訊協定，ISATAP 主機會將「ISATAP」主機名稱順利解析成 IPv4 位址，或藉由 netsh interface isatap set router 命令來取得 ISATAP 路由器的單點傳送 IPv4 位址。

移轉內部網路：第 1 階段
在移轉至 IPv6 的第 1 階段中，為了在內部網路上部署 ISATAP，您必須執行下列步驟。
確定 ISATAP 子網路首碼 您必須確定 64 位元子網路首碼，以便指派給對應至內部網路的邏輯 ISATAP 子網路。您可以從 ISP 或網際網路登錄取得 48 位元首碼，也可以衍生自己的 48 位元唯一本機首碼 (請至下列網址參閱 RFC 4193：tools.ietf.org/html/rfc4193)。
從 48 位元首碼中，為邏輯 ISATAP 子網路選擇 16 位元子網路識別碼。48 位元首碼與 16 位元子網路識別碼的組合便成為 64 位元 ISATAP 子網路首碼。舉例來說，48 位元唯一本機首碼 FD8A:219C:052A::/48 和子網路識別碼 1 會形成 64 位元子網路首碼 FD8A:219C:052A:1::/64。
指定 ISATAP 路由器電腦 決定要當做 ISATAP 路由器的電腦。雖然許多商用路由器都支援 ISATAP 路由器功能，但我在此提供的內容是專指執行 Windows Server 2008 的電腦。
在第 1 階段中，ISATAP 路由器電腦不需要多個 LAN 介面，也無須連線到內部網路中具備 IPv6 能力的部份；不過，您必須先選定一台電腦，以便之後使用其他 LAN 介面進行更新，以連線到內部網路中具備 IPv6 能力的部分。
設定 ISATAP 路由器電腦 在 ISATAP 路由器電腦上，發出下列命令可讓 ISATAP 路由器電腦上的 ISATAP 通道介面處於媒體連線狀態：
netsh interface isatap set router IPv4Address
IPv4Address 是一個 IPv4 位址，這個位址會指派給連接到邏輯 ISATAP 子網路的 ISATAP 路由器電腦的 LAN 介面。
接著根據以下命令的輸出，確定 ISATAP 通道介面的名稱或介面索引，此 ISATAP 通道介面會對應到 ISATAP 路由器電腦 (已連接到邏輯 ISATAP 子網路) 的 LAN 介面：
netsh interface ipv6 show interfaces
接下來，使用這個命令來啟用 ISATAP 介面上的通告：
netsh interface ipv6 set interface ISATAPInterfaceNameOrIndex advertise=enabled
ISATAPInterfaceNameOrIndex 是 ISATAP 通道介面的名稱或介面索引。
然後使用此命令來設定 ISATAP 路由器電腦，以便向 ISATAP 主機通告 ISATAP 子網路首碼：
netsh interface ipv6 add route ISATAPSubnetPrefix ISATAPInterfaceNameOrIndex publish=yes
ISATAPSubnetPrefix 是確定的 ISATAP 子網路首碼
設定 DNS 在您的 DNS 中，將名稱 ISATAP 的位址 (A) 記錄新增到適當的網域中，好讓內部網路上的 ISATAP 主機能夠成功解析名稱「ISATAP」。譬如說，如果內部網路主機使用 contoso.com DNS 尾碼，您現在必須針對含有 IPv4 位址 (在僅 IPv4 內部網路上指派給 ISATAP 路由器的 LAN 介面) 的名稱 isatap.contoso.com，將 A 記錄新增到 contoso.com 網域。
如果 DNS 伺服器執行的是 Windows Server 2008，則使用 DNS 伺服器上的登錄編輯器 (regedit.exe)，從 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\DNS\Parameters\GlobalQueryBlockList 登錄值中移除 ISATAP 項目。
測試 ISATAP 主機 從內部網路的 ISATAP 主機中，使用 Ipconfig 工具來檢視指派的位址。ISATAP 主機應該具有符合以下格式的位址：ISATAPSubnetPrefix::5EFE:w.x.y.z 或 ISATAPSubnetPrefix::200:5EFE:w.x.y.z。例如，如果您的 ISATAP 子網路首碼是 FD8A:219C:052A:1::/64，而 ISATAP 主機具有 IPv4 位址 10.1.31.97，則 ISATAR 主機應該有一個指派給其 ISATAP 通道介面的位址 FD8A:219C:052A:1::5FE:10.1.31.97。
如果 ISATAP 沒有任何 ISATAP 位址是以 ISATAP 子網路首碼為基礎，請確認主機可以解析名稱「ISATAP」。若不能解析，請確認已經在適當的網域中建立 A 記錄，並請針對執行 Windows Server 2008 的 DNS 伺服器，檢查 GlobalQueryBlockList 登錄值已修改為移除 ISATAP 項目。如果可以解析名稱，請檢查 ISATAP 路由器電腦是否已正確設定。如果設定正確，請確認內部網路上的路由器允許轉送 IPv4 通訊協定 41 流量。
當 ISATAP 主機能夠順利地使用以 ISATAP 子網路首碼為基礎的位址自我設定時，這些主機會在 DNS 中將這些 ISATAP 位址登錄為 AAAA 記錄，並開始使用這些位址進行以 IPv6 為主的連線。

移轉內部網路：第 2 階段
在移轉至 IPv6 的第 2 階段中，您必須修改 ISATAP 路由器設定，以便在內部網路的僅 IPv4 與具備 IPv6 能力部分之間執行轉送作業。
請在 ISATAP 路由器電腦上，發出下列命令：
netsh interface ipv6 show interfaces
從以上的命令輸出中，判定已連接到內部網路中具備 IPv6 能力的部分與 ISATAP 通道介面的 LAN 介面的名稱或介面索引。
使用此命令來啟用 ISATAP 介面上的轉送功能：
netsh interface ipv6 set interface ISATAPInterfaceNameOrIndex forwarding=enabled
使用此命令來啟用 LAN 介面上的轉送功能：
netsh interface ipv6 set interface LANInterfaceNameOrIndex forwarding=enabled
LAN 介面的 LANInterfaceNameOrIndexisthe 名稱或介面索引。
使用下列命令將預設路由新增到 ISATAP 路由器：
netsh interface ipv6 add route ::/0 LANInterfaceNameOrIndex NextHopAddress publish=yes
NextHopAddress 是相鄰原生 IPv6 路由器的 IPv6 位址，此路由器位於內部網路上具備 IPv6 能力的部分。
重要的是，為了能夠從內部網路上具備 IPv6 能力的部份連接邏輯 ISATAP 子網路，您必須為原生 IPv6 路由器設定 ISATAP 子網路首碼的路由，以指回 ISATAP 路由器電腦。
若要針對內部網路上具備 IPv6 能力部分的電腦選擇性地停用 ISATAP，請操控 DNS 中名稱 ISATAP 的 A 記錄，如此一來，內部網路上具備 IPv6 能力部分的電腦就無法解析名稱 ISATAP。
另一種方法是建立 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\tcpip6\Parameters\DisabledComponents 登錄值，並將之設為 0x4 (DWORD 類型)。

移轉內部網路：第 3 階段
在第 3 階段中，整個內部網路都已具備 IPv6 能力，您需要移除 DNS 中的 ISATAP 部署，並重新設定 ISATAP 路由器電腦。針對 DNS，移除名稱 ISATAP 的所有 A 記錄。這樣可防止任何主機確知 ISATAP 路由器的 IPv4 位址。
針對 ISATAP 路由器電腦，執行下列命令：
netsh interface isatap set router default
此命令會將 ISATAP 元件重設為預設狀態。
從這個命令的輸出中確定 ISATAP 通道介面的名稱或介面索引：
netsh interface ipv6 show interfaces
使用此命令來停用 ISATAP 介面上的轉送和通告：
netsh interface ipv6 set interface ISATAPInterfaceNameOrIndex forwarding=disabled advertise=disabled
使用此命令從 ISATAP 路由器電腦中移除 ISATAP 子網路首碼路由：
netsh interface ipv6 delete route ISATAPSubnetPrefix ISATAPInterfaceNameOrIndex
ISATAPSubnetPrefix 是 ISATAP 子網路首碼。
如需 ISATAP 部署的詳細資訊，包括有關備援 ISATAP 路由器與防火牆考量等詳細資訊，請參閱《內部網站自動通道定址通訊協定部署指南》(英文)，網址是 go.microsoft.com/fwlink/?LinkId=106926。

Joseph Davies 是 Microsoft 的技術文件作家，從 1992 年開始教導和編寫 Windows 網路方面的主題。他出過八本 Microsoft Press 的書，同時也是每個月線上 TechNet Cable Guy 專欄的作家。若想閱讀更多《The Cable Guy》專欄，請參閱 microsoft.com/technet/community/columns/cableguy/about.mspx。


 Windows PowerShell: 進度報告
Windows PowerShell
進度報告
Don Jones

我最近寫了一段又臭又長的 Windows PowerShell 指令碼，它在執行時變得沒什麼回應。我是將它寫成以排程工作的方式執行，所以並沒有產生太多可見的輸出。當我第一次對它進行重要的測試時，卻開始擔心我可能
不小心寫入一個無限迴圈或是其他有問題的指令碼。
當殼層的小游標淒涼地一明一滅時，我不禁自問：「我把它砍掉了嗎？」顯然我對自己沒什麼信心，否則我也不會馬上按下 Ctrl+C 來中斷指令碼。該是時候加入一些進度報告了。

喋喋不休，長篇大論
本月指令程式：Tee-Object
本月我將介紹我最愛用的其中一個疑難排解指令程式。舉下面為例：
Get-WMIObject Win32_Service | Where { $_.State -ne "Running"
-and $_.StartMode -eq "Automatic" } | ForEach-Object { $_.Start() }
表面上，它應該會啟動所有設為自動啟動但因故尚未啟動的服務。不過這實際上卻不管用，而且很難找出失敗的原因，因為您不可能深入查看管線內部。正確來說，您不可能深入查看管線內部，除非使用 Tee-Object。
Tee-Object 會將物件重新導向到檔案 (或某個變數)，然後在管線中往下傳遞這些物件。例如：
Get-WMIObject Win32_Service | Tee-Object AllServices.csv | Where
{ $_.State -ne "Running" -and $_.StartMode -eq "Automatic" } |
Tee-Object FilteredServices.csv | ForEach-Object { $_.Start() }
這個修改動作可讓我檢視每個管線命令之後發生的情況，並立即發現我的 FilteredServices.csv 檔案中空無一物！難怪這個指令碼不管用！更進一步探究，便發掘出問題的根源 — StartMode 是「Auto」而非「Automatic」— 而 Tee-Object 讓我精準找出問題所在。

首先我要加入一些狀態訊息，好讓我清楚知道指令碼目前的作業情況。使用 Write-Verbose 指令程式即可在殼層中輕鬆完成這些工作。快在殼層中試試看：
Write-Verbose "Test Message"
如果您試過了，就會發現它沒有什麼作用。這是因為 Write-Verbose 將物件傳送到特殊的 Verbose 管線，而且在預設情況下並不會顯示輸出。此管線是由內建的殼層變數 $VerbosePreference 所控制。這個變數的預設值為 SilentlyContinue，因此會隱藏詳細資訊輸出。不過，如果將值設為 Continue，將可開放此管線：
$VerbosePreference = "Continue"
現在我可以將一些 Write-Verbose 陳述式加入指令碼中，並取得指令碼執行的相關詳細檢視。而且這個技巧的美妙之處在於，當我完成測試及疑難排解之後，只要在指令碼開頭將 $VerbosePreference 再次設為 SilentlyContinue，即可關掉這些額外的訊息，
根本沒有必要移除所有 Write-Verbose 陳述式。事實上，正由於這些陳述式都保留在指令碼中，因此每當我需要手動執行指令碼時，都可以視需要輕易地重新啟動 Verbose 管線。

但我仍然需要知道真正的進度
當我放心地知道指令碼並未陷入無限迴圈，而且實際上執行地很順利時，我關閉 Verbose 管線並再次執行指令碼 — 以確保萬無一失。
但問題來了，雖然知道指令碼運作十分順暢，我還是不能忍受盯著游標閃爍 (我有注意力難以集中的問題；我倒寧願看著油漆等它乾，也好過無事可做)。
我需要大概知道指令碼進行到哪裡了，以及它何時會完成。基本上，我想要有類似進度列的功能。
幸好，Windows PowerShellTM 內含 Write-Progress 指令程式。此指令程式不像 Windows® 一樣提供圖形進度列，但還是顯示不錯的進度列，如 [圖 1] 所示。這個進度列有點類似在 Windows Server® 2003 甚或是 Windows XP 中的安裝程式文字部分所使用的檔案複製進度列。
[圖 1] 指令碼的進度如何？
[圖 1] 指令碼的進度如何？
Write-Progress 的用法需要稍加說明，其實我覺得使用範例會更好懂。請看以下的指令碼：
for ($a=1; $a -lt 100; $a++) {
  Write-Progress -Activity "Working..." `
   -PercentComplete $a -CurrentOperation
   "$a% complete" `
   -Status "Please wait."
  Start-Sleep 1
}
它是使用 Write-Progress 來顯示進度列。我用了 Start-Sleep 讓指令碼每次通過迴圈時暫停一秒，藉此減緩它的執行速度，好讓我們能實際看到進度情況 — 若未暫停，迴圈會快速地從 0 數到 100，而進度列只會短暫地閃過畫面。
如您所見，Activity — 被我設為 Working — 顯示在進度列上方。Status 顯示在其下，而 CurrentOperation 則顯示在最底下。殼層一次只支援單一的進度列。如果使用 Write-Progress 的當時沒有任何已顯示的進度列，便會建立新的進度列，否則就會更新現有的進度列。
在此我尚未要求進度列在完成時消失。只要在指令碼結尾加入以下內容就可以這麼做：
Write-Progress -Activity "Working..." `
 -Completed -Status "All done."
一般而言，進度列會在指令碼完成時自動消失，但萬一指令碼還要繼續其他工作，您就會希望進度列在完成時隱藏；-Completed 參數會直接從畫面中移除進度列。

滴答、滴答、滴答
Write-Progress 另一個常見用法是建立「倒數秒數」畫面，而非實際的進度列。例子如下：
for ($a=100; $a -gt 1; $a--) {
  Write-Progress -Activity "Working..." `
   -SecondsRemaining $a -CurrentOperation
   "$a% complete" `
   -Status "Please wait."
  Start-Sleep 1
}
在此我將迴圈改成從 100 數到 1，並使用 Write-Progress 的 SecondsRemaining 參數來取代 PercentComplete。結果就如 [圖 2] 所示，如您所見，進度測量表已經消失，由倒數時鐘取而代之。殼層自動將剩餘的總秒數轉換成時、分和秒，以提供更人性化的資訊。在此顯示的完成百分比實際上是從 100 倒數，因為那就是我提供的 CurrentOperation 參數。其中不會實際計算已完成的百分比；Windows PowerShell 只是在字串「% complete」之前顯示 $a 的目前值。
[圖 2] 指令碼還有多久會完成？
[圖 2] 指令碼還有多久會完成？

善於溝通的指令碼
我特別熱中撰寫善於溝通現況的指令碼。無論是詳細資訊輸出或簡單的進度列都可以達到這種效果。它不僅能彌補我注意力不足的缺點，或許也能裨益幾個月後需要用到我的指令碼的其他工程師。畢竟，顯示某種狀態與進度資訊所能提供的好處多多。

Don Jones 是《Technet Magzine》的特約編輯，也是《Windows PowerShell:TFM》(SAPIEN Press，2007 年) 的作者之一。他負責教授 Windows PowerShell (請參閱 www.ScriptingTraining.com)，您可以透過 ScriptingAnswers.com 網站與他連絡。


 嗨，Scripting Guy！: 我們最愛的 Shell 遊戲
嗨，Scripting Guy！
我們最愛的 Shell 遊戲
The Microsoft Scripting Guys
下載本文程式碼: HeyScriptingGuy2008_03.exe (150KB)

有句 古語說，再小的麻雀落到地上，神都看得到。別誤會，Scripting Guy 可不是在建議各位去把天上的麻雀打下來(當然嘍，如果有人想要出面料理一下禮拜六大清早在屋頂上鬼叫的不識相的烏鴉，那就另當別論了。[Scripting Editor 是很愛烏鴉的，所以我們非常肯定撰寫本文的 Scripting Guy 所說的「料理」，是指「讓它們健健康康」的意思啦-小編]) 不過，知道有人關心你跌倒，而且不管你看起來多小多不起眼，總是有人在某個地方照應你，還是很窩心的。[就算他只是個小編。-小編]
烏鴉如此，系統管理員也是如此。我們可以這麼說，在指令碼的世界裡，大部分的焦點都落在指令碼的龍頭老大身上：Windows PowerShellTM、VBScript、WMI、ADSI，甚至 FileSystemObject。也難怪這些技術會搶盡所有的鋒頭，它們的確可以讓您做許多既酷眩又實用的事情。不過那不表示它們是指令碼撰寫人員唯一能夠使用的技術。絕對不是。
就拿 Shell 物件為例吧。Shell 物件也許不像 Windows PowerShell 那麼知名，那麼廣被宣傳，但它還是很重要 — 而且很實用。
遲早有一天會有人要求您以 Shell 物件撰寫系統管理指令碼的。不過這就產生一個問題了：您可以用 Shell 物件做哪些事情呢？事實上，您可以用 Shell 物件做許多很酷的事情，其中一部分 (例如，在複製或移動檔案時，管理磁碟配額和顯示進度列) 在＜Microsoft® Windows® 2000 指令碼手冊＞(英文) (microsoft.com/technet/scriptcenter/guide) 已有說明。在本期專欄當中，我們要另外告訴您 Shell 物件還能做哪些很眩的事情，那些事情您也許連想都沒想過能夠做到，更別提用 Shell 物件來做了。

變更檔案的上次修改日期
很多人也許一看這個標題就想：「慢著，檔案的上次修改日期是不能用指令碼更改的吧，至少不能用 VBScript。」而我們的反應則是：「您怎麼會有這種想法呢？」
對啦，我們 Scripting Guy 也許說過這句話啦。不過結果證實，我們錯了。想不到吧！竟然可以用 VBScript 更改檔案的上次修改日期，而且只要用 Shell 物件就辦得到。
附註：至於 Scripting Guy 怎麼會出這種錯，這您就別再問了；過了這麼多年，應該很清楚了吧。真要問的話，下面這個問題還更有意思：到底我們是怎麼做對的？
言歸正傳，您說您想要更改檔案的上次修改日期對吧？就用這個指令碼：
Set objShell = _
  CreateObject("Shell.Application")

Set objFolder = _
  objShell.NameSpace("C:\Scripts")
Set objFolderItem = _
  objFolder.ParseName("Dr_Scripto.jpg")

objFolderItem.ModifyDate = _
  "01/01/2008 8:00:00 AM"
您瞧，一點都不複雜。一開始先建立 Shell.Application 物件的執行個體 (對了，別把 Shell.Application 和 Wscript.Shell 搞混了，後面那個是 Windows Script Host Shell 物件，而我們今天用的 Shell 物件是 Windows Shell 物件)。等 Shell 物件啟動並執行之後，再用 Namespace 方法繫結到 C:\Scripts 資料夾，然後用名字古怪的 ParseName 方法繫結到資料夾中的指定檔案。在本例中，我們要繫結到檔名為 Dr_Scripto.jpg 的 JPEG 影像：
Set objFolderItem = _
  objFolder.ParseName("Dr_Scripto.jpg")
繫結到檔案本身之後，接下來要怎麼做呢？很簡單，只要把新的日期和時間指派給 ModifyDate 屬性就行了：
objFolderItem.ModifyDate = _
  "01/01/2008 8:00:00 AM"
就這樣。
沒錯。怎麼樣？很酷吧？只要執行這個指令碼之後，檔案的上次修改日期就會設為 2008 年 1 月 1 日早上 8 點 (您也可以在 Windows 檔案總管開啟 C:\Scripts 資料夾親自驗證)。
也許有人在想：「酷呆了，我可以更改檔案的上次修改日期，可是更改檔案的上次修改日期到底有什麼意義呢？」這個嘛，很多人常把上次修改日期作為一種版本控制系統。比方說，假設您有很多指令碼複本，如果想追蹤官方版的指令碼，其中一個方法就是複查上次修改日期。您可以藉由檢查上次修改日期，分辨出某一個複本是不是未經修改的原始指令碼版本。
附註：當然嘍，也許有人可以執行我們剛剛示範的指令碼來變更上次修改日期。但是只要您所做的動作沒有一一進行程式碼簽署，別人就有辦法入侵系統。假設您跟一群很有道德感的朋友們共用指令碼，採用這個方法肯定是明智之舉。
那麼，如果您想要更新所有指令碼的上次修改日期，並且將它們標準化，又該怎麼做呢？假設所有的指令碼都在 C:\Scripts 資料夾當中，只要執行下面這個程式碼區塊就行了：
Set objShell = _
  CreateObject("Shell.Application")

Set objFolder = _
  objShell.NameSpace("C:\Scripts")
Set colItems = objFolder.Items

For Each objItem In colItems
    objItem.ModifyDate  = _
      "01/01/2008 8:00:00 AM"
Next
您可以看到這個指令碼剛開始跟第一個指令碼非常類似，但在本例中，當我們繫結到 C:\Scripts 資料夾之後，並不是用 ParseName 個別繫結到資料夾中的各個檔案，而是改用下面這行程式碼，傳回資料夾中所有的檔案：
Set colItems = objFolder.Items
收到檔案集合之後，接著就設定 For Each 迴圈，對集合中的每一個項目重複執行同樣的動作。在 For Each 迴圈中，我們使用下面這行方便好用的程式碼，把集合中第一個檔案的 ModifyDate 屬性值改為 2008 年 1 月 1 日早上 8 點：
objItem.ModifyDate  = _
  "01/01/2008 8:00:00 AM"
接著只要再執行迴圈，針對集合中的下一個檔案重複這個程序就行了。全部執行完成之後，C:\Scripts 資料夾中所有檔案 (隱藏檔不算) 的上次修改日期就完全一樣了。您瞧，夠簡單吧？現在誰還敢說您不能用 VBScript 來更改檔案的上次修改日期？
很好。

說到出錯 ...
讓我們回到最開始的地方吧，當 Scripting Guy 著手撰寫系統管理指令碼時，還不能存取所有的延伸檔案資訊，這些資訊是附加到 NTFS 檔案系統中的一個檔案。比方說，如果您用滑鼠右鍵按一下 .wav 檔，然後再按一下 [內容]，就會看到類似 [圖 1] 所示的資訊。
[圖 1] 檔案屬性摘要
[圖 1] 檔案屬性摘要
您要如何使用指令碼來擷取像是位元速率或音訊範例大小的值呢？很抱歉，沒辦法。不過如果使用 Shell 物件的話就另當別論了 (如果您已經下載並安裝 Windows Desktop Search 3.0，那用這個軟體也成)。其實在這段時間當中，Shell 物件已經增加了擷取檔案所有延伸屬性資訊的功能，只是 Scripting Guy 不知怎的忽略了這件事。因此我們一直告訴大家：「指令檔不能用來判斷 .wav 檔的位元速率」。不過即使如此，只要看看 [圖 2] 所示的程式碼，就知道是可以的。
Figure 2 請使用一個指令碼來尋找 .wav 檔的位元速率 (Close Figure 2)
Set objShell = CreateObject("Shell.Application")

Set objFolder = objShell.NameSpace("C:\Scripts")
Set objFolderItem = objFolder.ParseName("J0388563.wav")

For i = 0 to 33
    strHeader = objFolder.GetDetailsOf(objFolder.Items, i)
    strValue = objFolder.GetDetailsOf(objFolderItem, i)
    If strValue <> "" Then
        Wscript.Echo strHeader & vbTab & strValue
    End If
Next
這段指令碼如何運作呢？這個指令碼一開始也和剛才看過的指令碼很類似，我們先建立 Shell.Application 物件的執行個體，再繫結到 C:\Scripts 資料夾，然後再用 ParseName 方法繫結到我們要討論的檔案 (此處是 J0388563.wav)。
不過接下來就有點詭異了。首先我們設定一個 For Next 迴圈，從 0 執行到 33；這是因為檔案支援 31 個不同的延伸屬性，其索引號碼就是 0 到 33 (請注意，有的號碼雖然是有效的索引號碼，卻不含任何屬性值，例如 27 和 28)。事實上，檔案支援 [圖 3] 所示的屬性。
Figure 3 檔案屬性 (Close Figure 3)

索引 | 屬性
0 | Name
1 | Size
2 | Type
3 | Date Modified
4 | Date Created
5 | Date Accessed
6 | Attributes
7 | Status
8 | Owner
9 | Author
10 | Title
11 | Subject
12 | Category
13 | Pages
14 | Comments
15 | Copyright
16 | Artist
17 | Album Title
18 | Year
19 | Track Number
20 | Genre
21 | Duration
22 | Bit Rate
23 | Protected
24 | Camera Model
25 | Date Picture Taken
26 | Dimensions
29 | Episode Name
30 | Program Description
32 | Audio Sample Size
33 | Audio Sample Rate
那麼，在 For Next 迴圈裡面要做什麼呢？首先就是執行下面這行程式碼：
strHeader = _
  objFolder.GetDetailsOf(objFolder.Items, i)
我們使用 GetDetailsOf 方法來擷取屬性 0 的名稱 (記住，我們的迴圈是從 0 執行到 33)。接著再把這個名稱儲存在名為 strHeader 的變數，然後再使用這行程式碼來擷取項目 0 的屬性值，把傳回的資訊儲存在名為 strValue 的變數：
strValue = _
  objFolder.GetDetailsOf(objFolderItem, i)
看到它是怎麼運作了吧？項目 0 碰巧就是 Name 屬性。因此第一次跑完迴圈時，strHeader 會等於 Name。另外，第一個檔案的真正名稱 (亦即 Name 屬性的名稱) 是 J0388563.wav。因此第一次跑完迴圈時，strValue 會等於 J0388563.wav。經過我們解說之後，似乎就沒那麼複雜了吧？
不過您可能也知道，並非所有的檔案類型都支援所有的延伸屬性。比方說，.jpg 檔就不會有 Album Title 或 Audio Sample Rate)。因此在下面這行程式碼中，我們要檢查傳回的值是否為空字串：
If strValue <> "" Then
如果該值是空字串，只要跳回迴圈最上層，以下一個延伸屬性重複這個程序就行了。如果不是空字串，就傳回屬性名稱和值，如下所示：
Wscript.Echo strHeader & vbTab & strValue
結果呢？就變成這樣：
Name    j0388563.wav
Size    169 KB
Type    Wave Sound
Date Modified   1/19/2004 8:56 AM
Date Created    3/6/2006 2:02 PM
Date Accessed   12/3/2007 10:41 AM
Attributes      A
Status  Online
Owner   FABRIKAM\kenmyer
Bit Rate        90kbps
Audio Sample Size       4 bit
Audio Sample Rate       11 kHz
很好。
雖然時間快不夠用了 (空間也是)，不過如果您還想知道有哪些更簡單的方法可以傳回最重要的屬性值，不妨改試 [圖 4] 的這個指令碼。
Figure 4 傳回屬性值的簡易方法 (Close Figure 4)
Const colInfoTip = -1

Set objShell = CreateObject("Shell.Application")

Set objFolder = objShell.NameSpace("C:\Scripts")
Set objFolderItem = _
  objFolder.ParseName("01. Out On The Weekend (Album Version).wma)")

Wscript.Echo objFolder.GetDetailsOf(objFolderItem, colInfoTip)
這段指令碼在做什麼呢？如果您是在 Windows 檔案總管中，而且將滑鼠指標移到某個檔案上，這時候就會出現工具提示，提供一些該檔案的相關資訊，如 [圖 5] 所示。那麼如何使用指令碼取得這項工具提示資訊呢？沒錯，就用我們剛剛顯示給您看的指令碼：
[圖 5] 工具提示所顯示的屬性
[圖 5] 工具提示所顯示的屬性
Artist: Neil Young
Album Title: Harvest
Year: 1972
Track Number: 1
Duration: 0:04:35
Type: Windows Media Audio file
Bit Rate: 256kbps
Protected: Yes
Size: 5.31 MB
本期專欄已接近尾聲。最後讓我再提一下麻雀吧。追補小麻雀的人，很有可能是因為下面這個理由才這麼做：這世界上有些地方把麻雀進入屋內視為不祥之兆。為什麼呢？因為那表示屋裡會死人 (有些地方只有麻雀停在鋼琴上才算。不過那不是迷信，只是怪談)。下面才是真正有意思的部分：這世界上還有一些地方，把麻雀飛到屋內視為屋裡有人要結婚的吉兆。真搞不懂哪邊才是對的。

Dr. Scripto 的指令碼謎題 (Scripting Perplexer)
這個每月一次的挑戰不僅測試您的解謎功力，更要測試您的指令碼技巧。

March 2008:Cryptic Script
本月份的謎題是密碼，意思是說每一個字母都各以不同的字母替代表示 (但所有的符號和數字都原封不動)。同一個字母所代表的一定是同一個替代的字母。比方說，所有出現的 a 皆以 b 替代表示，而所有出現的 b 皆以 z 替代表示，依此類推。以下是一個簡單的範例：
tdsjqu dfoufs
解碼後如下所示：
script center
這個案例的解碼動作，是把每一個字母換成它的前一個字母，因此 t 換成 s，d 就換成 c，依此類推。
下面這個謎題更沒有規則可循了。解碼之後的指令碼，會開啟一個 Microsoft Excel® 實例、增加新的試算表、把四個值指派給試算表中的第一欄，然後以遞增順序排列該欄的順序。
祝您玩得愉快。

謎題
kqyjs edfjkzyrlyg = 1
kqyjs edyq = 2
kqyjs edjqtstqmj = 2

jzs quwzekzd = ktzfszquwzks("zekzd.faadlkfslqy")
quwzekzd.iljludz = stcz

jzs quwmqtxuqqx = quwzekzd.mqtxuqqxj.frr
jzs quwmqtxjozzs = quwmqtxuqqx.mqtxjozzsj(1)

quwmqtxjozzs.kzddj(1, 1) = "kfs"
quwmqtxjozzs.kzddj(1, 2) = "rqg"
quwmqtxjozzs.kzddj(1, 3) = "ufs"
quwmqtxjozzs.kzddj(1, 4) = "faz"

jzs quwtfygz = quwzekzd.fkslizkzdd.zysltztqm
quwtfygz.jqts quwtfygz, edfjkzyrlyg, , , , , , edyq, , , edjqtstqmj

Dr. Scripto 的指令碼謎題 (Scripting Perplexer)
答案是：Cryptic Script, March 2008
下面是解碼關鍵：
Actual Letter	a	b	c	d	e	f	g	h	i	j	k
Coded Letter	f	u	k	r	z	b	g	o	l	w	x

Actual Letter	l	m	n	o	p	q	r	s	t	u	v	w	x	y	z
Coded Letter	d	n	y	q	a	h	t	j	s	c	i	m	e	v	p
下面是解碼後的真正指令碼：
Const xlAscending = 1
Const xlNo = 2
Const xlSortRows = 2

Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True

Set objWorkbook = objExcel.Workbooks.Add
Set objWorksheet = objWorkbook.Worksheets(1)

objWorksheet.Cells(1, 1) = "Cat"
objWorksheet.Cells(1, 2) = "Dog"
objWorksheet.Cells(1, 3) = "Bat"
objWorksheet.Cells(1, 4) = "Ape"

Set objRange = objExcel.ActiveCell.EntireRow
objRange.Sort objRange, xlAscending, , , , , , xlNo, , , xlSortRows

The Microsoft Scripting GuysScripting Guy 為 Microsoft 做事，也就是受雇於 Microsoft。他們在不玩、不教或不看棒球 (以及其他各種活動) 的時候，就負責管理 TechNet 指令碼中心。請造訪他們的網站：www.scriptingguys.com。


 安全性監控: 在 Windows Server 2008 上使用 SCW
安全性監控
在 Windows Server 2008 上使用 SCW
Jesper M. Johansson
本文是根據 Windows Server 2008 的搶鮮版所撰寫。本文包含的所有資訊均有可能變更。

讓我們回溯到 2005 年，也就是 Microsoft 推出 Windows Server 2003 SP1 的那一年。這個 Service Pack 引進了 Windows 第一個角色導向的安全性管理工具：即「資訊安全設定精靈」(SCW)。Microsoft 設計 SCW 是希望將之作為縮小攻擊面工具的前驅。它的目的是要分析您實際上利用電腦做了哪些動作，
並且自動設定讓它支援您所需要的角色，同時停用目前不用的角色和服務。
Windows Server® 2008 保留了 SCW，雖然這個 SCW 更換了新的角色，也整合了新的 Windows® 防火牆，不過它仍然是進階的系統管理工具，這一點從未改變。
Windows Server 2008 還加入新的角色導向伺服器管理員工具及其同系列家族 ─ 「新增角色精靈」和「新增功能精靈」。Windows Server 2008 不是透過舊式的 [新增/移除 Windows 元件] 控制台來新增個別元件，而是使用角色管理工具來設定伺服器。Byron Hynes 在本期《TechNet Magazine》當中＜透過伺服器管理員設定角色＞ 一文，都有討論這些工具。
「新增角色精靈」和「新增功能精靈」都是以適當的元件設定伺服器支援您所選擇的角色，它們同時也會設定內建防火牆，以確保這些角色能夠正常運作。既然如此，那還需要 SCW 做什麼？即使許多系統管理員已經不再使用 SCW 了，但對於兩種人來說，SCW 仍然是非常重要的工具。第一種是政風安全人員，這些人員是靠著 SCW，把安全性帶向下一等級。
「新增角色精靈」和「新增功能精靈」是採用預設伺服器，並且設定讓它安全支援您所要的角色和功能，而 SCW 是設定讓伺服器只支援您所要的角色和功能。另外，SCW 還兼具教學功能，有助您更加瞭解設定伺服器的方法。因此，只要以足夠的角色和功能設定伺服器之後，我強力推薦您執行 SCW。
至於第二種人，是想要瞭解各種元件之間關係的使用者。SCW 包含一組記錄角色和功能、服務以及網路連接埠之間關係的 XML 檔案。如果您有興趣瞭解各種元件的需求，SCW 是一個相當有用的工具。
在本文中，我將說明 SCW 的運作方法，以及如何利用它來保護您的伺服器。同時我也將比較 SCW 和伺服器管理員工具之間的異同。請注意，本文是改寫自我的著述《Windows Server 2008 Security Resource Kit》(Microsoft Press®，2008)。

資訊安全設定精靈概觀
一開始我要提出一些關於 Windows Server 2008 攻擊面的統計數據。在加入您個人挑選的角色和功能來設定伺服器之前，其實服務的數量就相當可觀。根據預設值，Windows Server 2008 有 105 個服務 — 其中 42 個是設為自動啟動，55 個是設為手動，另外 8 個則被停用。而全新安裝的 Windows Server 2003 R2 SP2，預設會安裝 86 個服務 — 其中 34 個是設為自動啟動，32 個是設為指定啟動，另外 20 個則被停用。
即使運用了角色隱喻 (Roles Metaphor)，而且也減少了支援的預設角色，但是 Windows Server 2008 的角色數量仍然偏高，因此您在強化伺服器時，必須特別小心。SCW 會引領您針對特定的伺服器，建立自訂資訊安全設定。
SCW 在強化伺服器時，採取了與現有工具截然不同的方式。它使用角色隱喻來設定系統，讓系統支援那些角色及其他少數角色 (如果有的話)。SCW 除了與「新增角色精靈」和「新增功能精靈」一樣，可幫助您設定防火牆之外，也會停用不必要的服務，並且額外設定一些資訊安全設定。最後，「新增角色精靈」和「新增功能精靈」只能安裝和設定內建在 Windows 中的角色，但是 SCW 卻可以擴充。開發人員或系統管理員可以撰寫自訂角色或功能設定檔，並且使用 SCW 來設定任何產品。
SCW 是在您安裝伺服器應該具備的所有角色和功能之後才使用。如果您的伺服器上也有協力廠商應用程式，那麼在執行 SCW 之前，最好先安裝它們。
為了示範這個程序，我用了三個角色 (應用程式伺服器、DNS 伺服器和網頁伺服器) 和兩項功能 (Microsoft® .NET Framework 3.0 功能和 Windows 處理程序啟動服務) 來設定伺服器。雖然這不是一組特別邏輯化的角色和功能，但卻很適合這項討論。
啟動 SCW 時，請從 [系統管理工具] 功能表執行它。這時候應該會出現 [圖 1] 所示的對話方塊。
[圖 1] SCW 一開始會先訽問您要做什麼
[圖 1] SCW 一開始會先訽問您要做什麼
第一步是選擇您要建立新的安全性原則、編輯或套用現有的原則，還是復原原則，讓系統回到原始設定。這些選項都相當明確，一目了然。
當您選擇建立新的安全性原則時，SCW 會以某一部電腦作為該原則必須支援的範本，建立新的原則。它會分析這部電腦，並且決定它支援哪些功能和角色，不但確保那些功能和角色都能運作，同時也確保許多不必要的功能一律停用。
SCW 可應用在原型模型上。它使用 XML 檔案來指定角色和功能的模樣，例如要安裝哪些檔案，以及要設定哪些服務等。這也是為什麼您必須在開發原則的電腦上安裝所有一切的原因。如果您有協力廠商程式在安裝時，也一起安裝了 SCW 定義，那麼這些程式將完美的整合在一起。但是，如果協力廠商程式沒有安裝 SCW 定義，您就必須手動設定它們。
正如您所見，您可以在一個系統上建立原則，然後將它套用到許多系統上。如果您要組合許多系統建立一個網路，最好先定義個別設定的主機類別，接著就可以將其中一個類別作為原型來建立原則，再將這個原則稍加修改，甚至不需修改，輕鬆套用到其他原則上。
當您在 [圖 1] 所示的對話方塊中按 [下一步] 時，精靈會詢問您要使用哪一部電腦作為新原則的基準或原型。通常您是選擇本機電腦，不過您也可以選擇遠端電腦作為原型。
在指定要用的系統之後，接下來是分析階段。SCW 會在此處列舉您所安裝的角色和功能，然後核對角色和功能的資料庫，找出相符的項目。資料庫所含的資訊有：每一個角色和功能使用哪些服務、它們需要哪些網路連接埠，另外還包括其他重要的設定資訊。分析完畢之後，您可以按一下 [檢視設定資料庫]，看看「資訊安全設定精靈」找到哪些項目。請注意，這是一種唯讀檢視，提供設定電腦完整的相關資訊。其實，如果您真的有意瞭解您電腦上有哪些東西，不妨好好花時間研究這些資訊。

以 SCW 設定您的伺服器
當您按 [下一步] 時，會進入 SCW 中四個區段的第一區段：[以角色為基礎的服務設定]。您可能會注意到，在 SCW 裡面的角色 (如 [圖 2] 所示)，與在「新增角色精靈」裡面的不一樣。大部分「新增角色精靈」有的角色，這裡也都會有，另外 SCW 還會提供一些「新增角色精靈」所沒有的角色。比方說，我之前所選的應用程式伺服器角色，就是「新增角色精靈」所沒有的。這是因為 SCW 所用的角色隱喻不太一樣。稍後我會在本文詳細討論這一點。
[圖 2] 使用 SCW 來選取您希望伺服器支援的角色
[圖 2] 使用 SCW 來選取您希望伺服器支援的角色
這個對話方塊通常已經選好正確的角色組，您只要驗證分析所找到的是正確的角色就行了。如果有什麼問題，請檢查該角色是否已經安裝，如果沒有安裝，請先安裝好之後再重新執行 SCW。就算犯了錯，也不至於到無法收拾的地步。SCW 中的復原功能，可將原則所做的所有變更全部復原，恢復到最開始的狀態。
您在本區段所做的回答非常重要，因為它們會決定您之後在網路區段所看到的畫面。幸好偵測邏輯相當稱職，它通常都能夠選出正確的角色組。
另外也請注意，在預設的情況下，您會看到 [已安裝的角色]，只要磁碟上有足夠的的位元，伺服器都會支援這些角色。這些選出來的角色是目前支援的角色。您也可以選擇查看資料庫中所有的角色，方法是從下拉式清單中選取 [所有的角色]。如果您必須使用原型伺服器來建置原則，而這個原型伺服器尚未安裝它所需的所有角色，這個方法就可以派上用場。
設定角色之後，接下來就是選取您要支援的用戶端功能。功能組與「新增功能精靈」中的功能組很類似，但是不太一樣，而且功能也比較少。同樣的，隱喻也不盡相同，而且由於 SCW 可以擴充，因此您所看到的會與「新增功能精靈」不同。
當您在 SCW 的 [用戶端功能] 頁面按 [下一步] 時，會出現 [選擇系統管理和其他選項] 對話方塊，如 [圖 3] 所示。SCW 中的選項不太適合角色或功能。它也許會提供系統管理支援，也可能只是一項服務，例如互動式服務偵測。同樣的，大部分您所需要的選項，這裡應該都已經選好了。另外還值得一提的，是下拉式功能表。下拉式功能表中的選項，與您之前所選的角色和功能相關，而它也會根據電腦的不同而改變。
[圖 3] 選取 SCW 中其他的服務和功能
[圖 3] 選取 SCW 中其他的服務和功能
接下來出現的是 [選擇其他服務] 對話方塊。雖然 SCW 附隨一個龐大的服務資料庫，但並非所有的服務都會在此說明。如果 SCW 在電腦上找到的服務不在資料庫中，這些服務都會顯示在 [其他服務] 頁面上。所有內建服務應該都會說明，而且除非您有安裝協力廠商的服務，否則應該看不到這個對話方塊。
接著精靈會讓您選擇要如何處理您沒有設定的服務。如果您打算採用您所建立的原則，並且將它套用到另一部電腦，就可以使用這個選項。如果該部電腦裡的服務，與您建立原則的服務不同，SCW 必須知道要如何處理它們。其中一個選擇是不管它們，這是預設的選擇。另一個選擇是停用它們，這個做法比較安全，但可能會中斷某些作業。但如果您聽取建議，只把那些原則套用到與您建立原則的伺服器完全一樣的伺服器，那麼您在本頁所做的選擇將不會有任何關聯。
現在您已經完成 SCW 的角色設定部分，而精靈會扼要概述您所完成的動作。如 [圖 4] 所示，即使您只是接受精靈的預設值，也會對電腦的攻擊面造成顯著的影響。比方說，這部電腦不是列印伺服器，而且沒有安裝印表機，因此不可能執行列印多工緩衝處理器服務。SCW 會停用所有不必要的服務。在我們的測試伺服器上，SCW 會停用 17 個被設為自動啟動的服務，並且將 42 個手動啟動服務設為停用。雖然結果會因為您對伺服器的設定方式而有所不同，但是 SCW 絕對可以讓您輕鬆打造一個您專屬伺服器特有的原則，大幅縮小它們的攻擊面。
[圖 4] SCW 會將您所做的變更製作一份摘要
[圖 4] SCW 會將您所做的變更製作一份摘要
現在您即將進入可以說是 SCW 最重要的區段：[網路功能]。在一開始的歡迎畫面之後，您會看到 [網路安全性規則] 對話方塊，如[圖 5] 所示。其中包含一份所有 SCW 提出的防火牆規則清單，這些都是根據您在前面區段所選的角色支援而定。
[圖 5] SCW 會列出所有它認為您需要的規則
[圖 5] SCW 會列出所有它認為您需要的規則
如果在 [網路功能] 區段中沒有進一步的設定，SCW 就會建置防火牆規則，來鎖定網路介面，如此一來，只有這些角色和功能會受到支援，但是所有的用戶端都可以存取它們。不過，若要真正將伺服器的安全性最佳化，在建置伺服器隔離策略時，最好將 SCW 作為完整的一部分來使用。若要瞭解伺服器隔離 (及其鄰近的同層級 ─ 網域隔離) 的其他相關資訊，請參閱 technet.microsoft.com/network/bb545651。
在《Windows Server 2008 Security Resource Kit》中，有一章專門講述如何以伺服器和網域隔離來保護網路，以及如何使用網路威脅模型來分析您的網路，以協助部署伺服器隔離。而 SCW 在這個程序佔有舉足輕重的地位。
您可以選取提出的規則，並且按一下 [編輯]，對它設定限制。這時候會出現 [圖 6] 所示的對話方塊。這是其中一頁，總共有四頁，這些頁面全都可以讓您對網路規則設定額外的限制。比方說，您可以要求進行 IPsec 驗證。如果您選擇此選項，也可以只將連接埠連接到特定的端點。舉個例說，您可以設定它只接受特定主機所進行的遠端系統管理。而這正是優於「新增角色精靈」和「新增功能精靈」的主要優點。
[圖 6] SCW 容許您建置防火牆和 IPsec 規則
[圖 6] SCW 容許您建置防火牆和 IPsec 規則
根據您所選的角色來建置連接安全性規則的這項功能，有兩大用途。第一，它提供重要的學習機會，讓您瞭解您的伺服器在做什麼。您甚至不需要建置伺服器，只要執行精靈、做出不同的選擇，然後看看這些選擇對稍後出現的頁面選項會產生什麼影響就行了。第二，它讓您將相當抽象的連接埠概念，與比較邏輯化的服務概念連接起來，根據系統實際的行動來設定網路限制。
一切正確無誤的話，就能夠為您的伺服器開發一個相當嚴密的設定。SCW 的 [網路功能] 區段肯定是您在建置伺服器的安全性原則時，應該花最多時間的地方。
SCW 的其餘部分，則可讓您設定稽核以及幾項登錄設定。這些參數的預設值，對於大部分的公司而言已綽綽有餘，除非您有特殊需求，否則不必在此琢磨。
建立原則之後，就可以將它儲存起來，並套用到您所使用的電腦，或者將它套用到其他電腦。您還可以使用 scwcmd.exe /transform 命令，將原則轉換為群組原則物件 (GPO)。
但是，如果原則當中有電腦特有的設定，這個動作就不一定行得通了 — 說不定還會得出很奇怪的結果。比方說，如果您在 [網路功能] 區段建立內含本機介面卡的端點限制，這個原則會被視為電腦特有，而且無法順利轉換。這是因為那些介面卡必須使用 GUID 加以指定。某電腦上的介面卡的 GUID，對另一部電腦並沒有什麼意義。
因此，您最好是依照不同的伺服器使用 SCW，以及將它用作為學習的工具。如果是大型的伺服器陣列，則可以利用 SCW 作為瞭解電腦及開發基本原則的途徑。接著您可以採用這個原則，使用您設定伺服器所用的工具 ─ 例如，群組原則或企業管理系統 (例如 Microsoft Systems Center)，重新建立它。

SCW 與伺服器管理員
讀到這裡，您應該知道角色和功能所用的隱喻是不同的。SCW 中的「功能」，是指電腦以用戶端的身分所做的動作，而「角色」則是指它以伺服器的身分所做的動作。
這與伺服器管理員工具中所用的隱喻不同，伺服器管理員工具的角色是指服務與功能的集合，可視為一個單位，而功能則是支持角色的動作。基本上，伺服器管理員把角色視為您購買伺服器，要求伺服器負責的工作。功能雖然很重要，但並不是您購買伺服器的目的。這兩種隱喻以及對同一詞彙的兩種用法，很容易讓人混淆不清。所以在切換使用工具之前，一定要先仔細想清楚。
此外，伺服器管理員工具是無法擴充的，它們只能管理 Windows 所附隨的元件。相較之下，您所安裝的協力廠商程式，則可以在 SCW 加入角色和功能，您甚至可以撰寫自己的角色和功能。至於怎麼做，《擴充資訊安全設定精靈》(英文) 這本白皮書 (可在 go.microsoft.com/fwlink/?LinkId=107397 取得) 有相關的解說。
SCW 也會停用您不需要的元件。而伺服器管理員工具只負責部署您所要求的元件，不會碰電腦上的其他東西。如果您希望有人幫助您判斷哪些元件不需要，還是應該求助 SCW。
此外，雖然伺服器管理員工具和 SCW 都會設定您的網路，但 SCW 在這方面的功效要來得顯著許多。如果您要建立一套伺服器隔離策略，SCW 是一個取之不盡的資訊金礦，也是您在部署時的最佳伙伴。雖然這個主題講的是進階安全性系統管理，不過 SCW 其實是一個進階安全性工具。
最後，SCW 也會設定一些伺服器管理員工具不會設定的安全性設定。不過它們絕大多數在 Windows Server 2008 已被更有效的控制項所取代 — 或是預設都已經設定好了。

Jesper M. Johansson 是負責軟體安全性問題的安全性工程師，也是《TechNet Magazine》的特約編輯之一。他擁有 MIS 博士學位，並且在安全性領域有超過 20 年的經驗。


 桌面檔案: 錢不嫌多，人不嫌瘦，電腦不嫌太精簡
桌面檔案
錢不嫌多，人不嫌瘦，電腦不嫌太精簡
Wes Miller

如果您曾去過 Microsoft 園區，也許看過大部分大樓的接待區都有公用的資訊站系統。這些系統是以連接到 Windows 終端機服務的 Web 前端建置而成，讓穿梭在大樓之間的員工能夠及時接收電子郵件，並且連接到其他
地方。其實它們是利用已經報廢又再生的舊電腦設定而成。那些速度太慢、缺乏記憶體，又沒有足夠硬碟的硬體，卻是作為精簡型用戶端應用程式的最佳選擇。如果您的硬體因為種種原因變得老舊，也可以將它作為會議室的工作站，或者作為培訓用的電腦等，發揮它的用途。與其將它丟到垃圾掩埋場，不如將它環保回收，以小錢換得意想不到的收穫。
如果貴公司正在進行 Windows Vista® 升級，可能會發現有的硬體比您預想的更舊。這也許是因為沒有信賴平台模組 (TPM) 或 Aero® 支援的關係，如果系統只需要較大的硬碟或較大的 RAM，只要把硬體升級就行了。但是有的系統因為硬體力道不夠，或者缺乏重要功能，就是無法執行 Windows Vista。這種硬體作為 Windows® 精簡型用戶端再適合也不過了。[圖 1] 所列的是 Windows Vista 硬體需求，您可以從這份清單判斷目前硬體的歸類。
Figure 1 Windows Vista 硬體需求 (Close Figure 1)

硬體 | 需求
CPU | 建議使用 1GHz+。CPU 速度可以決定 Windows Vista 的實用性。緩慢、單核心的 CPU 並不會減少實用性，反而能夠成為優秀的精簡型用戶端。請注意，如果您真的考慮使用 x64，那麼替換 Windows Vista 硬體是最好的選擇，不妨在將硬體全面整理時移到 x64。
記憶體 | 建議使用 1GB+。您可以在一部系統上增加記憶體，但是在數十、數百或數千部系統上安裝記憶體是否符合成本效益呢？
GPU | 128MB+ 的圖形記憶體、支援 DirectX® 9.0 與 WDDM 驅動程式以及 Pixel Shader 2.0 支援。它不見得是害群之馬，因為它主要限制的是 Aero 支援。
HDD | 40GB+ 的硬碟。與桌上型電腦比起來，這在行動系統上比較有問題。
驅動程式問題 | 您系統上所有的硬體都能夠使用 Windows Vista 驅動程式嗎？
TPM | 如果您要 BitLocker 支援，但不需要 USB 快閃磁碟機，那麼您的電腦需要 TPM 1.2 硬體。

那麼，您要如何利用精簡型用戶端呢？
您可以使用舊的硬體和較小的作業系統，建立公共區/接待區資訊站，讓使用者可以及時接收電子郵件，就像身在 Microsoft 辦公室一樣。您可以設定系統，讓它執行遠端桌面，或是管理周密的 Internet Explorer® 執行個體。您可以執行 Microsoft PowerPoint® 和遠端桌面及少數其他軟體，在會議室安裝簡報播放系統。也可以組合舊硬體和精簡型用戶端，作為銷售點管理系統或工作搜尋資訊站。那麼，您應該使用哪一種精簡型用戶端呢？

Windows XP Embedded
我在前幾篇文章提過 Windows XP Embedded 是如何開發成可塑性強、元件化版的 Windows XP。根據 Don Jones 在 2007 年 4 月份專欄所討論的內容 (請參閱 technetmagazine.com/issues/2007/04/XPe)，建立 Windows XP Embedded 映像的工具有好幾種 — 其中最重要的一種就是 Target Designer (見 [圖 2])。Target Designer 可讓您建立自己的自訂 Windows XP Embedded 映像。
[圖 2] Windows XP Embedded Target Designer 映像
[圖 2] Windows XP Embedded Target Designer 映像
請注意，Target Designer 附隨了多種設計範本幫助您入門探索。當然您也可以完全自己創建，不過使用範本能夠達到事半功倍的成效。[圖 2] 所顯示的資訊站/遊戲主控台和 Windows 終端機範本，就是很好的起點。Windows XP Embedded 會提供您完整的裝置支援和原生電源管理，就像完整的作業系統影像所提供的一樣 (您只要把它們的支援內建到映像中即可)。當然，您所加入的功能越多，所需要的硬體就越多，所以一定要做出明智的選擇。Microsoft 網站上有相當充分的 Windows XP Embedded 相關資訊供您參閱：microsoft.com/windows/embedded/eval/xpe/default.mspx。

Windows Embedded for Point of Service
Windows Embedded for Point of Service (WEPOS) 針對建置在 Windows XP Embedded 的服務點 (POS) 系統，提供了完整標準化的範本。WEPOS 為許多 POS 相關週邊設備提供內建支援，目標鎖定零售與餐旅服務市場。它與 Windows XP Embedded 的不同之處在於，它所提供的是一組專為這個角色所設計的固定功能，因此無法達到 Windows XP Embedded 的自訂化程度。
WEPOS 平台是專為極簡的系統而設計，只需要 233MHz Pentium II 或更快的處理器、64MB 的 RAM 以及 280MB，就足夠它的核心作業系統映像使用。有關 WEPOS 的詳細資訊，以及訂購試用版的連結，請上 microsoft.com/windows/embedded/wepos。

Windows Fundamentals for Legacy PC
Windows XP Embedded 和 WEPOS 主要是針對裝置製造商而設計，內建於裝置當中，而 Windows Fundamentals for Legacy PC (FLP) 則是軟體保證的一個授權元件，專門用於這種案例，這一點與前二者不同。[圖 3] 所示的是 Windows FLP 的安裝畫面，它提供四種設定選項讓使用者選擇：最小安裝、一般安裝、完整安裝以及自訂安裝。
[圖 3] Windows FLP 安裝
[圖 3] Windows FLP 安裝
Windows FLP 需要 64MB 的 RAM、500MB 或 500MB 以上的硬碟空間，以及 800x600 或更高解析度。硬碟空間的實際系統需求，可能會根據您選擇安裝的作業系統元件而不同。
如果您要找一個相當有彈性的基本作業系統，搭配傳統硬體使用，而且您已經擁有軟體保證，那麼 Windows FLP 是個不錯的選擇。有關 Windows FLP 如何幫助您順利移轉到最新硬體和作業系統等資訊，請參閱 microsoft.com/licensing/sa/benefits/fundamentals.mspx。

精簡的 Windows XP
除了這些較小的版本之外，Windows XP 本身也很適合按原樣使用。如果您的 RAM 不多，也許只要停用像 Windows 佈景主題及其他等服務，就可以節省足夠的費用，讓系統充分發揮效能。但是，您一定要知道您停用了哪些東西，而且絕對不能損及安全性 (例如，停用 Windows 防火牆)。

哪些不適用
有些人常常會把一些用於 Windows 的其他選項用於輕量型系統，真是拿他們沒辦法。下面我們舉幾個最明顯的選項，並且詳細說明為什麼這些選項都無法盡如人意的運作。
Windows XP Starter Edition 非常適用於拘束性系統，但它主要是針對開發技術市場而設計，而且只能透過 OEM 在這些市場中作為 Windows 授權版隨機安裝在新電腦上提供。因此，它其實不能算是一個選項。如果您想一探究竟，請看這裡：microsoft.com/presspass/newsroom/winxp/WinXPStarterFS.mspx。
同樣的，Windows PE 也不是一個有效的選項。有意思的是，在開發 Windows PE 時，Microsoft 最初考慮將它作為輕量級作業系統使用。但它最後並不是作為輕量級作業系統，而是專門部署用的基本預先安裝環境。舉個例說，Windows PE 除了命令提示字元之外，並沒有命令介面 (您也很難新增一個很實用的命令介面)，它沒有定義的 API 組，沒有電源管理，也沒有音訊支援。
精簡版的 Windows XP 也不是一個很好的解決方案。我聽過一項建議，說縮簡 Windows 才是務實的做法。我想它所謂的縮簡不是指關閉服務或停用服務，而是實際移除應用程式，讓它成為較輕量型的 Windows 安裝。我絕不贊成這種做法。如果您為了縮簡 Windows 而移除二進位檔，就得承受不穩定或不安全的風險。如果您需要縮小版的 Windows，不妨使用 Windows XP Embedded。您可能需要花點時間學習，才能發揮功效，但它的確非常有效，最棒的是，它受到 Microsoft 的支援。
使用舊版 Windows 與使用基本版 Windows XP 的情況很類似，也許聽起來很不錯，但光是缺乏支援、更新和安全性，就足以讓您打退堂鼓了。最好還是追尋 Microsoft 已經支援的解決方案，幫助您滿足輕量型的運算需求吧，它不但能將舊軟體發揮最大的作用，同時也保有適當的功能或安全性。

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


 現場筆記: 準備迎向 IT 2.0
現場筆記
準備迎向 IT 2.0
Romi Mahajan

在 《The Life of Reason》這本書當中，偉大的哲學家暨評論家 George Santayana 寫道：「不能記得過去的人，肯定會一再重蹈覆轍」，一語道出努力記取過去教訓，才能積極打造美好未來的重要性。這項見解也很明確的反應在政治、文化、歷史甚至是科學等領域。事實上，「從錯誤中學習」這個想法實在普通到說它是陳腔濫調也不為過。但是資訊技術界又有多少人真的在思考過去 — 而且記取過去呢？如果我們沒有這麼做，還能坦然說自己在準備迎向未來的 IT 世界嗎？而未來的世界又是什麼樣子呢？
就讓我們發揮記憶力來猜猜看吧。過去 30 年來的變化是相當大的。IT 從大型電腦發展到瀏覽器運算，從裝置集中發展到裝置擴散，從稀有和不成熟發展到普遍和超級專業，從相當簡單發展到異常複雜。依此類推，我們可以預期 IT 會越來越複雜、越來越專業，而且越來越大眾化。IT 也需要支援越來越多數量與種類的裝置和平台。而要達到這個目標，必須比過去更詳細的規劃才行。
那麼這些概念已經普遍被吸收了嗎？還早得很呢。
就拿最近 2007 年 11 月所舉辦的科技會議中，我以「IT 的消費主義」為題主導的討論對話為例，討論小組的前提相當簡單：企業與消費者科技之間的界線已經模糊了，消費者應用程式與裝置主導了 IT 的發展，IT 部門必須上緊發條，迎向以全球 Facebook、iTune 和 BlackBerry 為代表的傑出系列產品。聽起來是不是很簡單？很平淡無奇？還是很落伍？
這個嘛，從會議室在場人員的反應來看倒是完全不會。大約 100 人中只有 4 個人提到他們「上過 Facebook」。一位與會者說：「那是年輕人的玩意兒」。一位小組討論員問道：「難道您 IT 部門支援的員工都不年輕，也都不上 Facebook 的嗎？」現場充斥一片騷亂與否認的聲音。會議室中只有少數幾位 IT 經理，認為有必要為他們的公司雇用知道如何在大多數人進行科技相關事宜的新平台上，建立和支援應用程式與裝置的人員。
當被問到如何建立有效的 IT 原則，來控管手機和膝上型電腦這類家用兼商用裝置等交叉科技的使用與安全性時，大夥一片喧嘩，卻沒有人能夠提出有內容的意見。其中一位與會人士以 IT 1.0 獨特的嚴謹風格，一句話點出大家一致的想法：「如果我辦公室有人把 MP3 播放器插到工作用的膝上型電腦，或者不小心把公司用的手機掉在夜店裡，我會炒他魷魚」。
說得好，加油吧！
其實從 IT 領導人會議的枯燥乏味也可以看出想法的貧乏。如果我看到另一個學術會議在討論「IT 企業營運契合」或「一般績效評分」等模糊不清的概念， 大概就不想聽了。為什麼沒有人問 IT 2.0 是什麼樣子？或是我們該怎麼做才能領先群倫呢？為什麼我們不問新一代 IT 專業人員需要具備哪些技術和態度，才能建立一個有活力的未來呢？為什麼我們不惋惜沒有一家公司以先進公司看待研發部門的眼光來看待 IT 部門呢？與其辯論集中化與分散化，為什麼不努力研究 IT 極權化與 IT 民主化這類真正的議題呢？
我們要更愛自己，就得拿出我們在乎未來的誠意。我們都聽過 Web 2.0。如果我們想要實現任何近似科技潛力的目標，就該開始思考 IT 2.0。

Romi Mahajan 在 Microsoft 擔任技術聽眾與平台行銷 (Technical Audience and Platform Marketing) 小組的總監。Romi 在政治、環保、技術及社會等多方領域都曾廣泛發表過文章。


 Windows 機密文件: Beta 版如何演變成 RC
Windows 機密文件
Beta 版如何演變成 RC
Raymond Chen

過去一直以來， Windows® 對於產品的搶鮮版有一套相當標準的發展程序。最開始是 Alpha 版本，這個版本是供內部使用，也可能與 Windows 產品小組以外的軟體開發夥伴共用。
緊接著 Alpha 版本之後自然是 Beta 版本，這個版本會提供給更廣泛的群組使用。Alpha 版與 Beta 版使用者之間的一項主要差異在於，Beta 版本納入了軟體開發人員以外的使用者，像是想要測試搶鮮版軟體的一般使用者，還有某些企業想要搶先開始評估新作業系統，以確定新產品不僅能與關鍵的內部應用程式相容，而且也與公司網路、標準硬體設定和系統管理工具相容。
最後出現的是候選版本。正如字面所述，這些程式碼版本就是最終版本的候選者。換句話說，「一切順利的話，我們就會推出這個寶貝。」萬一發現什麼嚴重錯誤，使得預期推出的版本喪失資格，那麼一旦錯誤獲得修正，便會誕生另一個新的候選版本，並重新開始測試循環。Windows 95 發行的是第六個候選版本。
據說 Windows NT® 成員也是遵循相同的版本命名模式，直到遇上一個問題：企業懶得進行其關鍵應用程式與 Windows NT 的 Beta 版本之間的測試。這些企業的邏輯通常是這樣的：「何必麻煩？這只是 Beta 版，只有那些電腦迷才對 Beta 版感興趣。反正最終版本總是不一樣，現在進行測試多半只是浪費時間。」
軟體公司也同樣毫不在意 Windows NT 的 Beta 版測試期間所發現的問題。軟體公司的回應是：「我們不支援 Beta 版作業系統。」
等到真正的候選版本推出時，這些公司就會認真地開始測試，而且免不了發現一籮筐的問題。有些問題可以由公司自行解決，而有些問題比較複雜，而且牽涉到 Windows NT 與舊版作業系統「不夠相容」的層面。有些是關於特定的專案功能運作方式的小問題，這些問題有時候可以在短期內修正。但有些問題過於嚴重，必須延後產品發行時間好讓產品小組解決這些問題。
這些候選版本也會招來許多建議。我們曾收到如下的意見：「我們覺得按鈕要這樣排列，UI 會比較順眼」，或是「這段訊息的措辭得重新修改一下，員工才不會混淆」。這些在 Beta 階段會是很棒的建議，但是在第一個候選版本決定後提出就太遲了，介面設計在此時已經很難改變。文件與說明檔都已經寫好，產品已經翻譯成多種語言，而且手冊和產品包裝盒的擷圖都已經經過安排、微調、分色和列印等作業。所有這些工作都不可能只為了移動某個按鈕而重新來過。
我還記得在籌備 Windows XP 產品的期間，有一場會議是爭論是否要進行最後一刻的修改。若採納變更建議，就必須更改 20 KB 的說明檔，好讓指示內容能符合新的 UI。當地語系化和翻譯代表告知我們，在緊迫的期限內重新翻譯經過修改的說明檔將花費數十萬美金的成本。
為了消弭輕忽 Beta 版的這種態度，Windows NT 小組決定採用成績膨脹 (Grade Inflation) 的方法。Beta 版本還是存在，不過是後期的 Beta 版本 — 仍有時間進行微調 (但時間不多) — 已經變成候選版本，而原先的候選版本現在則稱為有條件交付 (Escrow) 版本。有條件交付一詞清楚傳達出該版本的真實狀態：「已經結束了，除非發生真正的緊急事件，我們將不再修改它」。

Raymond Chen的網站「The Old New Thing」以及同名著作 (Addison-Wesley，2007 年) 均探討 Windows 的歷史和 Win32 程式設計。他覺得自己可以從這裡看到家。