 TechNet Magazine August 2007

TechNet Magazine August 2007

System Center: SMS 演進：專為系統管理提供的全新超強解決方案

系統管理工作即將變得更輕鬆。看一下 System Center Configuration Manager 2007 導覽，您會了解它將如何簡化各項主要工作，例如部署軟體更新、管理行動裝置以及維護系統設定。

John Orefice System Center: 將應用程式和更新部署到分公司

分公司發佈點是 Configuration Manager 2007 中的新功能之一，他剛開始看起來可能是不怎麼顯眼的新功能。但仔細一瞧，您會發現它為管理分公司的軟體散發提供了不可或缺的新功能。

Steve Rachui System Center: System Center Essentials 2007 入門

System Center Essentials 是專為中型企業所設計，可提供統合的解決方案來監控、管理和疑難排解系統。本文涵蓋詳細的指南來引導您在網路上安裝與設定 Essentials 2007。

David Mills System Center: 使用 Operations Manager 2007 監控您的伺服器

MOM 的最新化身 Operations Manager 2007 引進了一些重大的功能改良，包括新的管理介面、更棒的報告功能、支援報告、支援特定業務應用程式、新的安全性選項等不一而足。

Pete Zerger System Center: 從 MOM 遷移至 Operations Manager 2007

準備好移轉到 Operations Manager 2007 了嗎？由於架構上的變更，要從前版的 MOM 就地升級並無簡單的途徑，必須要遵循此處所介紹的其中一種遷移計畫。

Andy Dominey System Center: 透過 Microsoft SoftGrid 將應用程式帶往虛擬之路

虛擬化應用程式提供了數不盡的好處，從改良的使用者體驗到簡化的系統管理一應俱全。詳細了解 Microsoft SoftGrid 如何提供虛擬應用程式，它要如何融入您的基礎結構，以及它如何節省貴公司寶貴的時間與金錢。

Ahmer Sabri and Kedar Shah 編輯的話: 動態和最佳化

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

Greg Steen SQL 問題與解答: 尋找鎖定、大型查詢、I/O 統計資料以及其他

Edited by Nancy Michell 公用程式焦點: BGInfo

如果能夠從單一位置查看電腦的一切資訊 — 它的名稱、IP 位址、閘道、可用磁碟空間等等，該有多好。 透過 Sysinternals 推出的這個免費工具，要這麼做不成問題。

Lance Whitney The Cable Guy: Windows Vista 中的 IPv6 自動設定

IPv6 不只是將位址空間從 32 位元延伸至 128 位元而已， 本文將說明 IPv6 主機如何在不使用位址設定通訊協定下，自行進行自動設定。

Joseph Davies Windows PowerShell: 篩選的威力

管線不僅是供 Cmdlet 使用而已，瞧瞧您如何能利用 Windows PowerShell 管線在指令碼中加入實用的篩選功能。

Don Jones 嗨，Scripting Guy！: 你是誰？

Active Directory 可讓使用者擁有各種身分，例如 givenName、displayName、userPrincipalName 或 distinguishedName。身為系統管理員，您該如何取得所有這些關於使用者的資訊？當然是透過指令碼囉。

The Microsoft Scripting Guys 安全性監控: Windows 中的 PKI 增強

在 Windows Vista 和 Windows Server 2008 中，Windows PKI 平台提供了對進階演算法、即時驗證檢查及較佳管理性的支援。瞧瞧全新的 PKI 功能，並了解如何運用它們來降低成本，並同時提高安全性。

John Morello 桌面檔案: 了解 RDP

可讓您從遠端存取機器的遠端桌面通訊協定，是一項隨著各版 Windows 不斷精進的實用技術。初步了解一下遠端桌面，看看它所提供的許多優點，還有它的限制。

Wes Miller 現場筆記: IM 面試

您有個職缺想找人填補，而求職信從全球各地紛至沓來。您要如何迅速縮小搜尋的範圍呢？ 答案可能在於透過 IM 進行面試。下面是某開發人員的成功故事。

Nathan G. Jensen Windows 機密文件: Windows 檔案總管無法處理文字

為什麼不能在 Windows 檔案總管裡面複製檔案清單，然後將它們貼成文字來取得它們的檔名呢？ Windows 小組試著包含這項功能，但是成效不彰。

Raymond Chen


 System Center: SMS 演進：專為系統管理提供的全新超強解決方案
System Center John Orefice

SMS 演進：專為系統管理提供的全新超強解決方案
摘要:
  • 作業系統部署
  • 軟體更新管理
  • 目標建構管理

Systems Management Server (SMS) 2003 已然是全球系統管理員在建構管理和軟體提供時不可或缺的工具。現在 Microsoft 正著手準備
推出新版本的企業管理解決方案，隨著新版本也將採用全新的功能與名稱：System Center Configuration Manager 2007。
System Center 是 Microsoft 產品系列之一，這個系列的產品專為複雜 IT 基礎結構的日常管理工作而設計，使其更簡單、更具成本效益。System Center 解決方案是以 Microsoft® Operations Framework (MOF) 和 Information Technology Infrastructure Library (ITIL) 衍生的自動化與最佳作法為基礎，適用於各種組織層級。
Configuration Manager 2007 只是 System Center 系列的其中一部份。還有 System Center Data Protection Manager 提供企業系統備份及修復機制，System Center Operations Manager 賦予您主動式系統監控和自動化的功能，System Center Capacity Planner 可用來執行基礎架構部署的容量計劃和假設狀況分析。而且這個系列產品的成員清單還在不斷增長中 (如需詳細資訊，請參閱 www.microsoft.com/systemcenter)。
在本文中，我會以最新的測試版為基礎，逐一解說 Configuration Manager 2007 規劃的幾個全新和增強功能。透過全面性的介紹，您將了解這個萬眾期待的版本將提供哪些功能，也希望能讓您思索 Configuration Manager 將如何節省貴企業寶貴的時間與金錢。

全新系統管理使用者介面
打從 SMS 1.0 起，使用者最想要的 SMS 新功能之一就是全新經過改良 UI。為了回應大家的期待，Microsoft 對 System Center Configuration Manager 2007 系統管理 UI 進行了幾項改良，為了落實這些新功能，Configuration Manager 2007 的新主控台是以 C# 和 Microsoft .NET Framework 建置，並以 Microsoft Management Console (MMC) 3.0 技術為基礎執行。不僅如此，新 UI 也像 SMS 2003 一樣可以透過 SDK 來加以擴充，好讓主控台的使用者能夠針對個別需求建立自己的附加元件。
[圖 1] 顯示新的主控台，其中 [電腦管理] 節點是展開的，清楚描繪出所有可用的新管理功能。另外也請注意 [SMS 站台組態 (SMS Site Configuration)] 內容的新外觀，這裡會提示安裝 Configuration Manager 之後，要操作 Configuration Manager 之前必須先完成哪些常見工作。[連結和資源 (Links and Resources)] 內容包含一些相關的工作，可以節省在主控台中巡覽常用功能的時間。
[圖 1] Configuration Manager 系統管理介面
[圖 1] Configuration Manager 系統管理介面
這個新的主控台所提供的部分優點與功能包括有：多重項目選取和拖放 (特別適合集體管理)；以虛擬而非實體方式，組織主控台中的項目的搜尋資料夾；用來執行適合目前內容的作業的 [執行 (Actions)] 窗格；可檢視特定項目 (例如，作業系統映像) 摘要資訊的 [預覽 (Preview)] 窗格；提供特定主題 (例如，軟體部署) 的概要資訊首頁；以及經過改良而大幅簡化導覽作業的組織架構。
如前所述，在全新改造的主控台中，[執行 (Actions)] 窗格是加強重點之一，它能根據目前使用的主控台內容，顯示符合當前操作的動作。例如，若您正在檢視 [所有系統 (All Systems)] 集合，那麼 [執行 (Actions)] 窗格便會提供 [更新集合成員資格 (Update Collection Membership)] 和 [安裝代理程式 (Install Agent)] 等動作 (見 [圖 2])。
[圖 2] 可用的動作取決於目前的檢視內容
[圖 2] 可用的動作取決於目前的檢視內容
此外，Configuration Manager 2007 還引進了稱為首頁的新概念，便於快速檢閱特定功能的狀態，例如軟體更新、軟體散發或目標建構管理。只要在主控台內就能執行這個作業，無須再執行報表或到他處尋找資料。請參看本文中其他關於首頁的例子，我將繼續說明此產品的其他功能。

伺服器角色與發佈點
Configuration Manager 2007 納入幾個新的伺服器角色，可操作一些我將在本文討論的新功能，包括 Fallback Status Point (FSP)、PXE Service Point (PSP)、Branch Office Distribution Point (DP)、State Migration Point (SMP)、Software Update Point (SUP)，以及 System Health Validator (SHV)。正如所有 SMS 和 Configuration Manager 伺服器角色一樣，只要執行過適當的容量計劃演練，這些角色就可以裝載在相同的伺服器上。
有兩個原因使得 Branch Office DP 特別重要，而且不同於傳統的 DP。首先，它並不需要安裝在伺服器作業系統上，而是可以安裝在 Windows Vista® 或 Windows® XP 上。這是唯一一個可以安裝在用戶端作業系統上的 Configuration Manager 角色。如果分公司未部署本機伺服器，或是 IT 部門打算移除小型分公司的伺服器，以便節省開支和縮減系統管理成本，這個特性就很重要。對於只部署執行 Windows XP 或 Windows Vista 的電腦的案例而言，Branch Office DP 可確保用戶端無法從 WAN 上提取封裝 (當封裝可從本機存取時)，藉此減少 WAN 流量。
分公司 (Branch Office DP) 與標準 DP 第二個差異點在於它與其他 DP 的連線方式。除非從主要站台進入次要站台，否則傳統的發佈點複寫資料不會經過流速控制或進行排程。有鑑於此，許多組織只在夜間複寫封裝到分公司，結果導致軟體散發作業延宕，需等到本機可以取用這些封包才可進行。
Branch Office DP 使用幕後智慧型傳送服務 (BITS) 從其他 DP 下載資訊。這一點對於調節分公司與中央 DataCenter 上的 DP 之間的 WAN 連結上的頻寬格外重要，尤其是當分公司沒有 Configuration Manager 次要站台時更是如此。[圖 3] 顯示使用新的 [DP 內容 (DP Properties)] 對話方塊，讓標準 DP 變成 Branch Office DP 的情形。
[圖 3] 設定Branch Office DP
[圖 3] 設定Branch Office DP
SMS 2003 引進一項複寫技術，可從站台伺服器對發佈點進行封裝的檔案差異複寫。這項技術特別適用於由數個較小檔案組成的 SMS 封包。舉例來說，如果 SMS 系統管理員只需要變更單一檔案，或變更大型 SMS 封包內的幾個較小檔案，只需要複寫封包內有變更的檔案，不需要動到整個封裝。
隨著作業系統部署逐漸成為 Configuration Manager 2007 的主流，有必要確保在基礎結構與 WAN 上複寫作業系統映像封裝和其他大型封裝的作業能盡可能有效地完成。有鑑於此，Configuration Manager 2007 採用了二進位差異複寫，可在站台伺服器對站台伺服器、站台伺服器對 DP 以及 DP 對 Branch Office DP 的情況下進行。
以預先安裝多個應用程式的新 Windows Vista 部署映像為例。這個封裝的大小約為 6GB，由於這是 Windows Imaging Format (WIM) 映像，因此它是大小為 6GB 的單一檔案。如前所述，在 SMS 2003 中，若是為了變更某設定或是加入剛發行的 2MB 修補程式而開啟新的 WIM 映像，則由於此映像是單一的 WIM 檔案，因此必須將整個 6GB 的 SMS 封裝複寫到 DP。相較之下，有了 Configuration Manager 2007 的二進位差異複寫技術，如果設定經過變更或要將個別的修補程式新增到 WIM 映像封裝中，此時只會在基礎結構中複寫這一個 2MB 修補程式或設定，而不會複寫整個 6GB。

行動裝置的常用程序
發行 SMS 2003 後不久，Microsoft 隨即發行了 Device Management Feature Pack (DMFP) 來管理 Windows CE 和 Pocket PC 行動裝置。隨著企業組織使用行動裝置的情況日益普及，這些裝置的管理需求變得更加重要。為因應這股潮流，Configuration Manager 2007 改良了 SMS 2003 DMFP 並提供全新的整合式解決方案來管理行動裝置 (包括 Windows Mobile® Smartphone 和 Pocket PC 電話)，方式幾乎跟管理伺服器、膝上型電腦和桌上型電腦一樣。
行動裝置的基本管理包括硬體與軟體清查、檔案集合功能、軟體散發，以及密碼與安全性原則管理的設定。利用 Configuration Manager 2007 網際網路式用戶端管理 (Internet-Based Client Management)，現在就可以同時在內部網路和網際網路上管理所有裝置。這個功能特別適用於 Smartphone 和不常在公司 LAN 中出現的其他裝置。
此外，代理程式的部署程序也一併經過增強。現在可支援無線用戶端升級，而且可以透過 Configuration Manager 主控台來自動化用戶端散發作業。

維護視窗
我所合作的企業客戶中，有許多都在伺服器和某些關鍵的桌上型電腦施有預先定義的維護視窗。他們經常問我要如何在不干擾使用者的情況下，在一般的辦公時間部署較大應用程式 (如 2007 Microsoft Office 系統)。
Configuration Manager 2007 引進一項新功能，稱為維護視窗。這項功能可讓您針對要安裝特定集合的時間來定義視窗。如此一來，您可以自由地發出強制通告，也不必擔心在一般上班時間或使用者不方便的時段安裝封裝而造成干擾。
以 2007 Office 系統套件部署為例。您想要盡快將這套應用程式發送給使用者，但又不希望發送作業妨礙到日常工作。這時，您可以設定維護視窗來，指明希望系統執行安裝的時間範圍，像是是下午 8 點至上午 6 點。如果某一天系統因故無法在此維護視窗的指定時段執行，那麼 Configuration Manager 會等到維護視窗中定義的下一次時間執行，以防止業務受到意外干擾。您也可以選擇在通告層級忽略維護視窗，跨越任何原先的限制，加緊部署重大更新。

作業系統部署
作業系統部署功能是 Configuration Manager 2007 的重點所在。根據 Microsoft 的設計，Configuration Manager 是為伺服器和工作站平台這兩者部署作業系統的主要途徑。SMS 2003 Operating System Deployment (OSD) Feature Pack 中最頂尖的功能都已整合到 Configuration Manager 2007，管理 OS 部署的方式將徹底改觀。
讀者可能已經知道，Windows Vista 針對作業系統部署引進了新的 Windows Imaging (WIM) 格式。使用這個格式的好處多多，例如 Configuration Manager 2007 本身即可匯入 WIM 映像格式，因此系統管理員可以直接從主控台處理及部署這些映像。
Configuration Manager 另一個重大的新功能是整合式的工作編序器 (Task Sequencer)。若您熟悉 Microsoft Solution Accelerator for Business Desktop Deployment (BDD)，就會發現 Configuration Manager 所提供的功能與選項有許多雷同之處，比較明顯的差別在於：您不再需要撰寫指令碼來部署或擷取作業系統映像。利用工作編序器 (Task Sequencer)，您可完全放手讓作業系統部署程序去做。
工作編序器 (Task Sequencer) 可以協助統籌整個 OS 部署中必須執行的所有步驟，包括部署前於原有OS 上執行的步驟 (使用者狀態移轉和應用程式設定移轉)、部署新作業系統的步驟 (格式化、磁碟分割、產品金鑰、使用者名稱、公司、授權設定、驅動程式安裝)，還有部署新系統後所需的步驟 (額外的應用程式安裝、更新安裝、使用者狀態移轉)。[圖 4] 為這項功能的範例之一，其中顯示工作順序編輯器 (Task Sequence Editor) 強調可運用在 Windows Vista 部署的某些功能。
[圖 4] 編輯作業系統部署的步驟
[圖 4] 編輯作業系統部署的步驟
如 [圖 5] 所示，除了工作編序器 (Task Sequencer)，另外還有幾個針對 Configuration Manager 2007 的作業系統部署而增強的功能。例如，Configuration Manager 可透過裝置驅動程式管理，支援 x86 與 x64 平台使用 Pre-Boot Execution Environment (PXE) 進行裸機部署。運用裝置驅動程式管理，您的組織可大幅縮減需針對不同硬體類型維護的映像數目。將此功能與 Windows Vista WIM 映像格式引進的單一映像支援功能，幾乎可確保您在進行作業系統部署時，省下寶貴的時間與金錢。
Figure 5 作業系統部署功能 (Close Figure 5)

案例 | SMS 2003 | Configuration Manager 2007
端對端部署 | 有 | 有
完全自動化 | 有 | 有
清除後載入升級 | 有 | 有
使用 PXE 進行裸機部署 | 與遠端安裝服務 (RIS) 鬆散整合 | 與 Windows 部署服務 (WDS) 內建整合
並列 | BDD 指令碼 | 有，透過內建 State Migration Point
完整離線部署 | 無 | 有
Windows Vista 升級計劃 | 無 | 有
完整伺服器部署 | 無 | 有
裝置驅動程式管理 | 無 | 有

軟體更新管理
正如 Configuration Manager 2007 中許多其他功能，軟體更新管理也經過大幅翻新。Configuration Manager 會針對所有軟體更新和所需的設定管理資訊建立新的狀態型高優先通道，來區隔發送更新與一般套件到受管理的代理程式的方式。如此一來，發送另一個軟體套件再也不會干擾從受管理的工作站、膝上型電腦或伺服器發送軟體更新或接收修補狀態的工作了。
採用以狀態為基礎的軟體更新管理，也意謂著修補程式和更新狀態不再依附於硬體清查掃描，因此也不再需要使用的 Inventory Tool for Microsoft Updates (ITMU) 和掃描目錄。Configuration Manager 將改用新的 Software Update Point (SUP) 伺服器角色，在後端執行 Windows Server Update Services (WSUS)，把 WSUS 當成軟體更新引擎與資料庫。
WSUS 可讓您在 Configuration Manager 集中控管所有更新，便於您下載 Microsoft Update 的所有可用內容，包括用於 Microsoft 平台的非緊急性更新、驅動程式和其他軟體套件。Microsoft 也鼓勵合作夥伴透過這種方式發行軟體更新，目前已經有 Adobe 和 Citrix 這兩家公司跟進，針對 SMS 2003 R2 中的「自訂更新的清查工具 (Inventory Tool for Custom Updates，ITCU)」發行資訊清單，也計畫對日後的 Configuration Manager 採取相同策略。
這個新的軟體更新引擎也提供近乎即時的更新狀態，使得報表及首頁檢視更加完善。這些自訂檢視會向您顯示 IT 基礎結構中修補狀態的快速圖表，或是特定電腦集合的快速圖表。[圖 6] 顯示透過某個為軟體更新管理自訂的新首頁檢視，檢視特定佈告欄的修補遵循資料變得多麼簡單。
[圖 6] 檢視軟體更新狀態
[圖 6] 檢視軟體更新狀態
最後，軟體更新部署範本大幅減少了發送新更新到系統或集合所需的步驟。藉由使用軟體更新部署範本來儲存常見的設定資訊 (例如是否要強制執行重新啟動，或用戶端應否在執行安裝之前，以本機方式從 DP 下載修補程式)，這項功能可以讓在 SMS 2003 使用 ITMU 所需步驟的 18 個步驟，大幅減少為 Configuration Manager 2007 中的 6 個步驟。

目標建構管理
建構管理是另一個在 Configuration Manager 2007 中獲得大幅改進的精彩功能。SMS 2003 目標建構監控於 2006 年秋季發行，提供了許多包含在 Configuration Manager 2007 目標建構管理中的重要功能。如需目標建構監控的背景資料，請參閱《TechNet Magazine》文章，網址為：microsoft.com/technet/technetmag/issues/ 2006/09/HighStandards。在 [圖 7] 中，目標建構管理首頁顯示兩項特定設定基準的遵循狀態。
[圖 7] 報告目標建構基準遵循狀態
[圖 7] 報告目標建構基準遵循狀態
在 Configuration Manager 中開發目標建構管理的主要動力是因為很多針對 Microsoft 客戶所做調查指出，大部分的服務中斷都是肇因於關鍵型伺服器及桌上型電腦上的作業系統或應用程式設定錯誤。藉由使用 Configuration Manager 中的目標建構管理功能，系統管理員可以透過定期執行系統基準掃描，快速掌握設定飄移 (configuration drift)。這些基準是使用設定項目 (CI) 建立，可針對組織中的電腦集合提供遵循資訊。
除了掌握設定飄移，目標建構管理還有助於進行法規遵循報告以及變更驗證。大部分的組織多少都會接觸到循規報告，例如美國沙賓法案 (Sarbanes-Oxley，SOX)、付款卡業資料安全性標準 (Payment Card Industry Data Security Standard，PCI DSS)，以及美國健康保險流通與責任法案 (Health Insurance Portability and Accountability Act，HIPAA)。Configuration Manager 2007 能透過目標建構管理，協助您準備這些報告。
目標建構管理的運作方式如下。系統管理員會定義 CI — 它是可加以偵測、套用和從電腦移除的設定單位。定義這些 CI 一旦定義完成，即可用於建立由一或多個 CI 構成的設定基準。這些基準接著會指派給 Configuration Manager 集合，以進行法規遵循監控和法規報告。
CI 可以監看各個電腦層面來收集資料，包括 Active Directory®、檔案中繼資料、指令碼結果、儲存在 SQL Server™ 的資料、軟體更新資料、WMI、XML、登錄值、IIS 中繼資料，以及 Microsoft Installer 目前狀態與設定。從這些不同地點收集的資訊會儲存在 Configuration Manager 資料庫中，並用來檢查系統是否遵循法規。
有一點相當有趣，目標建構管理程序現在已經與透過 Configuration Manager 2007 發送新更新的程序完全整合。與新的軟體更新引擎一樣，所有目標建構管理資料現在也都使用狀態型高優先通道。隨著這兩個關鍵型功能的整合，系統管理員得以定義新的目標建構管理基準，或使用新的更新內容來更新現有的目標建構管理基準，藉此當做更新部署程序的一部份。

網際網路式用戶端管理
您是否曾經有過這樣的經驗，電腦與網路中斷連線太久，以致於 SMS 內部的電腦物件過時？我跟許多客戶聊下來，發現這種情況屢見不鮮。幸好 Configuration Manager 2007 引進了新的網際網路式用戶端管理，這個功能的運作方式就像是 Microsoft Office Outlook® 在沒有虛擬私人網路 (VPN) 的情況下，透過 HTTPS 與 Exchange Server 通訊。如果您還是有聽沒有懂，簡單的說，就是您不需要複雜的 VPN 連線，便可以與用戶端電腦進行更安全的通訊。
網際網路式用戶端管理可讓您使用與內部網路上的電腦相同的控制層級來管理網際網路上的電腦。事實上，除了作業系統部署、線上醒機功能和遠端工具 (因為它們使用不同的連接埠進行通訊，且無法經由 SSL 或 TLS 傳送) 以外，本文討論的所有功能都可以搭配網際網路式用戶端管理。有一些情況特別適用網際網路式用戶端管理，像是餐廳、零售店和加油站的銷售點裝置；員工的家用電腦；以及行動工作者 (例如散佈各處的銷售人員或顧問小組)。
在 Configuration Manager 2007 基礎結構中啟用網際網路式用戶端管理之前，必須先滿足一些要求。首先，需要有個公開金鑰基礎結構 (PKI) 將數位憑證指派到所有由 Configuration Manager 管理的代理程式。這樣才可以在 Configuration Manager 伺服器與所有管理代理程式之間使用相互驗證，確保您所接收的資料都經過加密而且來源可信。您也需要使用 SSL 終端子當做 Configuration Manager 伺服器與所有網際網路用戶端之間的連接點。Microsoft Internet Security and Acceleration (ISA) Server 2006 這個以軟體為基礎的解決方案可滿足上述這些需求。
新的 Fallback Status Point (FSP) 伺服器角色便是用於網際網路式用戶端管理。萬一您的網際網路式代理程式無法順利通訊，或憑證過期，代理程式便會向組織周邊網路中可用的後援狀態點 (Fallback Status Point) 報告這個問題，如此可確保您永遠不會與網際網路管理的系統失去聯繫。此外，用戶端還可以自動在網際網路式管理和內部網路式管理之間來回漫遊，以便在適當的時機充分利用合用的資源。

其他新功能
線上醒機雖然算不上是不可或缺的關鍵功能，但卻系統管理員非常重要工具之一，因為它能夠暗中快速完成軟體散發、軟體更新或 OS 部署等工作。針對所有具備相容網路卡的內部網路式管理代理程式，Configuration Manager 2007 都會啟用此線上醒機功能。[圖 8] 中的範例顯示如何在新設計的新增通告精靈 (New Advertisement Wizard) 中對通告使用線上醒機功能。在本例中，我要部署一個新套件到電腦群組。如果線上醒機功能的相容裝置已關閉，那麼在精靈中啟用此設定便會讓 Configuration Manager 啟動系統來部署通告所定義的套件。
[圖 8] 軟體散發通告中的線上醒機功能
[圖 8] 軟體散發通告中的線上醒機功能
為了提供更安全、更可靠的解決方案，同時明顯加快效能，Configuration Manager 中的遠端控制已經過徹底改寫。Configuration Manager 現在利用以遠端桌面通訊協定 (RDP) 為基礎建置而成的 Windows Vista 原生共同作業技術來取代從 SMS 1.0 以來沿用的舊工具。基本功能與 SMS 2003 一樣，因為使用者都不需要接受新的工作階段。但是，現在提供三種新的存取層級：完整控制權、僅供檢視和無權限。除了這項新技術，Configuration Manager 2007 仍然與遠端協助功能相整合，以便在必要時提供此機制。

總結
我已經引導讀者認識 System Center Configuration Manager 2007 中的幾個全新和增強功能。這些功能的用意在於減輕系統管理工作，啟用新的工作型態，以及減少 IT 環境的成本。Configuration Manager 2007 和其他 System Center 系列產品將賦予您相當的實例，足以面對嚴苛的 IT 基礎結構需求，進而提高企業的競爭優勢。
除了本文描述的功能之外，本產品還提供更多增強的功能，例如 Windows Server® 2008 網路存取保護 (NAP) 整合，還有以 SMS 2003 SP3 中隨附的相同資產智能 (Asset Intelligence) 技術為基礎而改良的軟體資產管理 (SAM) 功能。建議您下載 Configuration Manager 2007 發行候選版本或 RTM 試用版，觀察一下這些功能如何在您的基礎結構中運作。
如需所有 System Center 系列產品總覽的詳細資訊，請造訪 microsoft.com/systemcenter。您可以在此瀏覽 System Center 系列所提供的任何解決方案，包括 Configuration Manager 在內。

John Orefice 是 Microsoft 大西洋中部各州的一位技術解決方案專家。他從事 Microsoft 管理解決方案方面的工作已有數年的經驗，從擔任微軟顧問服務 (Microsoft Consulting Services，MCS) 的顧問開始，至到現今的職務。您可以透過下列電子郵件與他連絡：john.orefice@microsoft.com。
© 2007 Microsoft Corporation and CMP Media, LLC. 保留所有權利；未經允許，嚴禁部分或全部複製.


 System Center: 將應用程式和更新部署到分公司
System Center Steve Rachui

將應用程式和更新部署到分公司
摘要:
  • 設定分公司發佈點
  • 關於界限
  • 三種佈建資料的方法

Microsoft 正著手推出它的下一代系統管理解決方案，前身為 Systems Management Server (SMS) 的全新 System Center Configuration Manager 2007
擁有好幾項令人印象深刻的新功能。其中一項實用的功能是分公司散佈點 (BDP)，這是一種特別為了滿足小型或分散式辦公室設定的需要而設計的新型散佈點。與其他新功能相較之下，第一眼看 BDP 可能會以為它是不太重要的新功能，但可別這麼快就斷下定論。
在前版的 SMS 中，伺服器系統是主控散佈點唯一受到支援的平台。這樣的結果使得需要提供服務給分公司 (通常缺乏本機伺服器並透過較為慢速的 WAN 連結進行通訊) 的系統管理員得費力地設計並組成一套基礎結構，來允許及時且有效的軟體散發。設計 BDP 的目的，正是解決這種案例的需要。
BDP 是設計成能同時在工作站和伺服器級系統上操作，它是在每個 Configuration Manager 2007 用戶端上提供的一個元件 (但預設沒有啟用)。雖然每個 Configuration Manager 2007 用戶端都擁有操作成 BDP 所需的程式碼，但並不是每個用戶端都可以設定成 BDP。

設定 BDP
啟動用戶端上的 BDP 功能基本上跟設定任何一種以伺服器為主的散佈點一樣。開始是先將用戶端設定成新站台系統 (如 [圖 1] 所示)，接下來指明它是分公司散佈點 (如 [圖 2] 所示)。這項設定會使 BDP 被列為可供封裝、軟體更新、作業系統部署 (OSD) 映像等等使用的散佈點。站台伺服器會準備原則，並把目標鎖定在會開啟 BDP 功能的選定用戶端上。此原則一經下載後，用戶端便會開始當作 BDP 來執行。
[圖 1] 將用戶端設定成新站台系統
[圖 1] 將用戶端設定成新站台系統
[圖 2] 將站台系統設定成分公司發佈點
[圖 2] 將站台系統設定成分公司發佈點
您可以設定 BDP 或任何站台系統，為特定的界限 (之前在 SMS 2003 中稱為站台界限) 或界限群組提供服務，或者可以將它設定成沒有特定界限來操作。Configuration Manager 2007 中的界限一般是由 IP 子網路或 Active Directory® 站台定義而成。
若要設定 BDP 為特定一組界限提供服務，在站台系統設定視窗上選取 [將此站台系統啟用為受保護的站台系統 (Enable this site system as a protected site system)] 選項，然後指定應該要服務的界限，如 [圖 1] 所示。請注意，如果您打算將 BDP 用於指定內容佈建 (我稍後會討論到)，這是必要的步驟。如果略過此步驟，BDP 基本上會當做標準散佈點來操作。

關於界限
BDP 上受保護的界限只是為了定義哪些用戶端能夠存取 BDP 上的內容而提供，它們在決定 BDP 可以存取哪個標準散佈點以下載它所需的內容方面並沒有什麼重要性。例如，假設有個 BDP 安裝在界限 A 的環境，假設界限 B 只包含了使用幕後智慧型傳送服務 (BITS) 的標準散佈點，而且這個散佈點已設定成只提供服務給界限 B 內的用戶端。當 BDP 嘗試下載內容時，會成功嗎？根據受保護界限的預期規則，您可能以為它會失敗。不過，在此案例下，下載會成功，因為 BDP 下載並不理會在標準散佈點上已經過設定的任何受保護界限。
BDP 也提供相當高的彈性。每個分公司地點可以啟用單一 BDP，或如果有必要，單一分公司 (界限) 內可啟用多個 BDP。當設定多重 BDP 以提供服務給相同的界限時，它們在某種程度上會像負載平衡一樣互相合作，提供內容給這些界限內的用戶端。

佈建資料
BDP 一經啟用，就可以透過三種不同的方法取得它所需的內容：系統管理員佈建、指定佈建和手動佈建。無論您採用哪種方法來取得內容，必須至少有一個可用的標準散佈點是啟用 BITS，並且是以 BDP 要接收的內容來佈建。讓我們來看看可用來取得內容的這三種方法。
系統管理員佈建 這是在散佈點上接移內容最常見的方法。採用此方法需要系統管理員手動選取 BDP 作為散佈點。這樣做會準備一項原則，警示 BDP 在下個原則更新週期期間，從相同站台內啟用 BITS 的標準散佈點下載要佈建的內容。
指定佈建 這是接移內容的新方法，而且僅限用於 BDP。這個方法允許當用戶端要求時，視需要將內容下載至 BDP。系統管理員不會採取任何行動將內容佈建到 BDP 上 — 意謂著 BDP 不會在封裝節點中被選取作為散佈點。指定佈建將在提出要求內容時，有效地讓 BDP 被選取作為散佈點。這個動作會在背景進行，而且是自動進行。
指定佈建只會在已設定封裝支援此選項時進行 (見 [圖 3])，並且 BDP 會受到保護以確保要求內容的用戶端只能存取 BDP，而不能存取任何擁有該內容的標準散佈點。要注意的是，如果相同的受保護界限內設定了多重 BDP，那麼對當中一個發出的指定佈建要求將導致內容佈建到全部的 BDP。
[圖 3] 啟用 封裝的 指定散佈
[圖 3] 啟用 封裝的 指定散佈
手動佈建 正如其名，這個接移內容的方法需要系統管理員手動採取動作。必須設定封裝以指明內容將手動傳輸，如 [圖 3] 所示。內容接著必須手動複製到 BDP 的封裝資料夾，此資料夾必須採用典型的封裝所預期的目錄結構。
BDP 將識別新封裝，並將它提供給要求用戶端。因為這個方法允許內容被傳輸到使用卸除式媒體的 BDP，所以非常適合在標準散佈點和 BDP 之間頻寬有限的環境。
您可以設定 BDP 來存放特定磁碟分割上的下載內容，如果未指定任何磁碟分割，BDP 將自動選擇要使用的磁碟分割。當設定要在 BDP 上接移的內容或是處理指定要求時，目標內容並不會立刻在 BDP 提供。而是準備原則來警示 BDP 內容已可供下載。在下一個原則週期，BDP 會收到該原則並起始內容的 BITS 下載。您可使用群組原則來精確地控制要使用的頻寬，以及 BITS 下載的排程。請注意，BDP 上的散佈點共用看起來就跟在標準散佈點上的共用一樣，也就是說內容並不會加密。

適合貴組織的正確設定
如前所述，BDP 角色是針對分公司而建立，而且可在工作站系統上完整操作。不過，也可以在伺服器級系統上操作 BDP。基礎 OS 將會影響可連接到 BDP 的連線數目。工作站限制只能有 10 個同時進行的連線，而伺服器則不受此限。因此，根據您需要支援同時連線的數目而定，可以考慮在分公司內使用伺服器系統 — 或者是多個工作站系統。無論您使用哪一種平台，還是必須至少有一個啟用 BITS 的標準散佈點含有要求的內容。
然而，基礎結構設定好之後，BDP 將能夠讓您更有效控制任何組織內的軟體散發流程。允許流速控制和排程下載的 BITS 內建支援，為需要更細微控制和預測能力的系統管理員提供了重要的優勢。

Steve Rachui 在 Microsoft 的產品支援服務小組中，擔任管理性支援呈報工程師 (Manageability Support Escalation Engineer)。他自 1.2 版便開始支援 SMS。您可以透過電子郵件與 Steve 連絡：steverac@microsoft.com。


 System Center: System Center Essentials 2007 入門
System Center David Mills

System Center Essentials 2007 入門
摘要:
  • 安裝與升級
  • 設定 Essentials 2007
  • 疑難排解步驟

System Center Essentials 2007 是全新的 IT 管理解決方案，專為含有 50 到 500 部 PC 以及 5 到 30 部伺服器的中型企業所設計。為了回應 IT 專業人員對於統合式管理解決方案的熱烈需求，Essentials 2007
於是應運而生。Essentials 2007 滿足了這些需求，讓您透過單一安裝和簡易設定很快就能開始執行。
更具體而言，Essentials 2007 提供監控、疑難排解與資產追蹤功能，協助您維護 IT 環境的安全性和最新狀態。Essentials 2007 也提供一致的管理主控台，您可在此管理伺服器、用戶端、硬體、軟體和 IT 服務 (見 [圖 1])。此外，Essentials 還能簡化複雜的管理工作並提高執行效率，這些工作包括疑難排解使用者問題、監控以及伺服器與用戶端軟體部署。
[圖 1] Essentials 2007 管理主控台
[圖 1] Essentials 2007 管理主控台

Essentials 2007 需求
開始進行 Essentials 2007 安裝與設定之前，請先檢查您的系統是否符合軟體和硬體的最低需求。伺服器作業系統應為 Windows Server® 2003 SP1 或 R2，或 Windows® Small Business Server 2003 SP1 或更新版本。另外還需要 Active Directory®、IIS 6.0、Microsoft® .NET Framework 2.0 和 3.0 或更新版本，以及 SQL Server™ 2005 SP1。伺服器本身需要至少 1GB 的 RAM、12GB 的可用磁碟空間和 1.8 GHz 處理器。建議使用配備 2GB RAM 與 20GB 可用空間的電腦，搭配 2.8 GHz 或以上的處理器。
受管理的用戶端電腦必須執行 Windows 2000 Professional SP4、Windows XP SP2 或 Windows Vista®。x86 和 x64 作業系統均支援。
受管理的伺服器電腦必須執行 Windows 2000 Professional SP4 或更新的作業系統。x86 和 x64 作業系統均支援。由於大部分的人都希望從自己的桌上型電腦或膝上型電腦監控和管理 IT 環境，您應該在機器上執行僅限 Essentials 2007 主控台的安裝。開始之前，請先確認電腦是執行 Windows XP SP2、Windows Vista 或 Windows Server 2003 SP1。
此外，在您規劃 Essentials 2007 伺服器設定時，請預留足夠的磁碟空間以便處理更新下載和報表資料庫。就更新而言，更新資料庫可能會擴充超過 2GB，而更新內容可能會擴充超過 6GB。Essentials 操作和報表資料庫可能會擴充到 4GB。請據此擬定計劃，以免儲存空間不夠用。

安裝 Essentials 2007
安裝 Essentials 2007 很簡單，因為它有效利用精靈來引導您快速完成各項主要工作，例如安裝與設定、電腦探索以及更新設定。執行安裝精靈時，Essentials 2007 會自動檢查上述必要條件，並通知您不符合哪些條件 (見 [圖 2])。
[圖 2] 檢查安裝必要條件
[圖 2] 檢查安裝必要條件
如果所需項目未隨附在 Essentials 2007 光碟上，則安裝畫面會顯示所缺軟體的連結以方便您安裝。執行安裝精靈的過程中，您需要輸入 Essentials 2007 的安裝位置路徑，也需要輸入具有系統管理員權限的帳戶資訊。如果帳戶在受管理的伺服器與受管理的電腦上都有系統管理員權限，使用 Essentials 2007 管理電腦的工作會更加得心應手。Essentials 支援使用單一帳戶來執行在受管理的電腦上安裝代理程式等工作。
如果您尚未在本機或遠端安裝和提供 SQL Server 2005 與 Essentials 2007 搭配使用，安裝 Essentials 2007 時，您可以選擇讓 Essentials 2007 在本機安裝 SQL Server 2005 Express with Advanced Services。這個版本的 SQL Server 已隨附在 Essentials 2007 光碟上。您也可以購買 Essentials 2007 with SQL Server 2005 Standard，這是專為搭配 Essentials 2007 使用而授權的版本。
最後一個需要在安裝期間做出的重大決策是，您希望 Essentials 2007 儲存更新的位置。您可以將更新儲存在本機，而這些更新會經由網路從 Essentials 2007 伺服器傳送到受管理的電腦。這應該是最佳選擇，特別是如果您的網路容易產生網際網路存取瓶頸的問題時。您也可以選擇在每次電腦需要更新時直接從 Microsoft Update 下載更新。但選用此選項表示 50 部電腦所需的同一個更新會下載 50 次，每次只為一個電腦下載。這種作法有點累贅，但好處是您在管理伺服器上使用的磁碟空間比較少。
Essentials 2007 支援的基準部署拓樸是要在單一伺服器上安裝所有管理元件 (見 [圖 3])。不過，您也可以選擇在辦公室的桌上型電腦或膝上型電腦上安裝 Essentials 2007 管理主控台，然後從遠端控制管理伺服器。安裝遠端主控台之前，必須先在 Essentials 2007 伺服器上執行功能設定精靈 (Feature Configuration Wizard)。這項作業會決定要使用網域群組原則或是本機群組原則來設定遠端主控台。若您選取網域群組原則，請確定安裝遠端主控台的電腦有充裕的時間來進行更新。如有必要，您可以安裝多個遠端主控台。
[圖 3] 基準 Essentials 2007 設定
[圖 3] 基準 Essentials 2007 設定
如果您管理的 IT 環境包含 200 部以上的電腦，就必須將 SQL Server 2005 安裝在遠端伺服器上 (而不是安裝在 Essentials 2007 管理伺服器上)，並使用此遠端執行個體做為您的 Essentials 2007 資料庫 (見 [圖 4])。這樣當您擴充時，將可享有更佳的效能。不過請記得，這個遠端伺服器必須與 Essentials 2007 管理伺服器位於相同的網域中。
[圖 4] 使用遠端 SQL Server 資料庫
[圖 4] 使用遠端 SQL Server 資料庫
如果您在進行 Essentials 2007 安裝時選擇使用現有的 SQL 資料庫，那麼您必須確認已在 Essentials 2007 管理伺服器上安裝及設定 SQL Server 2005 SP1 Reporting Services。

升級到 Essentials 2007
您很可能已經執行 Windows Server Update Services (WSUS) 2.0 或 3.0 來處理 Microsoft 更新。此時，如果您想升級到 Essentials 2007 以便應用更完善的管理解決方案，Essentials 可讓您在安裝過程中進行升級。進行就地升級會保留現有的更新資訊，包括二進位檔案、群組與核准。
若您使用 Microsoft Operations Manager (MOM) 2005 或 MOM 2005 Workgroup Edition 來監控關鍵伺服器，但想要加入 Essentials 2007 功能以進行資產清查、軟體散發和更新，您可以透過匯出、轉換，然後直接匯入 Essentials 2007 的方式，輕鬆地遷移您的管理組件。如同 MOM 2005，Essentials 2007 也是使用管理組件來監控電腦與裝置。管理組件也包含成功診斷和解決 IT 問題所需的資訊。如果不希望完全遷移至 Essentials 2007，您可以維持並存操作，藉此保留關鍵的監控功能，並在方便時進行遷移。
先提醒您，在升級到 Essentials 2007 時不會保留某些 WSUS 設定。您會遺失下列相關資訊：電腦、自動核准及設定，以及命名為 All Clients 或 All Servers 的群組的現有核准。因此開始升級前，請先從 WSUS 刪除 All Clients 和 All Servers 群組。接下來，您必須在完成 Essentials 2007 安裝之後重新建立這些核准。
要注意的是，如果現有伺服器的下游伺服器處於作用狀態，您就無法從 WSUS 執行升級。Essentials 2007 不支援 WSUS Upstream Server (USS) 模式。由於無法有效偵測，因此如果 WSUS 伺服器具有下游伺服器，您將會收到警告。此外，如果您是使用 WSUS 2.0 or 2.0 SP1 而且遠端資料庫伺服器並未執行 SQL Server 2005 SP1 來儲存 WSUS 資料，那麼請勿進行升級。
在升級過程中會自動建立目前資料庫的備份副本。如果升級失敗，您可以使用此備份副本來還原先前的環境。請確認您有足夠的空間來備份目前的 WSUS 資料庫，方法是檢查目前的資料庫檔案大小，並確定現有空間是否足以建立副本。

設定 Essentials 2007
Essentials 2007 提供很多精靈來協助您完成設定與管理工作。功能設定精靈 (Feature Configuration Wizard) 會帶領您快速執行一些難以手動進行的設定步驟，例如設定群組原則。[圖 5] 顯示精靈的第一頁。
[圖 5] 啟動功能設定精靈 (Feature Configuration Wizard)
[圖 5] 啟動功能設定精靈 (Feature Configuration Wizard)
連線到網際網路時，若要使用 Proxy 伺服器，首先的步驟之一就是輸入伺服器名稱和連接埠號碼。接著，您可以選擇群組原則類型來設定受管理的電腦 — 本機或網域群組原則均可。若您選擇使用網域群組原則來設定受管理的電腦，此時也可以建立 Windows 防火牆例外。
下一步是啟用電腦的遠端協助功能，您可省略此步驟。若您選擇使用網域群組原則來設定用戶端，就適用此選項。請注意，這會在所有受管理的電腦上建立防火牆例外，以便允許 DCOM 通過 TCP 連接埠 135。
您可以選擇是否從受管理的電腦收集無代理程式錯誤監控 (Agentless Error Monitoring)。當您選取 [是] 並選擇儲存錯誤的位置後，受管理的電腦便會傳送錯誤報告到 Essentials 2007 伺服器，您可以檢視這些報告來查看哪些應用程式發生問題。
也有選項可讓您指定是否將錯誤報告轉寄給 Microsoft，以及是否設定和傳送每日狀況報告 (Daily Health Report)，報告中會包含關於警示、更新、軟體及清查的資訊。如果設定透過電子郵件來傳送每日狀況報告 (Daily Health Report)，您可以在開始工作時迅速判斷 IT 環境的現況。
最後，您可以選擇設定新電腦的每日排程探索。建議選取這個選項，因為它會告訴 Essentials 2007 針對新電腦執行 Active Directory 的每日掃描，並將這些電腦設定為自動接受管理。
執行專為自動電腦探索而設定的電腦和裝置管理精靈 (Computer and Device Management Wizard) 將會提示 Essentials 2007 伺服器查詢 Active Directory，並探索在受管理的網域中列出的所有電腦 (見 [圖 6])。若您選取 [進階 (Advanced)] 探索選項，您可以依照類型來篩選探索的裝置 (例如僅限用戶端或網路裝置)，在指定的 IP 位址範圍中搜尋，或建立進階查詢。建議您選取 [自動 (Automatic)] 電腦探索，並先執行這個功能以探索所有用戶端及所有伺服器。因為 Essentials 2007 也會監視啟用簡易網路管理通訊協定 (SNMP) 的網路裝置，因此隨後可以在進階模式中再次執行此精靈，並探索網路裝置。
[圖 6] 啟動電腦和裝置管理精靈 (Computer and Device Management Wizard)
[圖 6] 啟動電腦和裝置管理精靈 (Computer and Device Management Wizard)
如果您的網路規模超過大概 300 部電腦，您可能應該選擇 [進階 (Advanced)] 探索，並提供更具體的條件來定位您的電腦。指定系統管理員帳戶時，請確認該帳戶在您要探索的電腦以及要安裝代理程式的電腦上都具備系統管理員權限。當探索完成時，選擇您要管理的電腦，然後按一下 [完成 (Finish)]。
若您已經使用 WSUS，那麼應該會熟悉更新管理設定精靈 (Update Management Configuration Wizard) 中的某些設定。如果需要使用 Proxy 伺服器來讓伺服器連線到網際網路，請輸入 Proxy 伺服器設定。選取要下載和部署更新的產品，然後選擇更新所需的語系 (預設為伺服器語系)。選取要下載和部署的更新類別 (預設為重大更新、安全性更新和 Service Pack)。若有的話，選取要對哪些群組自動核准哪些更新類別(預設為 [所有電腦的重大和安全性更新 (Critical and Security Updates for All Computers )] 群組)。最後，設定同步處理更新的排程 (預設為每日)。
如果您在設定 Essentials 2007 時可以使用網域系統管理員或群組原則管理員憑證登入，就應該選取網域群組原則來設定受管理的電腦；這樣可以讓設定工作更簡單。選取網域群組原則可讓您在所有受管理的電腦上自動設定 Windows 防火牆和遠端協助設定。這項選項會引導 Essentials 2007 為您建立原則設定。如果選取本機原則，您就必須執行好幾項手動設定。

疑難排解 Essentials
疑難排解有關電腦探索、代理程式部署和通訊的問題時，有幾點需要考慮。首先我們來快速瀏覽一下電腦探索程序的運作方式。Essentials 2007 使用您的搜尋輸入參數並建立輕量型目錄存取通訊協定 (LDAP) 查詢 (LDAP 是用來搜尋 Active Directory 中的物件的查詢語言)。此 LDAP 查詢接著會傳遞到本機網域控制站，並提交搜尋工作，然後 Active Directory 會將結果傳回管理伺服器。管理伺服器接著嘗試連線到清單中傳回的各個電腦，以確保它能與這些探索的電腦通訊，並藉此安裝管理代理程式。電腦一經驗證後，便會加入已探索電腦的清單中，供您管理。
但是請注意，如果電腦有 Active Directory、網路與 DNS 或驗證方面的問題，Essentials 2007 伺服器可能無法探索這些電腦。
開啟 [Active Directory 使用者和電腦] 管理主控台來查看電腦是否在清單中。這項工具預設會安裝在 Windows Server 2003 上，而且可以從 Windows Server 2003 管理套件安裝在 Windows XP Professional 上。選取 [儲存查詢] 資料夾，以滑鼠右鍵按一下，指向 [新增]，然後按一下 [查詢]。輸入查詢名稱，然後按一下 [定義查詢] 按鈕。按一下標示為 [尋找] 的下拉式清單，並選取 [電腦]。輸入名稱或搜尋前置詞，接連按一下 [確定] 以產生查詢。
現在檢查電腦是否出現在結果清單中。若未出現，將電腦新增到 Active Directory。確認該電腦的 DNSHostname 屬性已經正確設定；這個屬性位於 [Active Directory 使用者和電腦] 管理主控台內，電腦的內容對話方塊的 [一般] 索引標籤上。
如果您需要透過網路聯繫電腦，請根據提供給探索精靈的相同名稱，使用 Ping 命令來嘗試連上電腦。如果這部機器回應 Ping 命令，請使用 -a 參數和 IP 位址來執行 Ping，如下所示：
ping -a <IP address>
以下命令會顯示機器的 DNS；此 DNS 應符合原始 Ping 命令中使用的 DNS。使用此命令來查看電腦已登錄的 NetBIOS 名稱與網域：
nbtstat -a <computer name>
這會與機器的 IP 位址完成相同的工作。
nbtstat -A <IP address>
命令參數 –a 有區分大小寫。請注意，使用 IP 位址時需輸入 –A。要是機器沒有回應 Ping 要求，或是遠端代理程式安裝失敗並顯示「RPC 服務無法使用」的訊息，就表示 Windows 防火牆已開啟。在 Essentials 2007 部署環境中有啟用防火牆的情況下，就必須建立例外，Essentials 2007 管理伺服器才能順利在受管理的電腦上安裝代理程式，而受管理的電腦也才能與管理伺服器通訊 (使用受管理的電腦時，如果使用的是網域群組原則而非本機群組原則，您就無須手動建立防火牆例外)。
如果代理程式安裝失敗，請瀏覽到「系統管理 (Administration)」區 (就是在主要的 Essentials 2007 管理主控台的左下角，位於 [報告 (Reporting)] 導覽按鈕旁邊的金色齒輪)，然後按一下 [擱置管理 (Pending Management)]。此檢視畫面會提供疑難排解步驟，也可讓您將代理程式重新發送到第一次安裝時失敗的電腦。
請務必預留幾個小時的時間，好讓防火牆原則套用到所有受管理的電腦。如果您緊湊地連續執行功能設定精靈 (Feature Configuration Wizard)、選取網域群組原則，接著執行電腦和裝置管理精靈 (Computer and Device Management Wizard)，那麼防火牆原則可能沒有機會套用到您正探索的電腦，如果防火牆仍處於啟用狀態，這樣就會造成探索失敗。
若要檢查能否順利發送代理程式到電腦，方法之一是嘗試從管理伺服器以 Telnet 連接到該電腦。如果您可以透過連接埠 135 從管理伺服器以 Telnet 連接到電腦，就表示一切就緒。否則，該電腦的防火牆可能封鎖 TCP 連接埠 135。若要執行 Telnet，只要啟動命令視窗並輸入：
telnet <computer_name> 135
這會讓您透過連接埠 135 以 Telnet 連接到您指定的電腦。連接埠 135 很重要，因為這是您從遠端安裝代理程式所使用的連接埠。
如果作業失敗，請確定已經建立適當的 Windows 防火牆例外，以便允許代理程式部署以及與管理伺服器建立通訊。若未建立，您必須建立連接埠例外，如 [圖 7] 所示。針對這些例外，使用 [自訂 (Custom)] 清單選項，將範圍限制為 Essentials 2007 管理伺服器的 IP 位址。
Figure 7 連接埠例外 (Close Figure 7)

通訊協定 | 名稱 | 連接埠
TCP | 連接埠 6270 | 6270
TCP | 連接埠 135 | 135
TCP | 連接埠 445 | 445
如果您的電腦使用來自協力製造商的防火牆軟體，那麼您應該參閱該產品的說明文件，以了解如何建立例外。不過，[圖 7] 列出的連接埠例外仍然適用。
如果 NetBIOS 名稱和完整格式網域名稱 (FQDN) 不相符，就必須修正機器的 DNS 記錄。如果代理程式可安裝，但無法聯繫管理伺服器，請透過終端機服務或遠端桌面來連接到代理程式電腦，並使用 Ping 和 nbtstat 命令來確認代理程式可以解析管理伺服器的 NetBIOS 與 FQDN 名稱。
如果 Essentials 2007 的 IP 位址是動態指派，那麼您必須在 IP 位址變更時更新受管理電腦上的防火牆原則。若要將防火牆例外更新為新的管理伺服器 IP 位址，請在 [群組原則物件編輯器] 中啟用下列兩項原則設定，然後如本文所述加以設定。在 [Windows 防火牆: 允許遠端系統管理例外] 中，將 [允許來自下列的來路不明傳入訊息] 設為管理伺服器的新 IP 位址。在 [Windows 防火牆: 允許檔案及印表機共用例外] 中，將 [允許來自下列的來路不明傳入訊息] 設為管理伺服器的新 IP 位址。

結論
希望本文提供的資訊能協助您開始使用 System Center Essentials 2007。如需有關這項 System Center 新產品的詳細資訊，請造訪 microsoft.com/sce。
別忘了，進行部署前一定要仔細規劃。在此案例中，您是要部署全新的解決方案來管理 IT 環境，因此您必須花一點時間來思考目前的網路設定、使用者的工作習慣，以及您希望管理 IT 資源的方式。預先考量這些事情將有助於順利設定符合您的需求的 Essentials 2007。

David Mills 已在 Microsoft 服務七年，目前擔任 System Center Essentials 2007 的資深技術產品經理。加入 System Center 行銷小組之前，David 曾帶領 Windows Server 部門的使用者輔助資源小組，針對核心網路與管理技術提供 IT 專業技術說明文件。


 System Center: 使用 Operations Manager 2007 監控您的伺服器
System Center Pete Zerger

使用 Operations Manager 2007 監控您的伺服器
摘要:
  • Operations Manager 2007 的新功能
  • 使用操作主控台
  • 角色的功用
  • 強大的新報告功能

System Center Operations Manager 2007 使 Microsoft 操作管理平台向前躍進一大步。Operations Manager 2007 意謂著策略的思考模式轉移，從以電腦為主的監控作業轉型為真正的服務導向
監控平台。雖然這項新模型與其前身一樣都是代理程式型的監控解決方案，內含所有 Microsoft® Operations Manager (MOM) 2005 系統管理員都熟悉的概念，但實質上已改變很多。您將看到，它提供了許多令人驚喜的新功能、新的管理介面，以及大量的附加資源來介紹這個 Microsoft System Center 系列產品的最新成員。

管理介面
最明顯的改變莫過於新的管理介面。各自獨立的操作主控台與系統管理員主控台已不復見，取而代之的是整合的操作主控台，在此可執行系統管理、製作、操作和報告功能 (見 [圖 1])。總是令人混淆的 MOM 2005 系統管理主控台的單一資料夾樹狀目錄也消失了，被取代成類似 Outlook® 的介面，其中顯示五個以功能區別的工作區，分別為：監控、製作、報告、系統管理和我的工作區。
[圖 1] 操作主控台
[圖 1] 操作主控台
此監控工作區以簡潔的介面，展示網路基礎結構的警示、狀態、效能和圖表檢視，外觀類似 MOM 2005 的操作員主控台。
製作工作區可讓您設定新規則和建立群組，規則及監視器將依據您在此的動作來運作。操作主控台中併入了大幅改良的報告介面，您無須再瀏覽個別的報告網站。其中也包含執行系統管理工作的介面，例如電腦和網路裝置探索，以及安全性和通知設定的作業。最後，我的工作區可讓使用者建立自訂檢視、儲存常用檢視和搜尋，以及設定自訂警示通知訂閱。
操作主控台載入時會提供即時線上說明，其中包括產品說明文件的連結、線上網路廣播和概念指導。操作主控台也具有豐富的搜尋功能，可讓使用者定義任何物件類型的進階搜尋準則，根據物件類型以及在搜尋中定義的值特性來傳回結果。.
操作主控台中的 [執行 (Actions)] 窗格提供一大堆內容相關的工作，會針對物件設定及狀態顯示資訊，還可讓您為目標物件啟動新的健康狀況總管 (Health Explorer) (見 [圖 2])。在健康狀況總管 (Health Explorer) 中，代表特定實體 (受監控物件) 的受監控物件健康狀況的樹狀結構會以階層顯示。每個實體都是根據至少四個參數加以監控：可用性、設定、效能及安全性。這些值會往上串連；這些參數的各個狀態都會根據在階層中參數底下的監視器狀態來計算。
[圖 2] 健康狀況總管 (Health Explorer)
[圖 2] 健康狀況總管 (Health Explorer)
健康狀況總管 (Health Explorer) 會診斷受監控物件的失敗，並讓您按一下事件詳細資料中的超連結來處理錯誤情況。您也可以視需求執行顯示在健康狀況總管 (Health Explorer) 的詳細資料窗格中的診斷或修復工作 (如 [圖 3] 所示)，或是設定在警示產生時自動執行的工作。反白顯示狀態變更事件時，診斷工作 (例如擷取執行中處理序的清單) 的輸出將自動顯示在詳細資料窗格中。
[圖 3] 診斷和修復
[圖 3] 診斷和修復

Web 主控台
在此版本中，Operations Manager 大幅擴充了網路型管理功能。Web 主控台利用 Internet Explorer® 來提供操作主控台的 [監控 (Monitoring)] 和 [我的工作區 (My Workspace)] 的功能，而且提供與操作主控台相同的檢視，其中包括可立即使用的 [執行 (Actions)] 窗格，以便執行以內容為主的工作，同時還可以讓受監控的物件進入維護模式 (見 [圖 4])。
[圖 4] Web 主控台
[圖 4] Web 主控台
本產品也包含行動式 Web 主控台，可從具備網路功能的行動裝置加以存取。Web 主控台提供 RSS 摘要，並藉此傳送警示到 Outlook 2007 收件匣或您選擇的 RSS 彙總程式。

命令殼層
Operations Manager 命令殼層是一個功能強大的介面，可以從命令列執行完整的系統管理控制。只需要一行程式碼 (稱為單行指令碼)，就能啟動許多複雜的工作。命令殼層是特殊設定的 Windows PowerShell™ 執行個體，而 Windows PowerShell™ 則是以 Microsoft .NET Framework 為基礎的物件導向命令列環境。它可讓您存取許多函數 (稱為 cmdlet)，以執行操作主控台 GUI 提供的各項工作 — 還不光是這些而已。這些 cmdlet 可讓您輕鬆快速地對多個目標物件執行一項工作 (例如讓大量代理程式進入維護模式)，同樣的工作要是透過操作主控台執行則需耗費更多的時間。舉例來說，若要將所有未決的重要警示清單匯出到網頁，可在 Operations Manager 命令殼層視窗中執行下列指令碼：
get-alert | where {$_.Severity -gt "Warning" -and $_.ResolutionState -eq 0 } | format-table
monitoringobjectdisplayname,name,severity,
description
Windows PowerShell 的物件導向性質正是命令殼層如此強效的原因。您不需要通曉 C# 或 Visual Basic® .NET，便能享受 Operations Manager .NET 類別庫的強大威力。

電腦和裝置探索
電腦探索和代理程式部署在 Operations Manager 中也有所演進。您可以使用操作主控台的電腦和裝置管理精靈 (Computer and Device Management Wizard) 來探索代理程式，這項功能可讓系統管理員搜尋 Active Directory®，或是手動輸入目標電腦或電腦清單 (見 [圖 5])。詳細的輕量型目錄存取通訊協定 (LDAP) 查詢可以更精細地鎖定特定電腦以進行代理程式部署。
[圖 5] 透過 Active Directory 查詢的進階探索
[圖 5] 透過 Active Directory 查詢的進階探索
這個精靈可讓您探索啟用簡易網路管理通訊協定 (SNMP) 的裝置，接著可以在管理組件規則中鎖定這些裝置來加以監控。
與 Active Directory 整合是另一項重大進步。它可讓系統管理員在 Active Directory 中登錄管理群組資訊 (利用簡單的公用程式)，如此一來，Operations Manager 代理程式只要在啟動時查詢 Active Directory，就能找到適當的管理伺服器。這項新整合結果也讓系統管理員藉著將 Operations Manager 納入機器映像中、透過常見的系統管理平台 (例如 Systems Management Server 2003 或 System Center Configuration Manager) 來部署代理程式，或是使用群組原則，簡化或自動化代理程式部署作業。

安全性
Operations Manager 2007 可用來監控許多類型的應用程式，其中某些應用程式可能必須限制供特定支援人員來存取。幸好，新的角色型安全性模型具有五種預設的使用者設定檔，會根據常見的角色功能來建立存取權群組，範圍從唯讀操作員到系統管理員都有。這些預設使用者角色分別都是以其中一個預設設定檔為基礎。使用者角色定義使用者可執行的作業類型和這些權限的範圍。若要建立自訂角色，您也可以選取其中一個預設設定檔，接著設定角色範圍來限制所需的受監控物件、工作及檢視子集的監控資料可見性。以這些使用者設定檔為基礎的標準和自訂使用者角色都可以指派到 Active Directory 安全性群組，將使用者預備工作重新交回安全性系統管理員工的手裡。
「以執行方式執行 (Run As Execution)」也是 Operations Manager 2007 中的一項新功能，可提供安全的基礎結構來管理執行特定動作所需的憑證。例如，有些監控工作可能需要高權限的憑證，或者甚至是非 Windows 的憑證。
「以帳戶執行 (Run As Accounts)」必須與「以設定檔執行 (Run As Profile)」建立關聯，後者再與需要特定權限的規則或工作建立關聯。「以設定檔執行 (Run As Profile)」可讓管理組件作者在製作過程中建立帳戶需求摘要，系統管理員便可以在管理組件安裝在 Operations Manager 上之後，連結適當的「執行身分」帳戶。
在代理程式與管理伺服器間的通訊作業上，Operations Manager 2007 會要求相互驗證，因此比前身產品提供更強的安全性。在信任的環境中，可以透過來完成相互驗證。至於在不信任的環境及周邊網路環境中，情況就比較複雜。相互驗證需要有使用 x.509 憑證的憑證型驗證，若要這麼做，組織就必須考慮自己的公開金鑰基礎結構 (PKI) 選項 (如果沒有準備的話)。

伺服器角色
雖然 MOM 2005 的管理伺服器、操作資料庫和報告伺服器角色仍保留在 Operations Manager 中，但另外也加入了一些新的管理伺服器角色。根管理伺服器角色將一些重要功能獨立出來，例如使用者授權、通知，以及在基礎結構中與專屬使用者的控制台連線管理。為了達到最佳效能，根管理伺服器應該專門使用這個角色，而且不應該將任何代理程式設定為向此伺服器報告。
新的閘道伺服器角色提供回覆管理伺服器的單一通訊，藉此有效使用未受信任的網域與周邊環境上的管理電腦。在很多情況下，可以透過 Kerberos 通訊協定來授權目標網域中的代理程式進入閘道伺服器，這樣可將憑證型驗證需求降至最低，並減少系統管理工作與整體擁有成本。

報告
使用者會發現 Operations Manager 2007 在報告功能方面有長足的進步，而且在操作主控台中也加入了「報告 (Reporting)」區。同樣地，報告安全性也與整體 Operations Manager 安全性相結合。
其中有一些重大的架構變更，包括資料傳送到報告資料庫的時機與方式。不再需要每晚從操作資料庫傳送前一天報告資料的資料轉換服務 (Data Transformation Services，DTS) 工作，因為現在資料會在插入操作資料庫的同時，直接插入報告資料庫，幾乎不會有延遲。
Operations Manager 報告包含新的智慧型參數標頭，能更有彈性地定義和報告特定與相關的資料以及時間範圍，包括將報告輸出限定為使用者定義的上班時段。為了簡化鎖定報告物件的工作，智慧型參數標頭中的物件選取器提供搜尋功能。在排程報告時，有了靈活的日期選取器就不用為了滿足週期性報告中的特定相關日期範圍而修改報告定義檔案 (見 [圖 6])。
[圖 6] 設定上班時間
[圖 6] 設定上班時間
另一項報告改良功能是確保快速呈現報告，即使是在延伸的日期範圍中執行的報告也一樣。為此，Operations Manager 報告資料會自動預先編列索引並彙總到每小時和每日的摘要資料點，並用於所有 Operations Manager 報告中。除了預先編纂資料，這項功能還提高了資料倉儲延展性，因為原始資料點可以在資料庫中高度壓縮，而不會影響歷史報告功能。
顯然地，最厲害的改良功能應該是關於呈現報告本身的內容與功能，這些報告使用與網路工程師和 IT 管理員相關的格式來顯示歷史效能及可用性資料。
[圖 7] 顯示由圖表組成的標準效能報告。在圖形中的各行以及表格中的說明內文都可藉由點擊動作來顯示詳細報告，如 [圖 8] 所示。
[圖 7] 標準效能報告
[圖 7] 標準效能報告
[圖 8] 效能詳細資料報告 (下拉式)
[圖 8] 效能詳細資料報告 (下拉式)
Operations Manager 中的可用性報告是以物件狀態為基礎。任何具有狀態的物件都可以當做現成可用性報告的目標。只需要按一下滑鼠，您就能從詳細資料報告跳到可用性報告 (見 [圖 9])。
[圖 9] 可用性報告
[圖 9] 可用性報告
針對不含報告的管理組件，可使用一般報告，這些報告會納入幾乎所有受管理物件的可用性與效能報告，因而有效減少製作自訂報告的需求。
系統管理員會很高興發現 Operations Manager 2007 現已支援將多個管理群組報告彙整到單一的報告資料倉儲中。報告安全性與產品的角色型安全性相互整合，好讓系統管理員經由 Active Directory 安全性群組來控制報告存取。

通知
Operations Manager 2007 中的通知引擎已經過徹底改造，當中加入了系統管理員一直要求的功能，包括立即訊息和 SMS (需要在管理伺服器上安裝協力廠商 SMS 提供者) 等其他通知選項 (稱為通知管道)。通知訂閱現在包含範圍選項，可讓系統管理員限制操作員角色可見的可用限制物件類型和群組，並且更精準地鎖定通知訂閱。
當符合訂閱中已定義條件的警示，在經過使用者定義的一段時間後，仍然維持特定的解決狀態時，警示老化 (提升) 便會傳送通知。
您現在可以針對每個訂閱來自訂訊息格式，如此一來，訊息格式自訂化作業就可以細分到個別使用者層級。此外，操作主控台的 [我的工作區 (My Workspace)] 窗格中的自助通知可讓使用者定義自己的通知裝置和訂閱設定。這裡列舉的只是一些非常便利的通知功能，還有其他用途的功能。

管理組件
在 Operations Manager 2007 中，管理組件仍然是服務與應用程式監控的基本架構，Microsoft 產品小組可以直接從這些管理組件提供應用程式知識。不過，管理組件已經從伺服器監控轉型為服務導向監控，現在更著重所提供的服務的健康狀況。
由於篇幅有限無法深入討論，希望讀者注意到，MOM 2005 的簡單物件類型模型 (電腦和電腦群組) 已經過改造成為可擴充模型，其中包含許多可以鎖定的受監控物件類型。這為協力廠商 ISV 營造出豐富的開發環境，能夠提供優異的企業營運、網路及跨平台產品。
類似 MOM 2005 使用的簡單監控規則可用來執行各種常見的監控工作，例如文字與事件日誌監控、WMI 事件查詢、依據排程執行的指令碼，以及大幅改進的 SNMP 陷阱提供者 (可消除編譯 SNMP 管理資訊基礎的需求)。
不過在 Operations Manager 中，監視器會偵測受管理物件的狀態變更。監視器包含 MOM 2005 提供者所沒有的許多功能，例如 TCP 連接埠檢查、資料庫與網站連線的模擬交易、ASP.NET 應用程式和 Web 服務監控，還有最重要地適用於分散式企業營運應用程式的服務導向監控。隨後我將再詳細地解說這些功能。

自我調整閾值
有時候，特定計數器可能不清楚某些行為。針對這種情況，Operations Manager 提供了自我調整閾值監視器。自我調整閾值監視器利用定義的商業週期 (通常是一週，但也可能短至一天) 中的學習過程來確定指定效能計數器物件的一般值，然後根據在學習期間所記錄的操作定額來定義閾值。這些閾值代表預期的活動，包括資源使用率的劇烈升降，這些可能是發生在夜間的應用程式和系統維護工作期間。

模擬交易
為了提供應用程式健康狀況更動態的圖形表示，Operations Manager 提供模擬交易，這些模擬交易是針對監控物件即時執行的動作。模擬交易可以針對網站瀏覽順序、資料庫連線和 TCP 連接埠監控而建立。您可以指定執行交易的伺服器節點 (稱為監看員節點)，也可以指定想要的監控間隔。如果選取多個監看員節點，就可以比較結果來判定每個節點的經驗是否一樣。
用來擷取網頁瀏覽器順序的 Web 應用程式編輯器 (Web Application Editor) 也可讓系統管理員定義警告與錯誤層級的回應時間閾值，另外還可指定在頁面載入和連結擷取中個別作業的效能計數器收集。需要各種驗證方法 (例如基本驗證或 NTLM 驗證) 的安全 (SSL) 瀏覽器順序也受到支援。
覆寫是耳熟能詳的 MOM 2005 概念，用來調整 Operations Manager 針對物件或受管理物件群組的監視器、屬性與規則所設定的組態 (見 [圖 10])。對於控制 Operations Manager 收集的資料量而言，覆寫的使用是關鍵。您可以合併使用群組與覆寫，將監視器、規則、屬性或物件探索的範圍縮小至您自己管理組件中的目標物件群組，也可以將範圍縮小至 Microsoft 與協力廠商 ISV 的管理組件中的目標物件群組。
[圖 10] 服務監視器的覆寫參數
[圖 10] 服務監視器的覆寫參數

企業營運應用程式監控
新的分散式應用程式設計工具 (Distributed Application Designer) 可讓您在服務層級建立關鍵應用程式的全貌，然後建立分散式應用程式元件的摘要健康狀況指示器。其中可包括任何探索的物件類型，例如 Web 服務、SQL Server™ 資料庫，甚至是網路路由器和交換器等非 Windows 裝置。接著就可以在圖表中檢視物件關係與目前的健康狀態。
為了讓這項強大的功能更方便使用，Microsoft 提供數個分散式應用程式範本，好讓系統管理員著手定義自己的企業營運應用程式。所提供的範本適用於好幾種常見的案例，這些範本包括 ASP.NET 應用程式和 ASP.NET Web 服務 (ASP.NET Application and ASP.NET Web service)、企業營運 Web 應用程式 (Line of Business Web Application)、訊息中心 (Messaging)、SharePoint® 入口網站伺服器陣列 (SharePoint® Portal Farm)，以及終端機服務伺服器陣列 (Terminal Services Farm)。
您可以利用 Microsoft 或協力廠商管理組件將新的範本加入管理群組中，這些新範本便會顯示在新增監控精靈 (Add Monitoring Wizard) 中。適用於 Active Directory、Exchange 及 Operations Manager 的分散式應用程式監視器是預先部署的，因此無法加以編輯。

管理組件可用性
專為 Operations Manager 2007 所編寫的管組套件 (稱為最佳化管理組件) 是為了發揮 Operations Manager 2007 的新功能而設計，計畫將於 2008 年的新軟體版本中提供。不過，現有的 MOM 2005 管理組件還是可以使用 MPConvert 公用程式，轉換成方便 Operations Manager 2007 使用的格式，您也可以使用 MOM 2005-to-Operations Manager 2007 遷移工具，從現有的 MOM 2005 安裝移轉；這兩項工具都隨附在 Operations Manager 2007 CD 中。實際上，Microsoft 是將 MOM 2005 管理組件轉換成 Operations Manager 2007 相容的格式，因此通常只有自己撰寫的管理組件才需要進行此作業。

稽核收集
稽核收集提供的解決方案可自動化分散的 Windows 安全性事件日誌的收集與集中保存作業。它是針對中型與大型企業所設計，這些企業需要收集和分析大量的安全性事件日誌資料以便進行內部與外部法規遵循稽核。稽核收集包含四個角色：收集器 (Collector)、轉寄站 (Forwarder)、資料庫角色以及報告角色。收集器 (Collector) 是指「抓取」事件並將這些事件插入稽核收集資料庫的伺服器。轉寄站 (Forwarder) 是近乎即時來傳送安全性事件日誌的服務，可將本機系統管理員更動安全性事件日誌的可能性降至最低。轉寄站 (Forwarder) 服務包含在 Operations Manager 2007 代理程式中，但是必須啟用特定代理程式的稽核收集功能才會啟用它。
稽核收集採用自動夜間資料庫維護，藉以確保在龐大資料集中也能持續提供良好的報告呈現效能。稽核收集中的資料集會定期輪換 (預設是儲存 14 天)，系統管理員可根據組織需求來調整此設定。為了分析收集的事件，稽核收集包含一個報告角色，其中有一組基本的 20 個左右的稽核報告，以及高效能 WMI 訂閱者，它為特殊查詢提供了簡單好用的介面，而無須直接授與系統管理員資料庫存取權限。

用戶端監控
Operations Manager 2007 中的新用戶端功能可讓系統管理員監控桌上型作業系統和應用程式，並協助判斷最常發生的錯誤，進而分配工作以達到組織的最高利益。收集的錯誤資料會用來產生詳細檢視與報表，提供系統管理員立即可用的資訊來源以加速支援決策過程。
Operations Manager 2007 中的用戶端監控其實是由三個可個別啟用的層級所組成：
無代理程式例外監控 (Agentless Exception Monitoring，AEM) 可讓系統管理員監控作業系統與應用程式是否發生當機或錯誤。系統管理員可以將這些以前可能直接呈報給 Microsoft 的報告傳送到管理伺服器，如果您要的話，也可以從管理伺服器轉寄這些報告到 Microsoft。
客戶經驗改進計畫 (Customer Experience Improvement Program，CEIP) 參與 CEIP 時，您是使用群組原則來設定用戶端將報告重新導向至 Operations Manager 2007 管理伺服器，而非直接傳送報告到 Microsoft。接著再設定管理伺服器將這些報告轉寄至 Microsoft。
必須注意的是，AEM 和 CEIP 用戶端監控元件都可以依無代理程式的方式執行。
商務關鍵工作站的用戶端監控 (Client Monitoring for Business-Critical Workstations) 涉及實際部署 Operations Manager 代理程式到商務關鍵桌上型電腦。包含的管理套件適用於 Windows 2000、Windows XP 和 Windows Vista，以及監控 Microsoft Office、Internet Explorer 與其他 Microsoft 桌上型應用程式的 Microsoft Information Worker。

立即試用
如您所見，System Center Operations Manager 2007 網羅了許多功能，專為服務導向監控而設計並適當地加以整合，讓您充分運用已投資的 Active Directory、簡化系統管理工作，並降低整體擁有成本。我非常鼓勵您試用這麼棒的新版本，自行探索產品的各種可能性。
您可以從以下網址下載 180 天的 Operations Manager 2007 試用版：microsoft.com/technet/opsmgr/2007/downloads/trials/privacy.mspx。如需 Microsoft System Center 技術的詳細資訊，請造訪 System Center Operations Manager 首頁，網址是：microsoft.com/systemcenter/opsmgr。您可以在全新的「Designed for BIG」網站上閱覽 System Center 成功案例 (影片與案例研究)，網址是：designedforbig.com。

Pete Zerger 是 AKOS Technology Services 的顧問夥伴。Pete 從事 IT 產業已有九年經驗，擅長設計與部署企業營運管理、目錄服務和訊息解決方案。Pete 持有訊息中心的 MCSE 認證、SQL Server 2005 的 MCTS 認證，另外他也是 Microsoft Operations Manager 的 Microsoft MVP。


 System Center: 從 MOM 遷移至 Operations Manager 2007
System Center Andy Dominey

從 MOM 遷移至 Operations Manager 2007
摘要:
  • 規劃 Operations Manager 部署
  • 評估硬體需要
  • 保存歷史資料
  • 測試計畫

伺服器監視和管理是各種現代 IT 基礎結構不可或缺的一部分。確保您的 IT 基礎結構不但能正確運作，並且足以支援使用者在上面加諸的負載尤其重要。然而，收集這些資訊是說的
比做的容易，而且在擁有這項資訊後知道要怎麼運用又是另外一回事。還好，Microsoft® Operations Manager (MOM) 在這方面的成就已有七年的歷史，而它最新的化身 System Center Operations Manager 2007，更是擴充了這個基礎。

為什麼要遷移？
System Center Operations Manager 2007 提供眾多比前版 MOM 2005 還優越的改進功能。核心架構已經過重新設計及大幅改良，以允許此產品更熟知散佈在多重裝置的應用程式，並且不只對伺服器，更對組成伺服器的所有元件有所了解。
此外，Operations Manager 還擁有一個功能強大的定序引擎，能夠彙總警告資料，進而大幅減少假性警告的數目，另外也包含一個健康狀況總管 (Health Explorer)，有助於使尋找和解決問題的過程更具效率。
還有自我調整閾值和基準引擎，允許您輕鬆追蹤環境內的效能使用狀況，報告引擎也改良許多，提供優質的圖形和詳細的報告。看看 [圖 1] 稍微體驗一下報告資料的視覺呈現。
[圖 1] Operations Manager 2007 中的可用性報告
[圖 1] Operations Manager 2007 中的可用性報告
Operations Manager 甚至可用來監視桌上型電腦和伺服器。以下是 Operations Manager 2007 所提供的一些其他功能：
  • 絕佳的 Windows Server System™ 平台監視功能
  • 強大的應用程式監視功能
  • 自動化一般工作
  • 新一代資料庫引擎加速企業級延展性和控制力
  • 安全性增強與 Active Directory® 整合
有關 System Center Operations Manager 2007 中提供的新功能的詳細資訊，請參考 Pete Zerger 在本期《Technet Magzine》中發表的＜透過 Operations Manager 2007 注意您的伺服器＞一文。

遷移至 Operations Manager
在規劃遷移至 Operations Manager 2007 之前，請務必了解，這項產品並沒有直接的升級途徑。這是因為 Operations Manager 架構上有顯著的更動，造成該產品無法與前版相容來進行就地升級。因此，如果您目前執行的是 MOM 2000 或 MOM 2005，就必須考慮本文稍後說明的其中一個遷移策略。
不過，如果您並沒有執行前版的 MOM，便可直接安裝此產品的新版本。要注意的是，您在專案相當早期的階段，就必須決定公司內是否有足夠的技能可以履行安裝或遷移作業，或者您是否需要求助於協力廠商。很明顯地，這會影響到專案的整體成本，因此應該在此程序開始時加以考慮。

遷移案例
對於目前沒有執行 MOM 的人來說，部署的程序相當直接：規劃和設計架構，然後部署軟體。然而，要是您正在使用 MOM，Microsoft 支援兩種遷移案例：在相同的硬體上並行，以及在不同的硬體上並行。讓我們兩種都來探討一下。
在相同硬體上並行 這種案例中，您是將 Operations Manager 安裝在與現有 MOM 2000 或 MOM 2005 架構的相同實體硬體上。對於不常用到 MOM 基礎結構，而且伺服器硬體強大到足以一起裝載新舊版本的情況，這種方法相當實用。您應該只在安裝 Operations Manager 不會嚴重影響目前 MOM 伺服器的效能下考慮這種途徑。
在不同硬體上並行 在這種情況下，是在全新或不同的硬體上執行全新安裝。這是比較慣用的方法，因為它可確保當進行遷移時，對目前的管理基礎結構不會有太大的影響。值得注意的是，並不見得需要額外的硬體。新的 Operations Manager 2007 伺服器可以先放在虛擬機器上，直到可以重新配置舊伺服器硬體為止。

考量因素
在決定採納特定的遷移策略之前，有幾個重點需要考量。
首先，您必須考慮軟硬體需求及相關的成本。即使您決定將部分或整個 Operations Manager 基礎結構接移或佈建到虛擬機器上，您還是需要讓 Operations Manager 監視每個代理程式的 OS 和應用程式授權還有 OML (Operations Management License，操作管理授權)。
其次，您必須規劃履行工作的資源。在小型公司中，這可能不是特別複雜或困難的計畫，但在大型企業中，這將是整體遷移策略的關鍵部分。
您還必須考慮這項遷移在整體上對目前監視基礎結構或伺服器資產可能產生的衝擊。您應該針對各種偶發狀況作規劃，包括伺服器重新開機的可能性，或甚至是主要生產伺服器的失敗等。
請注意，如果您將 MOM 2000 中的 Microsoft Access™ 資料庫，或 MOM 2005 中的 SQL Server™ 資料倉儲用於資料存放和報告，目前並不支援將此項資料遷移到 Operations Manager 2007。

規劃成功的遷移
身為顧問的我常見到的最大問題之一是，不充分的部署規劃。因此，一旦您決定要安裝在全新或是現有的硬體上，下一步便是製作專案計畫。
您的專案計畫應該列出本文內所建議的專案階段 — 但這並不是詳盡的清單。確實為專案的各個階段配置足夠的時間，並將任何必要的資源都列入考量。
如我先前註明的，System Center Operations Manager 2007 與 MOM 2000 和 2005 比起來，具有截然不同的架構。對於入門者，最明顯是的 Operations Manager 中有個額外的伺服器角色，也就是 Root Management Server (RMS)。RMS 管理著管理群組的組態，處理與其他管理群組及協力廠商產品的所有連線，同時還負責管理群組間的安全性。這個角色可存放在現有的 System Center Operations Manager Management Server 上，但在大規模的複雜環境中，則應該擁有自己的實體伺服器。另外，存在於 MOM 2005 中的分層式管理群組概念也被連線管理群組所取代。在這個全新的架構中，管理群組之間實際上並不會傳遞任何警告資料，反而只會將連線管理群組的警告呈現在要求管理群組的 UI 中。除此之外，如果您考慮在不信任的網域或工作群組內的機器上安裝代理程式，必須使用憑證才能讓代理程式與管理伺服器互相驗證 (這是 Operations Manager 中強制的功能)。
為了設計 System Center Operations Manager 的架構，您必須考量打算監視的伺服器和用戶端的數量，它們是否位於信任的網域內，需要監視哪些應用程式和平台，以及您是否希望監視網路基礎結構。您還需要識別出任何需要自訂規則或管理組件的應用程式。
在這個階段，您應該識別管理組件需求。確定要監視的應用程式後，便可決定要安裝的管理組件。管理組件中包含了可套用到特定應用程式或作業系統的規則、監視程式、工作和類別，並且如果您的環境內有用到它們相關聯的應用程式或作業系統，也應該匯入管理組件。這個階段選擇的管理組件將影響軟硬體需求，以及安裝和設定軟體應該配置的時間量。
在大致確定 Operations Manager 基礎結構的架構之後，您應該準備 System Center Capacity Planner 2007 工具 (在撰寫本文之時仍處於 Beta 測試階段)。使用此工具來規劃網路和伺服器基礎結構，並模擬它在您規劃好的 Operations Manager 部署執行的情況，以確保它足以監視和管理基礎結構。
如果您計畫遷移的話，這時您也應當特別注意架構設計。您需要考慮到 MOM 200x 與 Operations Manager 一起執行所造成的額外網路流量。

部署
需要考量的下一個階段是部署。您必須在安裝軟體前，確定已佈建足夠的硬體。如果您是安裝至新環境，採用實體硬體比較恰當，尤其是資料庫伺服器。然而，若實體硬體不可行，也可以將管理伺服器虛擬化。在遷移的案例下，使用虛擬化伺服器是替代購買新硬體來接移新基礎結構的好辦法。這種情況下，您可以在舊版 MOM 伺服器解除任務及重建時，使用虛擬機器來接移 Operations Manager。
伺服器一經佈建，您便可以開始安裝軟體。首先，確定將執行 Operations Manager 的伺服器具有必備軟體來支援它。舉例來說，假如您執行的是 SQL Server 2000，而且打算將 Operations Manager 安裝在相同的伺服器上，必須先升級至 SQL Server 2005 含 SP1。要檢查伺服器是否裝有必備軟體，可從 System Center Operations Manager 安裝媒體執行 Operations Manager 先決條件檢查程式。
所有必備軟體皆備妥並且也設定好 SQL Server 和 Reporting Services 之後，就可以開始安裝 Operations Manager 軟體。這個動作在單一伺服器的環境中很簡單，只要在伺服器上執行 Operations Manager 安裝檔案，然後執行 Operations Manager 報告安裝程式 (如果您想要使用此功能的話) 就可以了。而在分散式的環境中，則需要以正確的順序將 Operations Manager 元件安裝在個別的伺服器上。您最先安裝資料庫，然後是第一部管理伺服器，Root Management Server 角色自動會指派給它。之後可安裝任何其他管理伺服器。最後一步是安裝 Web 主控台和報告元件。

遷移
在這個階段，您應該在嘗試利用任何新功能之前，確定新的基礎結構與現有的監視相對應。舊版環境中所使用的任何管理組件也都應該複製到新的 Operations Manager 部署。如果有可用的 Operations Manager 管理組件，您可能會想要匯入它，但是需要先從目前的管理群組匯出任何沒有較新版本的管理組件，使用安裝 CD 上的 MPConvert 工具進行轉換，並匯入到 Operations Manager — 除非您有比較小型或簡單的自訂管理組件，這種情況下直接重建可能比較妥當。另外在複製組態時，還有一個實用的工具。那就是 MOM 2005 to Operations Manager 遷移工具，它有助於將現有的 MOM 管理群組的組態複製到 Operations Manager，您在 Operations Manager 安裝 CD 上也找得到這項工具。[圖 2] 顯示遷移過程中典型的組態。
[圖 2] 遷移過程中的典型組態
[圖 2] 遷移過程中的典型組態
組態一複製好後，必須確定您確實可以收到相同的警告，並且在 Operations Manager 收集到的資料與在 MOM 收集到的一樣。所幸，Operations Manager 代理程式可以與舊版 MOM 代理程式同時存在，讓兩個代理程式可以同步執行。您可以在解除舊版系統的任務之前，從兩者收集資料，並且並排比對它們的正確性。
接下來您應該整理出一套測試計畫。測試規模可以只包括將舊版系統的警告與 Operations Manager 系統的那些警告相比較，也可以大到要求有目的的產生警告，到徹底評估新基礎結構。只要您滿意測試結果，便可使用 MOM 主控台或代理機器上的 [新增/移除程式]，開始解除安裝舊版 MOM 代理程式。
報告在 MOM 和 System Center Operations Manager 部署上佔了很大一部分，因此也有必要提到。現有 SystemCenterReporting 資料庫目前並不能遷移到 Operations Manager 2007，因此您可以為 Operations Manager 建立一個新的 Reporting Services 執行個體，然後把現有的 MOM 2005 (SystemCenterReporting) 資料庫留在專用的 SQL Reporting Services 執行個體內來顯示舊版的報告。System Center Operations Manager 2007 中全新的報告主控台已整合至該產品中，因此不建議將 Reporting Services 主控台用於 Operations Manager 以外的地方。遷移報告資料在未來可能會透過資料遷移指令碼的方式來解決，不過在此其間，您可能必須跟封存的報告資料說拜拜，放手開始產生全新華麗的報告，相信主管階層可能會興奮到連舊資料不見了都不會注意到。

結論
System Center Operations Manager 提供比 MOM 2000 和 2005 還優越的重大改進，但這是有代價的。基礎架構上的大幅變動 (而造成缺乏直接就地升級的途徑) 表示部署成本有可能會因此提高。將這些成本縮減至最低的關鍵在於進行充分的規劃，並確保您擁有適當的人選來完成這項工作，如此便能坐享 Microsoft 努力開發 System Center Operations Manager 所帶來的優勢。

Andy Dominey 進入 IT 產業已有八年的時間，目前正受雇於 1E，擔任英國分公司的 Windows 管理專家。Andy 自 MOM 2000 便開始接觸 MOM，他在過去兩年因對 MOM 的貢獻而榮獲 Microsoft MVP 頭銜。


 System Center: 透過 Microsoft SoftGrid 將應用程式帶往虛擬之路
System Center Ahmer Sabri and Kedar Shah

透過 Microsoft SoftGrid 將應用程式帶往虛擬之路
摘要:
  • 應用程式虛擬化的優點
  • SoftGrid 架構概觀
  • 串流處理軟體封裝

軟體虛擬化的概念自 1960 年代以來就以某種形式存在。然而，IT 產業卻花了幾十年的時間才瞭解到應用程式
虛擬化的潛能。現在人們逐漸跟上腳步，主要的開發也一同跟進。
Microsoft 在 2006 年 7 月併購 Softtricity 時，對應用程式虛擬化投入的一些影響。此次的併購成就了 Microsoft® SoftGrid 這套應用程式虛擬化解決方案。透過 SoftGrid，應用程式可從資料中心或其他網路位置來提供，並可在虛擬環境中的遠端用戶端以本機執行。虛擬化應用程式是在筒倉式系統 (Silo) 內執行，並且獨立於作業系統和本機桌面上的其他應用程式自行操作。
利用 SoftGrid 實作應用程式虛擬化的好數說不盡，礙於篇幅有限無法一一介紹，以下是一些最值得注意且立竿見影的優點：
簡化的迴歸和相容性測試 透過在單一機器上不衝突地平行執行相同應用程式的多個版本，您可動態地減少與測試和部署新應用程式相關聯的複雜度、時間和成本 (見 [圖 1])。
[圖 1] 透過 SoftGrid 使應用程式部署更有效率
[圖 1] 透過 SoftGrid 使應用程式部署更有效率
更簡易的系統管理 IT 能夠有力控制這些應用程式執行的環境，使得維護理想的桌面環境更加簡單。
減少技術支援電話 有了更妥善管理的桌面環境，以及更少的衝突 (感謝在控制的筒倉式系統執行的虛擬化應用程式)，使用者也就比較不需要打電話求援。
增強的桌面安全性 決不將應用程式安裝在 OS 上，以提高整體 OS 安全性。應用程式只佈建給授權使用者，藉此防止未授權存取。並且大多數應用程式會在標準安全性內容下轉譯。
免費的基座體驗 使用者喜好設定 (設定檔及其他設定) 是存放在網路上，藉以允許使用者從任何 PC 存取其各自的應用程式、喜好設定和控制項。
更完備的容錯和嚴重損壞修復 應用程式會轉換成資料檔案，就像任何企業資料一樣可以儲存及複寫。應用程式及其更新可使用協力廠商工具在即時站台與大量複製工具程式 (Bulk Copy Program，BCP) 站台之間自動進行同步處理，以便萬一發生嚴重損壞時能夠立即存取應用程式。
這些特性最終會減輕系統管理的負擔、降低成本，並允許您的組織更迅速且更可靠地採納新技術。現在讓我們更仔細看看 SoftGrid 到底是如何運作的。

提供虛擬化應用程式的方式
SoftGrid 架構是由大量一起共同運作的元件所組成。它包括 SoftGrid 元件 (如資料存放區、虛擬應用程式伺服器、編序器、管理主控台、管理 Web 服務，以及用戶端應用程式)，它們會結合標準基礎結構元件 (如 Active Directory®) 一起運作 (見 [圖 2])。我們會概述 SoftGrid 架構，並說明各種元件搭配運作的方式。
[圖 2] 整體 SoftGrid 架構
[圖 2] 整體 SoftGrid 架構
SoftGrid 資料存放區的作用像是整個虛擬化環境的中央儲存機制。資料存放區是安裝在 SQL Server™ (2000 或 2005 版) 或 Microsoft SQL Server Desktop Engine (MSDE) 上，存有記錄、應用程式、組態、授權資料、報告資訊和記錄資訊等。
虛擬化應用程式是提供給使用者的機器，並在用戶端內轉譯。SoftGrid 提供兩種類型 — Microsoft SoftGrid Application Virtualization for Desktops 和 Microsoft SoftGrid Application Virtualization for Terminal Services。每個方法都各有優點，但也有特定的效能取捨，這我們在＜設定用戶端＞一節會說明。
SoftGrid 環境中最重要的元件之一是 SoftGrid Virtual Application Server (SVAS)，是用來處理使用者的應用程式要求，並能視需要將應用程式資料串流處理給使用者。
SVAS 是執行成 Windows® 服務，稱為 Microsoft System Center Virtual Application Server，並且具有非常基本的硬體需求。在預設情況下，所有應用程式資料本身 (我們稍後會討論到) 是位於 \Program Files\Softricity\SoftGrid Server\content 目錄內。
典型的 SoftGrid 體驗是從使用者登入工作站的那一刻開始。SoftGrid 用戶端會擷取使用者的安全性權杖和網域群組成員資格，並將這項資訊透過安全通道傳遞給 SVAS。SVAS 會將使用者存取指派給應用程式 (若使用者的安全識別元 [SID] 存在於應用程式的群組成員資格目錄)，並且會在使用者的桌面上放置每個應用程式的捷徑 (或是系統管理員定義的任何其他位置，例如開始功能表，快速啟動工具列等)。
實際交付應用程式一般是當使用者按下捷徑圖示時開始進行，與開放模式軟體說明 (.osd) 檔案相關聯。這是一個以 XML 為主的檔案，包含應用程式封裝的相關資訊。用戶端會從 .osd 檔案擷取虛擬應用程式伺服器名稱，並啟始連線。此時，SVAS 會驗證用戶端，並與資料存放區聯繫，以判斷是否符合授權。使用者一經驗證，SVAS 便會將應用程式資料以資料區塊串流處理到用戶端 — 資料區塊預設每個是 32KB，但可以在編序時設定。
請注意，整個應用程式並沒有串流處理到用戶端。SoftGrid 反而是指串流處理用戶端上立即啟動應用程式所需的應用程式部份。這通常是佔總程式碼的百分之 20 到 40，雖然這當然會因應用程式而異。例如，跟封裝的總大小 800MB 比起來，Microsoft Word 2003 只需要串流處理 15MB 的資料給用戶端就可以啟動。如果使用者存取的應用程式部分尚未存在於用戶端快取內，必要的程式碼接下來會串流處理到用戶端。為了避開「週一午前效應」(過多同時的要求阻塞網路)，組織可以選擇在使用者桌面上預先快取常見的應用程式。

Active Directory
SoftGrid 依賴 Active Directory (或 Windows NT® 4.0) 網域使用者和群組以佈建應用程式給授權使用者。在多網域的環境內，可使用適當的群組成員資格 (SoftGrid 支援本機、全域和萬用群組成員資格) 和與安裝的 SVAS 的網域之間的信任關係來佈建使用者。
安裝 SVAS 時，會提示您輸入不同的服務帳戶和群組，不但有助於與 Active Directory 整合，並且之後可用於系統管理目的。因此，在安裝之前有三個您應該建立的群組和帳戶： SoftGrid 瀏覽器帳戶、SoftGrid 系統管理員群組，以及 SoftGrid 使用者群組。
SoftGrid 瀏覽器帳戶負責瀏覽 Active Directory，因此對多網域環境中的所有 Active Directory 網域須具備唯讀權限。SoftGrid 系統管理員群組是用來授與 SoftGrid 管理主控台和 SoftGrid Management Web Service 的系統管理存取權。而 SoftGrid 使用者群組則是用來指派預設的提供者原則，這項原則是用來授權網域內的所有使用者存取透過管理主控台發佈的應用程式。

虛擬環境
SystemGuard 是 SoftGrid 用戶端的核心，它是執行於本機桌面上。SystemGuard 負責提供完全可運作的虛擬環境讓應用程式可以單獨執行。包含在這個筒倉式環境內的有虛擬化 OS 元件 — 登錄、檔案、字型、INI、COM、嵌入式服務，以及環境變數 — 全都是應用程式適當執行的必要元件 (見 [圖 3])。
[圖 3] 供應用程式單獨執行的虛擬化環境
[圖 3] 供應用程式單獨執行的虛擬化環境
SystemGuard 會為它執行的每個應用程式建立虛擬化登錄機碼。本機 OS 上執行的其他應用程式並不能存取這些機碼，像是 regedit 之類的登錄編輯工具也看不到這些機碼。登錄的讀取和寫入必要時會重新導向至虛擬機碼。不過要注意的是，虛擬化應用程式可傳遞給本機登錄來取得未包含在虛擬化登錄機碼中的資訊。
同樣地，SystemGuard 也會建立虛擬化檔案系統，並將絕大部分的應用程式讀取和寫入重新導向至此檔案系統。此虛擬化檔案系統是隔離的，並且如果您想要在單一用戶端執行相同應用程式的多個版本，它還可以提供您所需的環境。
不過要特別註明的是，雖然應用程式與本機 OS 相隔離，但使用者仍然可以存取所有本機服務，例如列印、剪貼和網路磁碟機等。

封裝應用程式
您現在可能會好奇要如何建立完全可運作的獨立環境供虛擬化應用程式執行呢。對於這項工作，您是使用 SoftGrid Sequencer。這個精靈式的工具可讓您將應用程式封裝在虛擬化環境中，之後提供給用戶端，並在上面執行。
編序程序包含三個步驟：安裝、設定和測試，以及執行。在第一個步驟「安裝」當中，SoftGrid Sequencer 使用主動監看處理序來監視應用程式的安裝，並評估應用程式依存性。一旦完成，便會使用設定和測試階段對預設組態進行任何必要的變更，以確保達成所要的首次執行體驗。最後，在執行階段，SoftGrid Sequencer 會編譯和排序啟動應用程式所需的程式碼區塊。Feature Block 1 (FB1) 是啟動應用程式所需的必要程式碼，它允許使用者在不需要下載整個封裝檔的情況下執行應用程式。
應用程式一經編序，便會建立四個檔案：啟用虛擬化的應用程式檔 (.sft)、開放模式軟體說明檔 (.osd)、圖示檔 (.ico)，以及專案檔 (.sprj)。這些檔案接著會被複製到 SVAS 的內容目錄。或者，系統管理員也可以選擇使用 HTTP 伺服器發佈 .ico 和 .osd 檔案給用戶端。
雖然 SoftGrid 一般是佈建應用程式讓它們在隔離的環境內彼此獨立執行，但 SystemGuard 還是容許一些應用程式互動。如果它們有賴於彼此互動則將應用程式編序在一起，您應該仔細檢查應用程式彼此間的依存性。這個程序一般稱為調和 (Suiting)。請注意，並非所有需要彼此互動的應用程式都可以編序在一起。調和的程序非常錯綜複雜，只應該在審慎檢查依存性之後進行，因為有時候編序兩個或以上的應用程式便無法達到虛擬化的目的。

簡化系統管理
SoftGrid 管理主控台提供單一工具執行所有系統管理工作。管理主控台預設是安裝在 SVAS 上，並且可以安裝在任何其他伺服器或工作站上。它是一種 MMC 3.0 嵌入式管理單元，並且使用 SoftGrid Management Web Service 連線至 SoftGrid DataStore (見 [圖 4])，讓經過授權的系統管理員完整存取存放在資料庫中的資料，以達管理目的。管理主控台與 SoftGrid Management Web Service 之間的連線是使用 Microsoft .NET Framework 遠端功能，透過這項功能可將管理主控台和 Web 服務安裝在相同或不同的伺服器上。[圖 2] 說明各個不同的部分如何彼此配合，並提供對整個 SoftGrid 實作的存取。請注意，規模較大的組織應該執行一個以上的 SoftGrid Management Web Service 執行個體。
[圖 4] SoftGrid Management Web Service 提供與資料存放區的連線
[圖 4] SoftGrid Management Web Service 提供與資料存放區的連線
SoftGrid Management Web Service 是執行於裝有 IIS 5.0 或之後版本的 Windows 2000 或更新版本上。進行資料存放區連線需要有 .NET Framework 2.0 或之後版本，以及 Microsoft Data Access Components (MDAC) 2.7 或之後版本。
管理主控台提供單一系統管理工具，讓您從中發佈、終止應用程式等。工作是分成九大類別或容器，如 [圖 5] 中的功能表所示。
[圖 5] 從單一管理主控台管理 SoftGrid
[圖 5] 從單一管理主控台管理 SoftGrid
這裡簡單介紹每個容器中所含的管理工作的類型。「應用程式 (Applications)」容器是系統管理員進行各項作業的地方，例如匯入 .sprj 檔案以發佈較新版的應用程式，指定 .osd 位置，移除應用程式等等。此容器預設會包含一個已發佈的封裝，讓您用來測試用戶端與應用程式伺服器的連線能力。
編序應用程式時，會建立一個檔案類型關聯。一旦將封裝匯入後，就可以在管理主控台內使用該檔案類型關聯。「檔案類型關聯 (File Type Associations)」容器提供系統管理員一個地方修改所有檔案類型關聯。
「封裝 (Packages)」容器則控制著封裝的版本以進行主動升級，這些應用程式升級不需要使用者中斷連線或關閉伺服器就可以完成。系統管理員也可以使用此容器從管理主控台刪除封裝。請注意，從「封裝 (Packages)」容器刪除封裝將會從管理主控台和資料存放區移除 .sft 檔案，但並不會從應用程式伺服器上的內容目錄刪除此檔案。
如稍早所述，當使用者啟動應用程式時，SoftGrid Client 會檢查授權可用性，並只會在資料存放區中有提供授權時才啟動應用程式。「應用程式授權 (Application Licenses)」容器是系統管理員使授權與應用程式產生關聯的地方 — 無限授權、並行授權和具名的授權皆有支援。
「伺服器群組 (Server Groups)」容器包含了應用程式虛擬化伺服器和記錄資訊的邏輯群組。系統管理員可加入新伺服器群組，或修改現有群組的屬性 (例如用於通訊的連接埠，或配置的記憶體及處理序)。
在「提供者原則 (Provider Policies)」容器中，系統管理員可以建立一組稱為原則的規則。自訂提供者原則是用來授權使用者在不同的條件集合下，存取許多的應用程式。您可以使用「帳戶授權單位 (Account Authorities)」容器來指定當 SoftGrid 需要存取權以讀取網域的目錄資訊時，要使用的網域和認證。「SoftGrid 系統管理員 (SoftGrid Administrators)」容器包含負責管理 SoftGrid 環境的使用者群組。在此容器中，系統管理員可以新增或移除群組來控制存取權限。
最後，「報告 (Reports)」容器，正如其名，允許系統管理員產生報告來檢查 SoftGrid 環境的整體健康狀況。提供下列的報告：應用程式使用狀況 (Application Utilization)、軟體稽核 (Software Audit)、系統使用狀況 (System Utilization)、使用者/群組活動 (User/Group Activity)，以及系統錯誤 (System Error)。

設定用戶端
SoftGrid Client 是安裝在使用者用來存取虛擬化應用程式之電腦的作業系統上。如前文所述，支援兩種用戶端類型：Microsoft SoftGrid for Desktops 或 Microsoft SoftGrid for Terminal Services。每個方法都各有優點，但在網路延遲、伺服器陣列整併和方便管理方面也有特定的效能取捨。
在桌面實作中，可從本機使用應用程式，並且多少會依賴網路可用性和輸送量。這種方法建議用於像是分公司的 IT 基礎結構有限的組織。對於已經有執行終端機伺服器的組織來說，終端機服務是個不錯的選項。此種案例能有效利用軟硬體，進而大大減少必要的伺服器數目。而且，想當然爾，它也提供一個真正免費的基座環境。大型組織一般會有桌面和終端機伺服器基礎結構的組合。當您設定 SoftGrid 部署時，針對兩種方法安裝和設定各種元件的方式很類似。
用戶端可以使用任何標準方法來部署，例如手動安裝或使用像是 Systems Management Server 2003 的工具進行自動部署。[圖 6] 列出安裝這些用戶端所需的最小軟硬體需求。
Figure 6 SoftGrid 用戶端的系統需求如下： (Close Figure 6)

用戶端 | 處理器 | 記憶體 | 磁碟空間 | 作業系統
Microsoft SoftGrid for Terminal Services | PIII 850MHz | 1GB RAM (最小 256MB，實際視使用者和應用程式的數量而定 | 12MB 用於安裝，而 4096MB 用於快取 | • Windows 2000 Server 或啟用終端機服務的 Advanced Server • 啟用終端機服務的 Windows Server 2003
Microsoft SoftGrid for Desktops | PIII 600MHz | 128MB | 12MB 用於安裝，而 2048MB 用於快取 | • Windows 2000 Professional 或 Windows XP • Windows 2000 Server 或 Windows Server 2003
雖然安裝用戶端很簡單明瞭，安裝時還是有一些您必須提供的屬性 — 例如安裝位置、快取大小、用於虛擬磁碟機的磁碟機代號，應用程式資料檔案的位置等等。一旦安裝好用戶端，便可以使用用戶端管理主控台來指定或變更其他設定。
若要啟動用戶端管理主控台，請至控制台，並從系統管理工具啟動 SoftGrid Client Management。您可以選擇是要連線到本機機器或是遠端機器。
[圖 7] 顯示用戶端管理主控台包含根容器與三個子系容器。localhost 根索引標籤上的 SoftGrid 是您設定大多數功能性參數的地方，包括記錄目錄、應用程式資料目錄、用戶端執行和顯示設定、錯誤和資訊性訊息快顯頻率、最大快取大小、虛擬化磁碟機、當從 SoftGrid 伺服器中斷連線的網路與連線選項，以及權限等等。
[圖 7] 用戶端管理主控台
[圖 7] 用戶端管理主控台
您可以在「應用程式 (Applications)」容器中檢視和變更應用程式。「應用程式 (Applications)」容器提供關於本機應用程式的狀態資訊，例如應用程式是否正在執行中，應用程式是否鎖定在快取中，以及應用程式串流處理至本機快取的百分比 (.sft 檔案) 等。
「檔案類型關聯 (File Type Associations)」容器可讓您檢視、變更和移除檔案類型關聯。如需詳細資料，請參閱上一節討論的「檔案類型關聯」內容。
「桌面組態 (Desktop Configuration)」容器可讓您指定、變更和手動重新整理在安裝期間指定的應用程式伺服器設定。您也可以在這裡選擇是否應該在使用者登入時進行用戶端重新整理 (這是預設選項)，以及自動重新整理間隔的長度。

結論
使用 Microosft SoftGrid 將應用程式虛擬化，不失為改進系統穩定性、簡化管理工作的好方法。雖然它需要許多部份一起搭配運作，但整個架構實際上可毫無障礙地融合至 IT 基礎結構中。
Microsoft SoftGrid for Desktops 已作為 Microsoft Desktop Optimization Pack 的一部份提供給軟體保證客戶使用。如需詳細資訊，請參閱 windowsvista.com/optimizeddesktop。Microsoft SoftGrid for Terminal Services 已作為獨立用戶端存取授權提供給 Microosft 大量授權合約的企業客戶使用。若要下載試用版本，請登入您的大量授權帳戶，網址為 https://licensing.microsoft.com，並在 [產品下載] 下選擇 [Desktop Optimization Pack for SA]。

Ahmer Sabri 在 Microsoft 的金融服務小組 (Financial Services Group)擔任技術專家一職。您可以透過電子郵件與 Ahmer 連絡： ahmers@microsoft.com
Kedar Shah 在 Microosft 的金融服務小組 (Financial Services Group) 擔任技術專家一職。您可以透過電子郵件與 Kedar 連絡： kedars@microsoft.com


 編輯的話: 動態和最佳化
編輯的話
動態和最佳化
Joshua Trupin

您可能會在接下來的幾個月 聽到 Microsoft 推動的兩項 IT 策略：動態系統與基礎結構最佳化。這兩項行動將有助您更成功地進行現行的 IT 相關工作，並同時讓您準備好面臨未來的挑戰。
動態系統行動 (Dynamic Systems Initiative) 為工具和應用程式定義了一套架構，結合四大技術革新領域來幫助引導當今的 IT 策略。為了達成動態環境，您的基礎結構和軟體應該統一化並虛擬化、以程序和模型為導向、具備服務功能，並以使用者為重。
然而，創造動態 IT 環境不僅限於 Microsoft 的產品。貴公司可將更多的投資放在創造 IT 商務優勢上，而不單純是試圖管理急速發展的複雜度上。憑藉著採用基礎結構最佳化模型探勘企業在未來兩年所朝的方向，您不但能充分運用目前的系統，同時能規劃更動態的未來。
更廣泛地說，公司的 IT 生命週期發生在下列四階段之一。基本：「我們救火消防」。標準化：「我們取得掌控」。合理化： 「我們推動企業」。動態：「我們是策略性資產」。這些階段在 microsoft.com/io 均有一一詳細探討。您可以使用該處的指引來分析您的基礎結構，並規劃它的未來。藉由運用動態系統概念，您能將 IT 組織轉變成重要的企業資產。
一旦貴公司達到動態階段，您的 IT 系統將可自行管理，成為策略性的企業資產。阿彌陀佛，真是 IT 的極樂世界。在動態 IT 的遠征過程中循著各階段漸進的最佳辦法，是透過 IT 管理解決方案的 System Center 系列來達成。System Center 除了提供設定工具、開發應用程式、作業管理員之外，還有更多 — 它涵蓋了完整的 IT 規劃、部署和維護的生命週期。
當然啦，《TechNet Magazine》可助您一臂之力，本期的焦點放在 System Center 的解決方案組合。開始先介紹兩個主要元件的概觀： System Center Configuration Manager 2007 和 System Center Operations Manager 2007，我們也會探討部署和作業，甚至還會討論如何成功地管理分公司。
您的基礎結構符合標準嗎？ 快來 blogs.technet.com/tnmag 造訪我們的部落格，告訴我們您覺得動態 IT 會帶引您邁向什麼樣的未來。—Joshua Trupin

Joshua Trupin


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

管理開機設定資料
VistaBootPRO
www.vistabootpro.org
我所認識的每一位 IT 專家都至少擁有一或兩部多重開機電腦。今時今日，這些系統通常包含 Windows Vista® 或 Windows Server® 2008 (前產品代號 "Longhorn") 的執行個體。若您是使用上述其中一種作業系統執行多重開機系統，不妨參考一下 PROnetworks 推出的 VistaBootPRO。
您可能已經知道，從 Windows Vista 開始以至未來的版本，Microsoft 已變更了管理開機設定的方式，現在開機設定資料 (BCD) 儲存區已經取代了原先的可讀取文字檔 (如 Boot.ini)，使得管理開機環境詳細資料更加安全，也不再受限於韌體版本。您可以使用三種基本方法來查看和修改 BCD。第一種方法是使用 MSConfig，它提供基本的存取方法來讀取、修改和重新排序 BCD 中的項目。第二種方法是系統管理員應該耳熟能詳的命令列工具 BCDEdit，可用來建立新的 BCD 存放區、修改現有存放區，還有匯入或匯出存放區以便保存和重複使用。第三種方法是使用 Windows® Management Instrumentation (WMI) API 以撰寫程式的方式來管理 BCD。
這三種方法雖然都能達成目的，但都未特別考慮到使用方便性。有鑑於此，VistaBootPRO 為此提供了更簡便的 GUI，方便您在執行 Windows Vista 的電腦上修改開機設定，您只要按一兩下滑鼠按鍵，就能輕鬆地重新命名 OS 項目、新增項目、變更開機磁碟機，以及設定逾時選項。不僅如此，VistaBootPRO 還能夠用來選取 OS 項目並設定啟動參數，例如限制 OS 可用的 CPU、針對 Windows Vista 或 Windows Server 2008 項目啟用或停用資料執行防止 (DEP)、減少 OS 可用的實體記憶體，以及在偵錯模式下執行開機程序。
使用這個工具變更 BCD 之前，您一定要先備份目前的存放區，以防出錯。如果沒有備份，應用程式會發出警告並提供簡單的方法匯出目前設定。當然啦，VistaBootPRO 也可讓您還原已備份的設定。
總之，VistaBootPRO 是專為管理 BCD 而推出的使用簡單且功能齊備的應用程式，而且最棒的是還完全免費。

售價：免費。
vistabootpro 圖片

監控服務與裝置
NetGong
netgong.tsarfin.com
哎呀，監控工具，對我來說永遠都不嫌多。如果您想尋找新的網路服務與裝置監視器，或只想試用看看監控公用程式，像各位推薦 NetGong。
這個應用程式會在系統匣中執行，並隨著 Windows 啟動時一併啟動。只要在圖示上按一下滑鼠右鍵，就會顯示快速啟動或停止監控的選項。按兩下圖示則會開啟主要的設定 UI，您可在此設定、檢閱和查看受監控主機的相關事件。
設定主機監視器很容易。只要輸入主機、要監控的 TCP 連接埠、進行測試的間隔，以及希望收到的警示類型即可。您也可以加入有意義的說明資訊，以及修改預設的網際網路控制訊息通訊協定 (ICMP) 設定，例如逾時、封包大小和重試次數。在預設情況下，NetGong 會命令受監控的主機回應 ICMP 要求，但是您也可以針對網路上不接受 ICMP 要求的主機，使用無訊息主機的核取方塊來覆寫這個選項。
此應用程式提供四種警示類別：音效、電子郵件、訊息和檔案。針對音效選項，您可以指定要使用的 WAV 檔案。針對訊息選項，您可以定義文字訊息，強制讓文字訊息顯示在最上層視窗，並選擇要自動或手動關閉視窗。電子郵件警示可讓您指定 SMTP 伺服器和要傳送的詳細訊息。而檔案警示選項可讓您執行可執行檔 (或批次檔)，並提供可設定的參數、視窗模式及啟動目錄。針對每一種警示類型，都可以設定排程來定義傳送第一個警示的時機、傳送警示的最大數目，以及警示之間的失敗間隔 (失敗次數)。您也可以選擇在服務復原時收到通知。
NetGong 也會保留結果的記錄檔。您可以選擇將事件記錄到事件記錄檔、文字檔或動態建立的 HTML 網頁。應用程式可讓您在網頁上檢視監控結果，而這些網頁是透過此應用程式在使用者指定連接埠上接聽的內建網頁伺服器來提供。您可以傳送包含重新整理間隔的查詢字串參數，好讓網頁重新整理成最新的監控事件詳細資料。

售價：每部電腦 $79.95 美元 (企業授權)，每部電腦 $59.95 美元(學術授權)，每部電腦 $39.95 美元(家用授權)。
steen.toolbox.netgong 圖片

書評
Windows PowerShell:TFM
www.sapienpress.com
相信您一定已經聽說過 Windows PowerShell™。每個人似乎都在談論 Windows PowerShell™。《TechNet Magazine》甚至為它開闢專欄 (執筆人恰好是本書作者之一)。但是您真的摸透它了嗎？
只要您能掌握 Windows PowerShell 的使用方法，它會是一個相當有效的自動化及產能工具。無論您是剛開始學習指令碼，或已經摸熟了 VBScript，只要有心探索這套全新的系統管理導向指令碼語言與命令列工具集，Don Jones 與 Jeffery Hick 合著的《Windows PowerShell:TFM》都可當做很棒的起點。這本深入淺出的著作是專為系統管理員所編寫，其內容對大部分的系統管理員來說都很實用。
書中的第一節介紹 Windows PowerShell 環境，講述所有 cmdlets 共通的參數，以及指令碼語言的語法和語意概要。另外也提到重新導向、執行管線、函式、變數以及執行多重命令介面等方面的概念。由於 Windows PowerShell 是以 Microsoft® .NET Framework 為基礎，因此繼承了 Managed 程式碼的優點 (請注意，Windows PowerShell 需要 .NET Framework 2.0 或更新版本)。有鑑於此，書中也提供一些 Framework 的精華剖析，涵蓋了指令碼執行的安全性內容以及反映、組件與類別等概念。
解說完如何將 Windows PowerShell 融合至 Windows Management Instrumentation (WMI) 之後，作者繼續詳述 Windows PowerShell 指令碼語言結構，並舉例說明來協助您了解物件的作用以及與物件相關的屬性與方法。您也會看到如何使用各種類型的運算子，從基本的算術運算子到位元比對運算子，還有強大的規則運算式來針對 IP 位址與網域控制站名稱等項目剖析字串。這些基礎知識對於任何想要精通 Windows PowerShell 的讀者都特別實用。
有關管理 Windows 和資料庫指令碼的章節說明 PowerShell 提供的一些重點功能。您會看到如何使用事件記錄檔、處理序、登錄、檔案系統和目錄服務，以及如何連接與執行資料庫上的查詢。
其他章節則討論輸出和格式化資料、促進指令碼模組化、錯誤處理與偵錯等主題。作者甚至還提供一套建議的 Windows PowerShell 指令碼最佳作法，這套最佳作法中包括命名慣例、為程式碼加上註解，並使用縮排來提高程式碼的可讀性。
您一定會想把這本書放在手邊，以便隨時查看附錄中的資料，當中的一項參考資料包括了 Windows PowerShell 全部 133 個 cmdlet，另一項參考資料則列出最常使用的型別 (以及與這些型別相關的方法和屬性)。除了提供如何使用特定 cmdlet 的快速查詢途徑，這些參考資料還能讓您立即預覽 Windows PowerShell 提供的豐富功能。

售價：定價 $49.99 美元。

測試您的纜線
SMARTest Compact Network Cable Tester
www.hobbes-usa.com
纜線啊，纜線，無所不在！只要是 IT 專業人員，大多和 CAT5 纜線脫不了干係。數不盡的 CAT5 纜線，綿延不絕，纏繞不休。如果您負責管理這些纜線，那麼一個好用又方便攜帶的纜線測試器就不只是方便，更是不可或缺的工具。您可以參考一下 Hobbes 出品的 SMARTest Compact Network Cable Tester。
SMARTest 裝置是筆型的纜線測試器。它能與 CAT 3、4、5、5e 及 6 網路線相容，還可用來偵測常見的佈線問題，特別是用來檢測電纜絞線內的開路、短路、顛倒、錯線、分離線對及接地問題。
這個裝置只需要四個小型手錶式電池就能運作，沒接上電線也能測試，也不需要將 SMARTest 接上使用中的網路連線。若要測試纜線，只需要把絞線的一端插入主機 (Main Unit)，另一端插入可分離的輔機 (Remote Unit) 即可。SMARTest 機的介面同時提供 RJ45 通訊端口和插頭 (公母插頭) 接頭，可用來測試任何種類的纜線配置。您甚至可以使用 SMARTest 裝置來檢查配線或插線面板和嵌壁式插座。
這個裝置還有一項很棒的功能，就是內建的音源產生功能，可讓您透過正在測試的纜線傳送音訊。接著您可以使用相容的訊號探測器來擷取訊號，例如同樣由 Hobbes 推出的 Cable Tracer Probe 就是這類產品。
視零售商而定，具備音源產生功能的 SMARTest 要價約 $80-$90 美元。另外也有測試同軸纜線所需的 F 接頭轉接器可供選購。

售價：定價 $99.99 美元。
steen.toolbox.smartest 圖片

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


 SQL 問題與解答: 尋找鎖定、大型查詢、I/O 統計資料以及其他
SQL 問題與解答
尋找鎖定、大型查詢、I/O 統計資料以及其他
編輯：Nancy Michell
下載本文程式碼: SQLQandA2007_08.exe (151KB)

問：我需要查看所有資料庫中含有鎖定的物件名稱。要怎麼做呢？

答：在 SQL Server™ 2000 中，您可以查詢 Master 中的 syslocks 系統資料表，或執行 sp_lock 取得目前的鎖定資訊，方法如下：
SELECT * FROM master..syslocks
EXEC sp_lock
不過，讓我暫且假設您是要轉譯從 sp_lock 預存程序的 OUTPUT 中所得的 ObjID 之實際物件的 NAMES (或從 master..syslocks 的 id 資料列)。
在 SQL Server 2005 SP1 及之前的版本，OBJECT_NAME 函數只讓您傳遞一個參數：object_id。因此，為了適當取得物件名稱，您必須是在 CURRENT 資料庫中，才能執行 OBJECT_NAME。這讓監視目前的鎖定有所困難，因為您必須另外下工夫撰寫自訂程式碼，迴圈處理每個資料庫來取得正確的 OBJECT_NAME。
USE DBNAME
SELECT OBJECT_NAME(object_id)
為了改善這種狀況，SQL Server 2005 SP2 新增了第二個參數 database_id，這樣一來，無論您連線到哪個 CURRENT 資料庫，都可以運用這個新參數來查詢任何物件名稱。
OBJECT_NAME ( object_id [, database_id ] )
您現在可以查詢 sys.dm_tran_locks，並擷取每個資料庫的物件名稱，像這樣：
SELECT
DB_NAME(resource_database_id),
OBJECT_NAME(resource_associated_entity_id, resource_database_id)
FROM sys.dm_tran_locks
WHERE resource_type='OBJECT'
不過要注意的是，這只適用於 SQL Server 2005 SP2 及之後的版本。如果您在 SQL Server 2005 以前的版本中執行這段程式碼，會得到此錯誤：
Msg 174, Level 15, State 1, Line 1
The object_name function requires 1 argument(s).
[圖 1] 中所示的另外一個範例，會聯結 sys.dm_exec_sessions 來取得鎖定中包含的服務處理識別碼 (SPIDS) 的相關資訊。如需詳細資訊，請參閱《SQL Server 線上叢書》，網址是 technet.microsoft.com/library/ms130214(sql.90).aspx。
Figure 1 尋找伺服器處理識別碼 (Close Figure 1)
SELECT
DB_NAME(resource_database_id) as DBName,
OBJECT_NAME(resource_associated_entity_id, resource_database_id) AS ObjectName,
request_mode,
request_type,
request_session_id,
es.host_name,
es.login_name,
es.login_time
FROM
sys.dm_tran_locks tl
INNER JOIN sys.dm_exec_sessions es
ON tl.request_session_id=es.session_id
WHERE resource_type='OBJECT'

問：我有個大型的動態 SQL 查詢，有時候好像會超過 NVARCHAR(max) 的長度，有什麼因應措施可以繼續讓我執行一個大字串？

答：如果您超過 NVARCHAR(max) 的長度，表示您的查詢有 2GB 大！您可能也需要轉換所有串聯到 NVARCHAR(max) 的字串。不過有個比較方便的因應辦法，這套辦法在 SQL Server 2005 以前的 SQL Server 版本也有相同的成效，那就是將大量較小的字串串聯在一起。請看以下範例：
DECLARE @q1 NVARCHAR(4000), @q2 NVARCHAR(4000), @q3 NVARCHAR(4000)
SET @q1 = 'SELECT...'
SET @q2 = 'FROM...'
SET @q3 = 'WHERE...'
EXEC (@q1 + @q2 + @q3)
秘訣：使用 OUTPUT 子句
您現在甚至不需要使用觸發程序，便可使用資料操作語言 (DML) 陳述式來稽核您所作的變更。SQL Server 2005 引進了一個 OUTPUT 子句，它是 DML 陳述式的一部分，可幫助您追蹤在任何 DML 作業期間所作的變更。OUTPUT 子句可將結果集儲存在資料表或資料表變數中。
這項功能與觸發程序在 INSERTED 和 DELETED 資料表上所提供的作用類似，它通常用來存取在 DML 作業期間經過修改的資料行。為了了解它的運作方式，讓我們將地址資料表的位址變更為原始值的相反值，如下圖所示。您也可以使用這段程式碼中所示的邏輯來追蹤您對資料所作的任何變更，並將它存到資料表中。
該項查詢的輸出看起來像這樣：
Original Value:'1234 One Microsoft Way, Redmond, Wa.' has been changed to: '.aW,dnomdeR
,yaW tfosorciM enO 4321'

變更地址
--Create the address table
Create Table Address (ProductID Int, SupplierID Int, Address Varchar(255))

--Insert data
Insert into Address Values (234,567,'1234 One Microsoft Way, Redmond, Wa.')

--Declare a table variable
Declare @Recordchanges table (change Varchar(255))

--Update the address
Update Supplier.Address
Set Address=reverse(address)

--Record the updates into the table variable
OUTPUT 'Original Value:' + DELETED.Address+' has been changed to: '+ INSERTED.Address+''
into @RecordChanges

--Query the changes from table variable
Select * from @RecordChanges

問：我在 Windows Server® 2003 上有個關鍵任務型的 SQL Server 2005 叢集。Microsoft® 分散式交易協調器 (MS DTC) 在相同的群組上已透過叢集仲裁叢集化，但使用的是固定磁碟資源 (MS DTC 與仲裁叢集群組共用相同的網路名稱和 IP 位址)。我想讓此項組態與 Microsoft 最佳作法相配合。因此，我需要有關將 MS DTC 移至固定叢集群組方面的建議。使用叢集系統管理工具移除 MS DTC 服務，然後在固定群組上重建，是否就可以了？

答：既然您已經有用於 MS DTC 的固定磁碟資源，應該可以直接移除該資源，並在新群組中重建它。您也必須在新群組中建立新網路名稱和虛擬 IP 位址。
或者，您可以選擇在叢集群組中建立新網路名稱和 IP 位址，然後將相依性變更至新資源。然後您可以將 MS DTC 拖曳到新群組，而它會一併接受專用磁碟和新資源。

問：我需要能夠在資料庫中檢視實體資料庫檔案上的 I/O 統計資料。應該使用什麼函數？

答：系統函數 fn_virtualfilestats (SQL Server 2000 和 SQL Server 2005 中皆可用)，或 sys.dm_io_virtual_file_stats (僅在 SQL Server 2005 中可用) 可得到您要的結果。該函數會傳回自上次啟動 SQL Server 執行個體以來收集到的統計資訊。範例結果顯示在 [圖 2] 中。
Figure 2 檢視資料庫上的 I/O 統計資料 (Close Figure 2)

DbId | FileId | TimeStamp | NumberReads | NumberWrites | BytesRead | BytesWritten | IoStallMS
20 | 1 | 250765718 | 381 | 0 | 3350528 | 0 | 951
20 | 2 | 250765718 | 12 | 8 | 409600 | 491520 | 0
20 | 3 | 250765718 | 5 | 0 | 40960 | 0 | 16
了解 I/O 對基礎資料檔案的影響有助於您針對一些事項作更妥善的規劃，諸如將檔案和檔案群組實際放置到資料磁碟區，偵測可能的 I/O 瓶頸，執行檔案層級資料庫維護，以及其他此類工作等。此函數在分析大型資料庫 (裡面可能有多個檔案和檔案群組) 的 I/O 衝擊時特別有用。
顯示 SQL Server 2000 的檔案 I/O 資訊的查詢看起來像這樣：
SELECT *
FROM ::fn_virtualfilestats(default,default)
GO
若要檢視特定 databaseID，可如下傳遞資料庫的識別碼：
SELECT *
FROM ::fn_virtualfilestats(7,default)
GO
以下是 SQL Server 2005 程式碼，它會顯示伺服器上所有資料庫的檔案統計資料：
SELECT *
FROM ::fn_virtualfilestats(NULL,NULL)
GO
下面的查詢只會傳回目前資料庫的檔案統計資料：
SELECT *
FROM ::fn_virtualfilestats(NULL,NULL)
WHERE DBID=db_id()
GO
對於 SQL Server 2005，還有一個新的系統函數，稱為 sys.dm_io_virtual_file_stats，它最後是要取代舊的函數 fn_virtualfilestats：
sys.dm_io_virtual_file_stats(
{ database_id | NULL },
{ file_id | NULL }
)
下面介紹其使用方式：
SELECT * FROM sys.dm_io_virtual_file_stats(NULL,NULL)
如果您想要產生更容易閱讀的報告，來顯示輸出的實際資料庫名稱和檔案名稱，可以使用在 SQL Server 2000 或 SQL Server 2005 附帶下載中的程式碼。此段程式碼可從 TechNet Magazine網站取得。

問：我需要一個簡單的辦法來查看刪除交易是否已引發觸發程序。您知不知道要如何取得這項資訊？

答：當使用處理刪除、插入和更新動作的觸發程序時，一般人通常使用許多不同的方法來判斷刪除交易是否已引發觸發程式。一個常用的方法是比較插入和刪除虛擬資料表的計數來看看它們是否相符。不過，還有一個更簡單的方法，您可以改用 Columns_Updated 函數。
這是因為當刪除交易引發觸發程序時，Columns_Updated 始終會傳回 varbinary 值 0x。下列的檢查作業會確認刪除引發了觸發程序：
IF Columns_Updated() = 0x
秘訣：初始化資料和記錄檔案
您知道資料和記錄檔案的初始化會覆寫之前刪除的檔案留在磁碟上的任何現有資料嗎？當建立資料庫時，會先以零填滿檔案來初始化資料和記錄檔案，將檔案 (記錄檔案或資料檔案) 加入現有資料庫，增加現有檔案的大小 (包括自動成長作業)，或者還原資料庫或檔案群組。檔案初始化會使這些作業花更久的時間完成。然而，當資料第一次寫入檔案時，作業系統並不用以零填滿檔案。
在 SQL Server 2005 中，資料檔案可以瞬間初始化。這項功能允許快速執行稍早提到的檔案作業。瞬間檔案初始化不需要以零填滿使用的空間即可將它歸還。當新資料寫入檔案時，會覆寫磁碟內容。記錄檔案無法瞬間初始化，瞬間檔案初始化只在 Windows XP Professional 和 Windows Server 2003 或之後的版本上有提供。
因為刪除的磁碟內容只有在新資料寫入檔案時才會覆寫，所以刪除的內容可能會遭未授權主體存取。雖然資料庫檔案是附加到 SQL Server 的執行個體，但檔案上的判別存取控制清單 (DACL) 可減緩這類資訊暴露的威脅。此 DACL 只允許 SQL Server 服務帳戶和本機系統管理員存取檔案。不過，當檔案卸離後，可能會被不具 SE_MANAGE_VOLUME_NAME 的使用者或服務存取。當備份資料庫時，也具有類似的威脅。如果備份檔案沒有受到適當 DACL 的保護，未授權使用者或服務便能夠使用刪除的內容。
如果您擔心可能會暴露刪除的內容，應該隨時確定任何已卸離的資料檔案和備份檔案具有限制嚴格的 DACL。另外，也該停用 SQL Server 執行個體的瞬間檔案初始化，方法是從 SQL Server 服務帳戶叫用SE_MANAGE_VOLUME_NAME。

Thanks to the following Microsoft IT pros for their technical expertise: Christian Bolton, Dan Carollo, Robert Davis, Jorge Guzman, Saleem Hakani, Ward Pond, Kalyan Yella, and Paolo Zavatarelli.


 公用程式焦點: BGInfo
公用程式焦點
BGInfo
Lance Whitney
下載本文程式碼: BgInfo v4.10 (274KB)

您試著 解決某使用者的電腦問題，並且需要關於該電腦的資訊 — 名稱、IP 位址、閘道、記憶體、可用磁碟空間等等。收集所有這些資料往往迫使您四處搜索多個來源，或是向使用者發問一連串的問題。如果您需要知道的電腦資訊都在單一個位置不是很方便嗎？ 這有什麼問題，要感謝 Sysinternals 推出的免費工具，叫做 BGInfo。
由 Bryce Cogswell 撰寫而成的 BGInfo (Background Information (背景資訊) 的縮寫) 會查詢 Windows® 工作站或伺服器以取得重要資料 — 範圍從網路相關統計資料的一切內容 (IP 位址、路由器、網域名稱、MAC 位址) 到硬體和軟體資訊 (電腦名稱、記憶體、OS 版本和 Servie Pack 等級) 無所不包。該程式接著會將所有該些資料作為底色圖案顯示在桌面上，讓資訊清楚可見又不至於太突兀 (見 [圖 1])。
[圖 1] BGInfo 將系統資訊顯示在桌面上
[圖 1] BGInfo 將系統資訊顯示在桌面上
若要執行 BGInfo，只要按兩下 bginfo.exe 檔案即可 — 不需要進行安裝。接著會顯示設定畫面，供您檢閱及選擇要顯示的資料欄位。在預設的情況下，BGInfo 會呈現 24 種不同的資訊。您可以移除任何您不希望看到的欄位，之後如果改變主意，可以將它新增回來。您也可以輕鬆放入額外的欄位。BGInfo 可顯示任何環境變數、大多數的登錄值，以及 VBScript 和 Windows Management Instrumentation (WMI) 查詢的輸出。WMI 介面提供一種簡單的方法來建置查詢，只要從下拉式功能表選取值就行了。BGInfo 還可以接取特定檔案，顯示它們的版本資訊、時間戳記和內容。
顯示內容完全可自訂。您可以變更文字的不同屬性 — 對齊方式、字型、字型大小和色彩。另外，您還可以在桌面的不同部分操控資料的位置，以及以英吋單位來指定其顯示區域的最大寬度。最後，BGInfo 可讓您將圖形加到文字資料的旁邊，讓您放入影像，例如公司標誌。反過來說，如果您寧願不要在桌面上顯示所有這些資訊，只要將 BGInfo 改設定成系統匣中的圖示便可。在此圖示上面按一下滑鼠按鍵，就會出現完整的顯示。
作好格式化選擇之後，在認可之前可以按一下 [預覽] 按鈕來檢查顯示，如果看起來不賴，就可以套用它。您可以隨時在需要的時候於任何電腦上手動執行 BGInfo，或讓它自動更新。若要定期重新整理資料，請將 BGInfo.exe 檔案加入啟動資料夾，或將它設定成排定的工作。自訂好一部電腦上的 BGInfo 後，可在其他電腦上使用相同的設定。只要將設定存成 BGI 檔案，然後將它們載入其他執行該程式的電腦就大功告成了。
雖然您一次只能在一部電腦上執行 BGInfo，但您可以在多個網路用戶端上觸發它。您可以將 bginfo.exe 檔案插入登入指令碼中，該程式提供數個命令列選項來控制它的行為。BGInfo 收集的資料也可以匯出成外部檔案 — 文字檔、Excel® 試算表、Access™ 資料庫，或是 SQL 資料庫，讓您手邊隨時擁有所有網路電腦統計資料。
內含在 BGInfo 的 [說明] 資訊相當詳盡而且容易遵循。當中甚至還提供如何撰寫簡單的 VBScript 和 WMI 查詢，讓 BGInfo 擷取它們的輸出。該程式可執行在所有 Windows 版本，從 Windows 95 到 Windows Vista® 都行。欲進一步了解 BGInfo 並下載此工具，請造訪 microsoft.com/technet/sysinternals/Miscellaneous/BgInfo.mspx。

Lance Whitney 身兼 IT 顧問、培訓講師和技術文件作家。他花了很多時間改良 Windows 工作站與伺服器。記者出身的 Lance 在 15 年前一頭栽進 IT 產業。


 The Cable Guy: Windows Vista 中的 IPv6 自動設定
The Cable Guy
Windows Vista 中的 IPv6 自動設定
Joseph Davies

IPv6 不光是將 IPv4 中位址空間從 32 位元延伸至 128 位元而已， IPv6 主機甚至不需要像是 DHCP for IPv6 (DHCPv6) 等位址設定通訊協定，也可以自行進行自動設定。
根據 RFC 2462，所有 IPv6 節點會為每個介面自動設定一個 Link-local 位址。IPv6 主機也使用路由器探索，也就是交換路由器請求和路由器通告訊息，藉以判斷額外的位址和組態設定。路由器傳送的路由器通告訊息所包含的是管理的位址設定 (M) 和其他可設定狀態設定(O) 兩種旗標，用來表明主機是否應該針對額外的位址或組態設定使用 DHCPv6。

IPv6 自動設定的類型
除了 Link-local 位址之外，主機還會使用可設定狀態自動設定根據所接收到的路由器通告訊息來設定位址及其他設定。這些訊息可包含一或多個首碼資訊選項，讓接收主機用來衍生沒有狀態位址。
同樣地，可設定狀態自動設定也是根據 DHCPv6 的使用來設定位址和其他設定，藉以取得位址。當主機接收到 M 旗標設定為 1 的路由器通告訊息時，便會採用可設定狀態自動設定。
最後，主機也可以使用沒有狀態和可設定狀態兩種自動設定，這是結合路由器通告所含的位址和從 DHCPv6 伺服器取得的位址。

自動設定的位址狀態
當自動設定的位址處於暫時性狀態時，表示它正透過重複位址偵測 (DAD) 被驗證為唯一。有關 DAD 是如何執行的相關資訊，請參閱「RFC 2462 IPv6 自動設定程序」資訊看板。處於有效狀態的位址，表示已被驗證為唯一，並且可用來收發單點傳送流量。有效的狀態同時包括慣用和過時的狀態。在慣用的狀態下，可將位址用於無限制的通訊。而在過時的狀態下，不應將位址用於新通訊，不過使用位址的現有通訊倒是可以繼續。
RFC 2462 IPv6 自動設定程序
下面的步驟說明 RFC 2462 中定義的 IPv6 主機的自動設定程序：
  • 以延伸唯一識別碼 (Extended Unique Identifier，EUI)-64 介面識別碼 (ID) 衍生暫時性 Link-local 位址。
  • 透過傳送芳鄰邀請訊息，並將訊息中的目標位址設為暫時性 Link-local 位址，在暫時性 Link-local 位址上執行 DAD。
  • 若收到為了回應芳鄰邀請訊息而傳送的芳鄰通告訊息，表示暫時性 Link-local 位址為重複的位址。停止位址自動設定。此時主機上必須執行手動設定。
  • 若沒有收到芳鄰通告訊息 (為了回應芳鄰邀請訊息而傳送)，則暫時性 Link-local 位址即是唯一。將介面上的位址狀態變更為慣用。
  • 傳送路由器請求訊息。
  • 若沒有收到路由器通告訊息，則使用 DHCPv6 來取得位址和其他設定參數。
  • 若收到路由器通告訊息，則針對所含的首碼設定暫時性位址，並為每個暫時性位址執行重複位址偵測。如果位址是唯一的，則將介面上的位址狀態變更為慣用。
  • 若路由器通告訊息中的 M 旗標是設定為 1，則使用 DHCPv6 來取得額外的可設定狀態位址。
  • 若路由器通告訊息中的 M 旗標是設為 0 並且 O 旗標是設為 1，則使用 DHCPv6 來取得額外的設定參數。

通告路由器或 DHCPv6 伺服器會為位址首碼指定有效及慣用的存留時間，位址超過慣用存留期間後會進入過時狀態。自動設定位址的慣用存留時間是透過接收路由器通告或更新 DHCPv6 位址設定的方式來進行重新整理。[圖 1] 顯示自動設定位址的狀態，及其與慣用和有效存留時間的關係。
[圖 1] 自動設定位址的狀態
[圖 1] 自動設定位址的狀態
除了自動設定的連結本機位址是例外，位址自動設定完全是針對 IPv6 主機指定。IPv6 路由器必須透過其他方法取得位址和設定參數，例如手動設定。
「RFC 2462 IPv6 自動設定程序」資訊看板中說明了 RFC 2462 中定義的主機其詳細的 IPv6 位址自動設定程序。

Windows Vista 的 IPv6 自動設定行為
執行 Windows Vista® 或 Windows Server® 2008 (前產品代碼 "Longhorn") 的電腦，預設會針對非暫時自動設定 IPv6 位址產生隨機的介面識別碼，包括公用位址和 Link-local 位址，而不是產生以 EUI-64 為主的介面識別碼。公用 IPv6 位址是在 DNS 中註冊的全域位址，並且一般是由伺服器應用程式用於連入連線，例如網頁伺服器。您可以使用下列命令來停用此一預設行為：
netsh interface ipv6 set global randomizeidentifiers=disabled
停用後，IPv6 便會使用以 EUI-64 為主的介面識別碼。
使用隨機衍生的介面識別碼，Link-local 位址發生重複的可能性就非常渺小。因此，執行 Windows Vista 或 Windows Server 2008 的電腦不會等候 DAD 完成，便會使用它們衍生的 Link-local 位址來傳送路由器請求訊息。這也稱為開放式 DAD，路由器探索和 DAD 會在介面初始化程序期間並行執行以節省時間。
若未收到任何路由器通告，執行 Windows Vista 或 Windows Server 2008 的電腦不會嘗試以 DHCPv6 自動設定可設定狀態位址。
Windows Vista IPv6 自動設定程序
下面的步驟說明執行 Windows Vista 的 IPv6 主機的自動設定程序：
  • 以隨機衍生的介面識別碼 (預設設定)，為 LAN 介面衍生暫時性 Link-local 位址。
  • 針對 LAN 介面的衍生 Link-local 位址執行 DAD (傳送芳鄰邀請訊息，並將 [目標位址] 欄位設為暫時性 Link-local 位址)。
  • 在 LAN 介面上執行路由器探索 (從暫時性 Link-local 位址傳送路由器請求訊息)。
  • 若收到步驟 2 中為了回應芳鄰邀請訊息而傳送的芳鄰通告訊息，則將 Link-local 位址標示為重複。
  • 若沒有收到任何回應芳鄰邀請訊息的芳鄰通告訊息，則將 LAN 介面上的 Link-local 位址狀態變更為慣用。
  • 若沒有收到任何路由器通告訊息，則停止 LAN 上的 IPv6 位址自動設定。繼續到步驟 13。
  • 若收到路由器通告，則根據步驟 1 中衍生的隨機介面識別碼建立與訊息中的全域或唯一本機位址首碼相對應的暫時性公用位址，並執行 DAD。
  • 使用隨機新衍生的隨機介面識別碼來建立與訊息中的全域或唯一本機位址首碼相對應的暫時性公用位址，並執行 DAD。
  • 對於每個新位址，若沒有收到任何回應芳鄰邀請訊息的芳鄰通告訊息，則將 LAN 介面上的位址狀態變更為慣用。
  • 若路由器通告的 M 和 O 旗標皆設為 0，則停止 LAN 介面上的 IPv6 自動設定。繼續到步驟 13。
  • 若路由器通告的 M 旗標是設為 1，則使用 DHCPv6 來取得可設定狀態 IPv6 位址和額外的組態設定。
  • 若路由器通告的 M 旗標是設為 0 且 O 旗標是設為 1，則使用 DHCPv6 來取得額外的組態設定。
  • 根據 LAN 介面的 IPv4 位址衍生 Link-local ISATAP 位址，並將它們指定到 ISATAP 通道介面。
  • 嘗試將主機名稱「ISATAP」解析成 IPv4 位址。
  • 若無法解析主機名稱「ISATAP」，則停止 IPv6 設定。
  • 若主機名稱「ISATAP」解析成 IPv4 位址，則傳送 IPv4 封裝的路由器請求給 ISATAP 路由器。
  • 若收到 ISATAP 路由器的路由器通告，則建立與通告的全域或唯一本機位址首碼相對應的其他 ISATAP 位址，並將它們指定給 ISATAP 通道介面。

針對 Windows Vista 自動設定的位址
如前所述，適用於 Windows Vista 或 Windows Server 2008 的 IPv6 通訊協定，會自動針對所有 LAN 介面使用隨機衍生的介面識別碼來設定 Link-local 位址。
若收到的路由器通告包含全域或唯一的本機首碼，則 IPv6 會使用同一個隨機產生的介面識別碼來設定全域或唯一本機位址，並將它們指定給接收路由器通告的 LAN 介面。這類的位址便稱為公用位址。
Windows Vista 中的 IPv6 預設也會使用不同的隨機衍生介面識別碼來設定全域或唯一本機位址，並將它們指定給接收路由器通告的 LAN 介面。暫時位址是定義在 RFC 3041 中，並且是用於為用戶端起始的通訊提供某種程度的匿名。相反地，Windows Server 2008 中的 IPv6 預設則不會建立暫時位址。您可以使用下列命令來啟用暫時位址：
netsh interface ipv6 set privacy-enabled
若收到的路由器通告訊息中 M 旗標是設為 1，則 IPv6 會使用 DHCPv6 為 LAN 介面設定額外的全域或唯一本機位址。
IPv6 也會為本機上的每個 LAN 介面建立 Intra-site Automatic Tunnel Addressing Protocol (ISATAP) 通道介面。RFC 4214 中有說明 ISATAP IPv6 轉換技術。透過 ISATAP，IPv6 主機便能藉著以 Ipv4 標頭封裝 IPv6 封包，在僅允許 IPv4 的內部網路上通訊。如需有關 ISATAP 的詳細資訊，請參閱＜IPv6 轉換技術＞。
針對每個 ISATAP 通道介面，IPv6 都會為指定給其相對應 LAN 介面的 IPv4 位址設定 Link-local ISATAP 位址。例如，對於與指定 IPv4 位址 192.168.91.211 的 LAN 介面相對應的 ISATAP 通道介面，IPv6 會指定 FE80::0:5EFE:192.168.91.211 的 Link-local ISATAP 位址。
ISATAP 主機也會執行 ISATAP 路由器探索。為了接收 ISATAP 路由器的路由器通告，IPv6 預設必須要能夠將主機名稱「ISATAP」解析成 IPv4 位址。這是透過 Windows 主機名稱解析方法 (例如 DNS) 辦到的。名稱一經解析，主機便會傳送 IPv4 封裝的路由器請求給 ISATAP 路由器。ISATAP 路由器接著會傳送 IPv4 封裝的路由器通告給主機。根據所收到的路由器通告內容，IPv6 還會在 ISATAP 通道介面上設定全域或唯一本機 ISATAP 位址。
Windows Vista 也支援 6to4 和 Teredo IPv6 轉換技術。不過為了避免將事情複雜化，我在此處將不探討自動設定 Windows Vista IPv6 主機的 6to4 和 Teredo 通道介面。
「Windows Vista IPv6 自動設定程序」資訊看板中說明了 Windows Vista IPv6 主機的自動設定程序，此主機具有單一 LAN 介面，在其 LAN 或 ISATAP 通道介面上設有全域或唯一本機位址首碼。
舉例來說，執行 Windows Vista 的主機有單一的 LAN 介面。此主機在它的 LAN 介面收到一個 M 和 O 旗標皆設為 0，且包含 2001:DB8:D005:F282::/64 和 FD4A:3A9:27A1:F282::/64 首碼的路由器通告。它並沒有收到 ISATAP 路由器的路由器通告訊息。[圖 2] 為針對此一範例主機的命令
Figure 2 netsh interface ipv6 show address 的輸出 (Close Figure 2)
Interface 1: Loopback Pseudo-Interface 1

Addr Type DAD State Valid Life Pref. Life Address
--------- ----------- ---------- ---------- ------------------------
Other   Preferred  infinite infinite ::1

Interface 8: Local Area Connection

Addr Type DAD State Valid Life Pref. Life Address
--------- ----------- ---------- ---------- ------------------------
Temporary Preferred 6d19h37m21s 6d19h37m21s 2001:db8:d005:f282:ed46:5dd4:5439:2e1c
Public  Preferred  infinite infinite 2001:db8:d005:f282:3521:12fa:2c44:87d1
Temporary Preferred 6d19h37m21s 6d19h37m21s fd4a:3a9:27a1:f282:ed46:5dd4:5439:2e1c
Public   Preferred  infinite infinite fd4a:3a9:27a1:f282:3521:12fa:2c44:87d1
Other   Preferred  infinite infinite fe80::3521:12fa:2c44:87d1%8

Interface 17: Local Area Connection* 9

Addr Type DAD State Valid Life Pref. Life Address
--------- ----------- ---------- ---------- ------------------------
Other   Preferred  infinite infinite fe80::5efe:10.47.181.92%17

netsh interface ipv6 show address
產生的的輸出範例。圖中，與名為 Local Area Connection 的 LAN 介面相對應的 ISATAP 通道介面叫做 Local Area Connection* 9。
除了自動設定的位址之外，適用於 Windows Server 2008 和 Windows Vista 的 IPv6 通訊協定另外還支援透過使用下列命令
netsh interface ipv6 add address
或透過 [網路連線] 資料夾中連線內容的 [網際網路通訊協定第 6 版 (TCP/IPv6)] 元件，手動設定靜態 IPv6 位址。
本月的專欄中，我是假設您對 IPv6 定址和通訊協定作業已具有一般的基本了解。如果您需要關於此主題的詳細資訊，建議您先從《IPv6 簡介》白皮書著手，可在microsoft.com/technet/ network/ipv6/introipv6.mspx 中找到。

Joseph Davies是 Microsoft 的技術文件作家，從 1992 年開始教導和編寫 Windows 網路方面的主題。他出過五本 Microsoft Press 的書，同時也是每個月 TechNet Cable Guy 專欄的作家。


 Windows PowerShell: 篩選的威力
Windows PowerShell
篩選的威力
Don Jones

在上個月的專欄中，我討論到 Windows PowerShell 管線的威力和彈性，它可讓您從一個 Cmdlet 傳遞資料集 (更確切地說應該是物件資料流) 到另一個 Cmdlet，進一步精簡該集合直到達成您所要的。我在文中談到不只是 Cmdlet，
連您自己的指令碼，也可以利用此管線。這個月我想要詳細探討這個主題。
我在 Windows PowerShell™ 中最常做的事情之一是撰寫指令碼對多部遠端電腦採取行動，通常是透過 Windows® Management Instrumentation (WMI)。就跟任何與遠端電腦打交道的工作一樣，在指令碼執行時，總是可能發生其中一部或多部電腦無法使用的情況。因此，我需要指令碼能夠對這種情況做出應變。
不用說，讓指令碼能夠處理 WMI 連線逾時的方法有很多，但是我並不怎麼喜歡用這種方法，因為逾時期間本身很長，預設約 30 秒。如果指令碼得等候無數逾時發生的話，可能會導致它執行得太慢。我想讓指令碼執行個簡單的檢查，在嘗試進行連線之前看看指定的電腦是否真的處於連線狀態。

Windows PowerShell 模範
在其他指令碼語言中，例如 VBScript，我一般一次只會處理一部電腦。也就是說，我會擷取電腦名稱，例如從存放在文字檔案的名稱清單中擷取，然後 Ping 該系統看看它可不可用。如果可用，就進行 WMI 連線，並執行其他我需要完成的工作。這種方法是常見的指令碼作風。事實上，我可能會將所有程式碼都寫在迴圈中，然後針對每部需要連線的電腦重複該迴圈。
不過，Windows PowerShell 比較適合批次作業，這都要歸功於它的物件基礎，以及它能直接與群組和物件集合搭配使用的能力。Windows PowerShell 中的模範不是要處理單一的資料物件或片段，而是處理整個群組，一點一滴地精簡該群組，直到達成您當初的目的為止。例如，與其一次從清單中擷取一個電腦名稱，我改採一次讀取整個名稱集合。我不是在迴圈中 Ping 每部電腦，而是寫一個常式接受名稱集合，Ping 它們，然後輸出連得到的那些電腦。我的下一步是對剩餘的名稱 — 那些 Ping 不到的名稱 — 進行 WMI 連線。
Windows PowerShell 正是採用這種方法進行許多工作。比如，要取得執行中服務的清單，我可以使用像這樣的指令：
Get-Service | Where-Object { $_.Status –eq "Running" }
[圖 1] 顯示輸出在我電腦上的樣貌。我並沒有一次檢查一項服務，而是使用 Get-Service 擷取服務，我將該些服務輸送到 Where-Object，然後篩選出所有那些沒有在執行的服務。我希望指令碼做的大概如下： 取得電腦名稱的清單，篩選出所有 Ping 不到的名稱，並將 Ping 得到的電腦清單傳到下個步驟。
[圖 1] 取得 Ping 得到的電腦清單
[圖 1] 取得 Ping 得到的電腦清單

篩選函數
雖然我大可自寫一個 Cmdlet 來進行，但我不希望這麼做。著作 Cmdlet 需要用到 Visual Basic® 或 C#，並需具備某種程度的 Microsoft® .NET Framework 開發專才。更重要的是，它牽涉的層面比我想要在此工作所投入的還廣。所幸 Windows PowerShell 可讓我撰寫一個特殊的函數，稱為篩選器，它完全能夠在管線內行動。篩選函數的基本輪廓看起來像這樣：
function <name> {
  BEGIN {
    #<code>
  }
  PROCESS {
    #<code>
  }
  END {
    #<code>
  }
}
如您所見，此函數包含三個獨立的指令碼區塊，分別名為 BEGIN、PROCESS 和 END。篩選函數 — 也就是專門為了在管線內運作以篩選物件而設計的函數 — 可具有這三個指令碼區塊的任一組合，端視您要怎麼做而定。它們的運作方式如下：
  • BEGIN 區塊會在函數一被呼叫後執行一次。必要時，您可以使用此區塊來進行設定工作。
  • PROCESS 區塊會在每個管線物件傳遞到函數內時執行一次。$_ 變數代表目前的管線輸入物件。篩選函數中需要用到 PROCESS 區塊。
  • END 區塊會在所有管線物件都已處理後執行一次。必要時，這可以用於任何結束工作。
在範例中，我想要產生一個篩選函數，將名稱集合接受成輸入物件，然後嘗試 Ping 每一個。每個可以成功 Ping 到的都將輸出到管線，而 Ping 不到的系統會直接被捨棄。由於 Ping 功能並不需要任何特殊的設定或結束，我於是單純使用 PROCESS 指令碼區塊。[圖 2] 中的程式碼提供了完整的指令碼。
Figure 2 Ping-Address 和 Restart-Computer (Close Figure 2)
1  function Ping-Address {
2    PROCESS {
3      $ping = $false
4      $results = Get-WmiObject -query `
5      "SELECT * FROM Win32_PingStatus WHERE Address = '$_'"
6      foreach ($result in $results) {
7        if ($results.StatusCode -eq 0) {
8          $ping = $true
9        }
10      }
11      if ($ping -eq $true) {
12        Write-Output $_
13      }
14    }
15  }
16
17  function Restart-Computer {
18    PROCESS {
19      $computer = Get-WmiObject Win32_OperatingSystem -computer $_
20      $computer.Reboot()
21    }
22  }
23
24  Get-Content c:\computers.txt | Ping-Address | Restart-Computer
請注意，我定義了兩個函數：Ping-Address 和 Restart-Computer。在 Windows PowerShell 中，必須先定義函數後才能對它們進行呼叫。因此，指令碼的第一個可執行的行是第 24 行，這一行使用 Get-Content Cmdlet 從檔案取得電腦名稱的清單 (一行一個電腦名稱)。該清單 — 技術上來說是 String 物件的集合 — 會輸送到 Ping-Address 函數，此函數會篩選出任何 Ping 不到的電腦。結果會輸送到 Restart-Computer，它會使用 WMI 從遠端重新啟動每部 Ping 得到的電腦。
Ping-Address 函數會實作 PROCESS 指令碼區塊，也就是說該函數預期收到的是輸入物件的集合。PROCESS 指令碼區塊會自動處理該輸入 — 我不用定義任何輸入引數來包含該輸入。我在第 3 行開始整個程序，方法是將變數 $ping 設為 $false，這是一個內建的 Windows PowerShell 變數，代表布林值 False。
我接著使用本機 Win32_PingStatus WMI 類別來 Ping 指定的電腦。請注意第 5 行上的 $_ 變數 (它代表的是目前的管線物件) 內嵌到 WMI 查詢字串中。若字串包含在雙引號內，Windows PowerShell 就會嘗試以字串的內容來取代像 $_ 的變數，這樣一來您就不必煩勞混亂的字串串連。我在第 5 行運用該項功能。
第 6 行是個迴圈，它會檢查 Ping 結果。若傳回任何成功的結果 (亦即值為零的 StatusCode)，我便將 $ping 設成等於 $true，來表示成功。在第 11 行上，我檢查看 $ping 是否已設定為 $true。如果是，我便將原始輸入物件輸出到預設輸出資料流。Windows PowerShell 會自動管理預設的輸出資料流。若此函數是位於管線的最後，那麼輸出資料流將轉換成文字表示。假如管線內有更多命令的話，輸出資料流的物件 — 在本例中，即包含電腦名稱的字串物件 — 就會被傳遞到下一個管線命令中。
Restart-Computer 函數比較簡單一些，但它也使用 PROCESS 區塊，方便它輕鬆參與管線。在第 19 行上，函數連線到已命名的電腦，並擷取它的 Win32_OperatingSystem WMI 類別。第 20 行執行該類別的 Reboot 方法來重新啟動遠端電腦。
同樣地，實際上執行所有動作的地方是在第 24 行。不用多說，您執行此指令碼時應當多加謹慎 — 它的設計是要重新啟動 c:\computers.txt 中提到的每部電腦，如果您不注意該文字檔案中的名稱，肯定會造成悲慘的下場！

下一步
此指令碼並不是絕對的完美。我也應該註明可能會發生與基本連線不相關的 WMI 錯誤，像是防火牆封鎖遠端電腦上必要的連接埠，或是 WMI 安全性錯誤。我可以實作攔截處理常式來處置這些問題 — 聽起來正適合當作未來專欄的主題。
另外，此指令碼可執行重新啟動遠端電腦這個相當重要的動作。只要是嘗試這類有可能導致危險動作的指令碼，都應該實作兩個常用的 Windows PowerShell 參數，也就是 –Confirm 和 –WhatIf。礙於篇幅有限，無法討論實作的方法，不過這是另外一個適合另闢專欄的主題。在此同時，不妨瞧瞧 Windows PowerShell 小組部落格，架構設計師 Jeffrey Snover 對此主題有研究。
即使沒有深入探討這些功能，您還是可以粗略了解篩選函數的作用。我會在後續的專欄中鑽研此技巧，向您說明函數如何能夠提供最佳的方式來模組化可重複使用的程式碼，以及加強指令碼的一般功能。

Don Jones 是 SAPIEN Technologies 的指令碼語言大師，也是《Windows PowerShell:TFM》(SAPIEN Press，2007 年) 一書的作者之一。若要與他連絡，請前往 www.ScriptingAnswers.com。


 嗨，Scripting Guy！: 你是誰？
嗨，Scripting Guy！
你是誰？
Microsoft Scripting Guy
下載本文程式碼: HeyScriptingGuy2007-082007_08.exe (152KB)

不久前，撰寫本專欄的 Scripting Guy 看了一場電視棒球賽。比賽播完後，他打算看一下雜誌，不過電視仍開著。看完雜誌，抬頭一看電視正在播放一部二戰舊片，他剛好看見查驗身分那一幕：一名美國大兵守夜哨時聽見聲響。
「你是誰？」哨兵厲聲說道。
「是我啊，史密斯中士。」對方回答。
「史密斯中士？部隊裡沒有什麼史密斯中士。」
「我是新來的，剛從第一連調來。」
「是嗎？從第一連調來？那好吧，史密斯：誰贏了 1934 年世界大賽？」
「紐約洋基隊。」
答錯了，「史密斯」！(想也知道，史密斯立刻被逮，丟進大牢)。任何正港的美國人都知道是聖路易紅雀隊 (就是迪恩 [Dizzy Dean] 與瓦斯房幫 [Gas House Gang]) 贏了 1934 年世界大賽。而不知道的人肯定都是間諜。
如果本月專欄的讀者中有人不曉得聖路易紅雀隊贏了 1934 年世界大賽，我們只能說你玩完了，我們看穿你就是間諜。希望你行行好，向最近的 FBI 機關自首。要不然至少也撥通電話給 FBI，只要涉及間諜事宜，FBI 都願意提供接送服務。
撰寫這篇專欄的 Scripting Guy 一邊看著電視，一邊想著他一定可以答對哨兵的第二個問題：誰贏了 1966 年世界大賽？巴爾的摩金鶯隊。1960 年世界大賽？匹茲堡海盜隊。1994 年世界大賽？嘿！這題有陷阱：1994 年沒有世界大賽。
不過，在現在這個世代，他卻很難回答第一個問題：你是誰？這個問題再也不像 1940 年代那時一樣容易回答。畢竟，使用者只要利用 Active Directory® 就能擁有各種不同的身分，像是：
  • 名字 (givenName)。
  • 姓氏 (sn)。
  • 顯示名稱 (displayName)。
  • 使用者主要名稱 (userPrincipalName)。
  • 登入名稱 (samAccountName)。
  • 辨別名稱 (distinguishedName)。
這些名稱全都用來識別同一人，而且都是必須掌握的重要資訊 (視情況而定)。這就是問題所在。大部分的使用者知道自己的名字和姓氏。但如果問使用者：「你的辨別名稱是什麼？」只有寥寥可數的人能回答出：「這還不簡單！我是 CN=Ken.Myer, OU=Finance, DC=fabrikam, DC=com。但是朋友都叫我 CN=Ken.Myer。」
身為系統管理員或支援工程師，您也必須知道這些名稱。但是您要如何取得這些資訊？其中一個法子是把使用者吊起來，直到他們招出自己的辨別名稱為止。這種方法可能奏效，但是今日的人事部大多不允許這種事情發生。因此您可能得改用 B 計畫：指令碼。哪種指令碼？對新手來說，不妨考慮 [圖 1] 中的指令碼。
Figure 1 使用 ADSystemInfo 擷取使用者屬性 (Close Figure 1)
On Error Resume Next

Set objSysInfo = CreateObject("ADSystemInfo")
strUser = objSysInfo.UserName

Set objUser = GetObject("LDAP://" & strUser)
WScript.Echo "First Name: " & objUser.givenName
WScript.Echo "Last Name: " & objUser.sn
WScript.Echo "Display Name: " & objUser.displayName
WScript.Echo "User Principal Name: " & objUser.userPrincipalName
WScript.Echo "SAM Account Name: " & objUser.sAMAccountName
WScript.Echo "Distinguished Name: " & objUser.distinguishedName
唉啊，要是史密斯中士學過 VBScript 就好了，不是嗎？這段指令碼利用鮮為人知 (但十分有用) 的 ADSI 物件，稱為 ADSystemInfo。這個小巧的物件可以傳回有關目前登入本機電腦的使用者的各種資訊，也可以傳回有關本機電腦本身以及所屬網域的所有資訊。舉例來說，請看一下 [圖 2]。
Figure 2 顯示各種網域資訊 (Close Figure 2)
On Error Resume Next

Set objSysInfo = CreateObject("ADSystemInfo")

Wscript.Echo "User name: " & objSysInfo.UserName
Wscript.Echo "Computer name: " & objSysInfo.ComputerName
Wscript.Echo "Site name: " & objSysInfo.SiteName
Wscript.Echo "Domain short name: " & objSysInfo.DomainShortName
Wscript.Echo "Domain DNS name: " & objSysInfo.DomainDNSName
Wscript.Echo "Forest DNS name: " & objSysInfo.ForestDNSName
Wscript.Echo "PDC role owner: " & objSysInfo.PDCRoleOwner
Wscript.Echo "Schema role owner: " & objSysInfo.SchemaRoleOwner
Wscript.Echo "Domain is in native mode: " & objSysInfo.IsNativeMode
不過目前我們只關心 UserName 這個屬性。UserName 有何特別之處？其實它剛好對應到 distinguishedName 屬性。那麼 distinguishedName 又有何特別？distinguishedName 類似 UNC 檔案路徑：正如 UNC 路徑可讓我們唯一識別網路上的檔案，distinguishedName (例如，CN=Ken.Myer, OU=Finance, DC=fabrikam, DC=com) 也可讓我們唯一識別 Active Directory 中的使用者帳戶。如此一來，我們就能夠繫結到該使用者帳戶。一旦建立此連線，就能夠取得與使用者有關的各種所需資訊，包括他的身分。
示範的第一段程式碼就是進行這個動作。一開始，我們建立 ADSystemInfo 物件的執行個體，然後將 UserName 屬性值指定成名為 strUser 的變數：
Set objSysInfo = CreateObject("ADSystemInfo")
strUser = objSysInfo.UserName
請注意，此處沒有什麼事情好做。譬如說，我們不需要指定使用者名稱、使用者網域或使用者帳戶所在的 OU；這一切都會由 ADSystemInfo 代勞。當我們取得使用者的 distinguishedName 後，便可以使用下面這行程式碼繫結到該使用者帳戶：
Set objUser = GetObject("LDAP://" & strUser)
同樣地，一旦建立連線後，就可以回應該帳號的任何 Active Directory 屬性值。在範例指令碼中，我們只是回應使用者的某些名稱屬性，但我們也可以輕易取得電話號碼、辦公室位置、電子郵件地址等資訊。
太棒了。您只需要把這份指令碼交給所有使用者，他們就再也不必疑惑「我是誰？」了 (即使有疑問，也可以簡單快速地得到答案)。但另一個相關問題要怎麼解決：你是誰？能夠識別登入本機電腦的使用者是一回事。但是您要如何確認登入遠端電腦的使用者身分？您可能已經猜到，這個問題棘手多了。
抱歉，這點我們也想到了；很遺憾，您不能直接將 ADSystemInfo 指令碼指向遠端電腦。不能這麼做的原因在於 ADSystemInfo 物件只能在本機建立。因此可能的做法有三種：
  • 建立登入指令碼來記錄在某些可存取位置上登入的使用者名稱。
  • 使用 WMI 類別 Win32_ComputerSystem 和 UserName 屬性。
  • 採取其他做法。
第一種做法似乎不錯。您應該已經注意到，ADSystemInfo 物件可以傳回電腦的辨別名稱 (ComputerName 屬性) 以及使用者的辨別名稱。請看 [圖 3] 顯示的範例指令碼。
Figure 3 登入指令碼 (Close Figure 3)
On Error Resume Next

Set objSysInfo = CreateObject("ADSystemInfo")

strUser = objSysInfo.UserName
strComputer = objSysInfo.ComputerName

Set objUser = GetObject("LDAP://" & _
    strUser)
strUserName = objUser.displayName

Set objComputer = GetObject("LDAP://" & _
    strComputer)
objComputer.Description = strUserName
objComputer.SetInfo
這裡的動作是要做什麼呢？一開始，我們抓取 UserName 和 ComputerName 屬性的值，並將之儲存到一組變數 (strUser 與 strComputer) 中。接著繫結到 Active Directory 中的使用者帳戶 (跟之前一樣)，擷取 displayName 屬性值 (跟之前一樣)，然後將這個值儲存在名為 strUserName 的變數中。挺直接了當的。
然後我們可以使用這行程式碼連線到 Active Directory 電腦帳戶：
Set objComputer = GetObject("LDAP://" & _
    strComputer)
建立連線後，我們將使用者的 displayName 指定到電腦的 Description 屬性，接著呼叫 SetInfo 方法以便在 Active Directory 寫入此變更：
objComputer.Description = strUserName
objComputer.SetInfo
為什麼要這麼做？很簡單。假設 Ken Myer 登入電腦 atl-ws-01。您想 atl-ws-01 的 Description 屬性將會是什麼值？沒錯：Ken Myer，正是目前登入電腦的使用者。想知道誰登入 atl-ws-01 嗎？查看 Description 屬性準沒錯。
一般來說，這個方案的成效不錯，而且如果使用登出指令碼在每次使用者登出時清除 Description 屬性的話，效果會更好。不過這並非萬無一失的解決方案。為什麼？因為登入指令碼不一定都會執行。例如，當使用者使用 RAS 登入時就不會執行登入指令碼。同樣地，如果使用者拔除網路連線，使用快取認證登入，然後再將電腦連上網路，此時也不會執行登入指令碼。假設使用者未登出就關閉電腦。這表示他的登出指令碼永遠不會執行。在這種情況下，即使機器早就停止運作，Ken Myer 仍會被認為已登入 atl-ws-01。換言之，這個技術很實用，只不過....
那麼第二種使用 Win32_ComputerSystem 類別的做法怎麼樣？同樣地，這個方法通常可行，但是 Win32_ComputerSystem 類別的問題在於，它不會永遠傳回登入使用者的名稱，特別是那些沒有系統管理員權限的使用者 (尤其是執行 Windows® 2000 的電腦)。[圖 4] 中的指令碼可能會告訴您誰登入了電腦，但不是保證有用。
Figure 4 檢查以 WMI 登入的使用者 (Close Figure 4)
strComputer = "."

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * From Win32_ComputerSystem")

For Each objItem in colItems
  Wscript.Echo objItem.UserName
Next
附帶一提，在這個案例中，會以 domain\username 的格式回報 UserName 屬性。也就是：FABRIKAM\kenmyer。
噢，差點忘了：即使確實傳回名稱，也不等於使用者實際上登入電腦。當 Ken Myer 登出 atl-ws-01 時，他的名稱會保留為 UserName 屬性值， 直到其他人登入時才會替換這個值。
真討厭。
但這不表示我們就是間諜。我們還可以採用另一種方法。如果有人登入電腦，處理序 Explorer.exe 必定會執行。一般而言，Explorer.exe 若未執行，就表示沒有人登入機器。而且由於 Explorer.exe 是在已登入使用者的認證底下執行，因此使用類似 [圖 5] 的指令碼就幾乎可以判定登入電腦的使用者身分。
Figure 5 確定 Explorer.exe 的擁有者 (Close Figure 5)
strComputer = "atl-ws-01"

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

Set colItems = objWMIService.ExecQuery _
  ("Select * from Win32_Process Where Name = 'explorer.exe'")

If colItems.Count = 0 Then
  Wscript.Echo "No one is logged on to the computer."
Else
  For Each objProcess in colItems
    objProcess.GetOwner strUser, strDomain
    Wscript.Echo strDomain & "\" & strUser
  Next
End If
如您所見，在此我們連線到遠端機器 (更準確的說是 atl-ws-01) 的 WMI 服務。接著再以下面這行程式碼，擷取具有名稱 Explorer.exe 的 Win32_Process 類別的執行個體集合：
Set colItems = objWMIService.ExecQuery _
  ("Select * from Win32_Process Where " & _
  "Name = 'explorer.exe'")
接下來該怎麼辦？就像我們之前說的，如果 Explorer.exe 並未執行，很有可能表示沒有人登入電腦。我們如何判斷 Explorer.exe 是否正在執行？有一個很簡單的方法，就是檢查集合的 Count 屬性值。如果 Count 等於 0，我們得到一個空集合，而只有在 atl-ws-01 上並未執行任何 Explorer.exe 的執行個體時，我們才會得到空集合。在這種情況下，我們回應的訊息將說明沒有人登入電腦：
Wscript.Echo "No one is logged on " & _
"to the computer."
如果 Count 不等於 0，我們將設定 For Each 迴圈來巡視具有名稱 Explorer.exe 的處理序集合 (沒錯，我們假設集合中只會有一個項目)。接著針對 Explorer.exe 的每個執行個體，呼叫 GetOwner 方法來確定 Explorer.exe 在哪個帳戶底下執行：
objProcess.GetOwner strUser, strDomain
請注意，我們傳遞一組輸出參數給 GetOwner：strUser 和 strDomain。輸出參數只是我們命名及提供給方法的變數而已；此方法接著會將值指定給這些輸出參數。此時，strUser 會被指定為已登入使用者的登入名稱 (kenmyer)，而 strDomain 則被指定為已登入使用者的網域名稱 (FABRIKAM)。接下來我們只需要回應這兩個輸出參數的值即可：
Wscript.Echo strDomain & "\" & strUser
您知道嗎？我們做得不錯。不過我們可以做得更好。使用 GetOwner 方法時，我們會取得登入電腦的使用者的登入名稱 (samAccountName)。這很好，但是正如先前所述，除了 samAccountName，使用者還有許多其他名稱。若要真正回答「你是誰？」這個問題，知道使用者的 displayName (舉例來說) 會更有幫助。但是使用 GetOwner 無法判定這些其他名稱，不是嗎？
的確不行。不過，我們可以利用 samAccountName，將它插入 Active Directory 搜尋指令碼中，然後使用該登入名稱來找到並繫結使用者帳戶 (基於網域中的 samAccountNames 必須是唯一的，這個工作更加簡單)。一旦繫結到使用者帳戶後，就可以回應任何 Active Directory 屬性的值，包括 displayName。
我們沒有時間詳細解說 [圖 6] 中的指令碼；如需搜尋 Active Directory 的詳細資訊，請參閱＜老兄，我的印表機在哪兒？＞。只是要提醒您，這段程式碼會檢查已登入使用者的登入名稱，在 Active Directory 中搜尋包含該登入名稱 (samAccountName) 的使用者，繫結到該使用者帳戶，然後回應使用者的 displayName，這樣您就懂了。而且這些作業不費吹灰之力就完成了！
Figure 6 繫結到已登入的使用者 (Close Figure 6)
strComputer = "atl-ws-01"

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

Set colItems = objWMIService.ExecQuery _
  ("Select * from Win32_Process Where Name = 'explorer.exe'")

If colItems.Count = 0 Then
  Wscript.Echo "No one is logged on to the computer."
Else
  For Each objProcess in colItems
    objProcess.GetOwner strUser,strDomain
  Next
End If

Const ADS_SCOPE_SUBTREE = 2

Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection

objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE

objCommand.CommandText = "SELECT displayName FROM " & _
  "'LDAP://DC=wingroup,DC=fabrikam,DC=com' WHERE " & _
    "objectCategory='user' " & _
    "AND samAccountName = '" & strUser & "'"
Set objRecordSet = objCommand.Execute

objRecordSet.MoveFirst

Do Until objRecordSet.EOF
  Wscript.Echo objRecordSet.Fields("displayName").Value
  objRecordSet.MoveNext
Loop
那麼我們今天有什麼重要心得？(對了，Microsoft 的人都是這樣說話的，只要對 Scripting Guy 說：「我們需要分類所有關係人的心得重點、交辦事項和非目標事項。」，肯定會把他逼瘋)。首先，我們已經知道如何取得登入本機或遠端電腦的使用者的相關資訊。更重要的是，萬一我們不小心穿越時空隧道，回到第二次世界大戰，至少我們知道該怎麼做：記得印出本專欄並隨身攜帶 (以便回答「你是誰？」這個問題)，而且無論如何都要帶著一份世界大賽歷屆冠軍名單。畢竟您永遠猜不到，何時會有人上前問您：「誰贏了 1903 年世界大賽？」
附註：答案是波士頓紅襪隊。附帶一提，這正是第一屆世界大賽。那麼，您認為誰贏了 1904 年世界大賽？您說不知道是什麼意思？請容我們失陪一下，得打個電話...。

Microsoft Scripting Guy 為 Microsoft 做事，也就是受雇於 Microsoft。在比賽、訓練、看棒球賽 (以及其他各種活動) 之餘，他們也負責管理 TechNet Script Center。請造訪他們的網站 www.scriptingguys.com。


 安全性監控: Windows 中的 PKI 增強
安全性監控
Windows 中的 PKI 增強
John Morello
本專欄是根據 Windows Server 2008 的搶鮮版所撰寫。本文包含的所有資訊均有可能變更。

Windows 自 Windows 2000 發行以來便包含對公開金鑰基礎結構 (PKI) 穩固的全平台支援。該版本不但包含最初的憑證授權單位功能，引進了自動註冊，更提供了對智慧卡驗證的支援。在 Windows XP 和 Windows Server 2003 中，該些
功能已經過擴充，透過第 2 版憑證範本以及對自動註冊使用者憑證的支援，提供了更富彈性的註冊選項。在 Windows Vista® 和 Windows Server® 2008 (前產品代碼 "Longhorn") 中，Windows® PKI 平台更進一步支援進階演算法、即時驗證檢查及較佳管理性。本專欄將探討 Windows Vista 及 Windows Server 2008 中全新的 PKI 功能，以及企業可以如何利用它們來降低成本並提高安全性。
Windows Vista 和 Windows Server 2008 中的 PKI 改進重點是放在四大要件上： 加密、註冊、管理性及撤銷。除了這些功能特定的改進外，Windows PKI 平台也因其他作業系統的先進功能而受益，例如角色管理員，它使建立和部署新憑證授權單位更為簡單。此外，Windows 許多其他部份也都能利用 PKI 平台中的改進，例如 Windows Vista 中支援使用智慧卡存放加密檔案系統 (EPS) 金鑰。

加密
加密要件方面有雙重的改良。首先，隨著 Cryptography Next Generation (CNG) 的推出，Windows 現在提供隨插即用、通訊協定中立的加密功能，使得個別的演算法更容易透過撰寫程式的方式來開發和存取。其次，CNG 本身還添加了對 Suite B 演算法的新支援，這是由美國國家安全局 (NSA) 在 2005 年推出的。
CNG 是 Microsoft 一種全新的核心加密介面，並且是未來以 Windows 為主的加密感知應用程式建議採用的 API。CNG 提供許多以開發人員為焦點的新功能，包括更簡易的演算法探索及替代，可取代的亂數產生器，以及核心模式加密 API。在提供這些新功能的同時，CNG 還與其先前版本 (目前為 CryptoAPI 1.0) 中所提供的演算法組完全相容。CNG 在選定的平台上已經通過聯邦資訊處理標準 (FIPS) 140-2 第 2 級憑證以及共同標準的評估。
CNG Suite B 支援包括所有必要的演算法：AES (各種金鑰大小)、SHA-2 系列 (SHA-256、SHA-384 和 SHA-512) 雜湊演算法、Elliptic Curve Diffie-Hellman (ECDH)，以及關於美國國家標準與技術局 (NIST) 標準質數曲線 P-256、P-384 和 P-521 的 Elliptic Curve Digital Signature Algorithm (ECDSA)。NSA 指出將採用合格 Suite B 實作來保護分類為最機密、機密和私人資訊 (這在過去是指機密但不保密) 的資訊。所有 Suite B 演算法都是公開開發，並且其他有些政府也考慮將之納入國家標準。
Windows PKI 平台這些低階的改進提供開發人員更安全的方法來保護資料，並同時建立了一套隨時間更容易維護和改良的子系統。由於 CNG 是隨插即用的架構，必要時也能加入新演算法，並且 CNG 會從應用程式層擷取這些提供者。這樣的結果使得 Windows Vista 和 Windows Server 2008 的設計提供了進階可發展的平台，利於開發啟用 PKI 的應用程式和服務。

註冊
Windows 中的憑證註冊體驗已透過全新的精靈式註冊工具、更完備的憑證到期處理、全新的 API、代理註冊功能，以及認證漫遊等而獲得大幅的改良。這些強化功能透過中央管理以及最不影響使用者的方式，使得在企業內部署憑證更加容易，進而降低的整體擁有成本。
從註冊的角度來看，最顯著的變更是 [圖 1] 和 [圖 2] 中所示的全新憑證註冊使用者介面。此使用者介面取代了舊式有限制的介面，這個舊版介面無法在註冊期間接受使用者的資料。全新的介面允許使用者在註冊期間輸入資料 (若系統管理員設定憑證範本加以要求的話)。該介面也針對使用者為什麼無法以指定範本註冊提供了清楚的解釋。
[圖 1] 選取可用的憑證
[圖 1] 選取可用的憑證
[圖 2] 無法使用的憑證的狀態
[圖 2] 無法使用的憑證的狀態
另外一項重要的註冊介面改良是到期憑證的處理方式。新介面提供使用者哪些憑證快到期的清楚資訊，並允許使用者輕鬆更新憑證或關閉從相同介面而來的警告。雖然系統管理員可透過自動註冊自動更新憑證，但這項警告功能對可能不常登入公司網路、但憑證已接近到期日的行動或離線使用者而言相當重要。
對於使用憑證註冊的開發人員，還有一個全新的 API 可用，它提供比舊式 ActiveX® 控制項 (xenroll.dll 和 scrdernl.dll) 更優越的明顯改進。全新的憑證註冊 API 提供適當定義的類別階層，不但更容易了解也更方便進行程式設計。這個全新的 API 同時取代了 Windows Vista 和 Windows Server 2008 中的 xenroll。
API 的這項變更對於開發人員和 IT 專家皆有影響，因為 Windows Vista 用戶端無法使用 Windows Server 2003 中提供的網頁式註冊功能。這是因為該些註冊頁 (預設存放在 /certsrv 虛擬目錄中) 採用的 xenroll 控制項已不存在於 Windows Vista 中。知識庫文章＜如何將憑證服務網頁註冊頁與 Windows Vista 搭配使用＞ (support.microsoft.com/kb/922706) 提供了因應措施的相關資訊。從 Windows Server 2003 到 Windows Vista 的自動註冊則不受影響。
在前版的 Windows Server 中，註冊代理程式並不限制可代表註冊的對象。換句話說，一旦將註冊代理程式功能提供給使用者，他便能夠代表樹系當中的其他任一使用者來註冊。這當然意謂著使用者可輕易代表現有的使用者並，以新建的憑證模擬該使用者，藉此提高他的權限。為了阻撓這類的威脅，註冊代理程式功能現在只提供給高度信任的個體。這種措施雖提高了安全性，卻也使得部署模型的彈性更低，因為只有少數個體具備代表其他使用者註冊的能力。地理位置分散的大型組織在將憑證部署給使用者時 (例如智慧卡) 因而面臨了更複雜的情況。
在 Windows Server 2008 中，可將註冊代理程式限制在更細微的層級上。限制條件可以根據能代表哪些使用者註冊，或是可對哪些範本註冊，如 [圖 3] 所示。例如，某組織現在可能會提供當地的 IT 專家代表其分公司所有使用者，而不能代表人事部的使用者來註冊的能力。註冊代理程式這種細微限制的方法允許企業更有效且更安全地在整個組織內委派註冊能力。
[圖 3] 註冊代理程式限制
[圖 3] 註冊代理程式限制
管理 PKI 最大的挑戰之一是管理四散於組織各裝置間的所有金鑰組。即使在不是很複雜的 PKI 環境中，任何特定的使用者都可能擁有好幾個不論他在哪裡登入都必須可以使用的不同金鑰組 (例如用於 EFS、無線網路的驗證和 S/MIME)。隨著行動運算和終端機服務漸漸普及，在網路複寫這些金鑰組也比以往更重要，以便讓使用者無論在何處登入都可以使用。雖然使用者隨身權杖 (例如智慧卡) 有助於解決部分問題，但組織仍然有無智慧卡，或是憑證不存在智慧卡上的使用者。認證漫遊透過將金鑰組和憑證安全地存放在 Active Directory® 內，讓使用者無論在何處登入都可以使用，因而解決了這些問題。
認證漫遊首先是在 Windows Server 2003 SP1 中推出，它允許憑證和金鑰在機器之間漫遊，而不需要用到漫遊使用者設定檔。Windows Vista 和 Windows Server 2008 中已預設包含這項功能，並且是實作在憑證服務用戶端 (CSC) 服務內。一些像是哪些憑證可以漫遊以及如何仲裁衝突等設定選項，都是透過群組原則來管理。在 Windows Vista 和 Windows Server 2008 上，CSC 服務也可以漫遊已儲存的使用者名稱和密碼。雖然 Windows Vista 中預設已包含此功能，也要注意認證漫遊其實在 Windows XP 上，還有在登入 Windows Server 2003 網域控制站 (需要部署更新，請參閱 support.microsoft.com/kb/907247) 時也完全受到支援。這表示您不必等 Windows Vista 部署完成便可利用這項技術。

管理性
Windows Server 2008 中已進行一些升級，更方便以高度可用的方式來安裝、監視和執行憑證授權單位 (CA) 服務，藉此提升其管理性。CA 安裝程式已與角色管理員工具相整合，並提供了有效率的方法安裝 CA 服務。過程當中的各個步驟皆已定義預設值，因此現在可在自動安裝模式下執行安裝。最後，安裝程式也具備更完善的診斷功能，更方便疑難排解可能發生的任何失敗或問題狀況。
監視 CA 服務在 Windows Server 2008 中也已經過大幅加強 (跟在 Windows Vista 中一樣具有整體憑證診斷功能)。除了橫跨整個產品更具彈性的事件基礎結構外，CA 服務本身現在也有個內建監視主控台，並且連接到 Systems Center Operations Manager 2007 (以前稱為 MOM) 來提供企業層級警告。企業 PKI 監視主控台比它之前的版本 (在 Windows Server 2003 AdminPak 中推出) 更先進。新的主控台是包含在產品本身，而且除了指定樹系內的所有 CA 外，它現在還可以監視線上憑證狀態通訊協定 (OCSP) URI。
Operations Manager Management Pack 為組織的 PKI 提供了主動式監視功能，包括內建以閾值為主的警告。例如，Management Pack 可用來監視憑證撤銷清單 (CRL) 的最新狀態，並在 CRL 接近到期前的特定天數或小時數前警告 PKI 系統管理員。最後，還有提供許多全新的效能計數器，幫助疑難排解和監視 CA 服務本身的整體效能。這些計數器可用來擷取每秒發行多少憑證之類的資料。
Windows Server 2008 中也推出了一項新功能：支援硬體叢集的 CA 服務。此項叢集支援利用 Microsoft Cluster Service (MSCS) 技術並支援雙節點主動/被動設定。叢集支援可讓您在高度可用的情況下執行一個執行個體基礎結構，並且可用在地理位置分散的叢集部署中。如果您選擇利用叢集支援，要注意光是叢集化 CA 並不表示就可以使用整個 PKI。雖然叢集有助於確保 CA 自己可供使用，但適當運作的 PKI 很可能有其他不直接在 CA 上執行的元件。比方說，CRL 發佈點 (CDP) 和 OCSP 回應程式也必須以高度可用的方式來執行，以確保撤銷能夠執行。除此之外，當利用硬體安全性模組 (HSM)，特別是網路型 HSM 時，也會產生可能的 PKI 失敗。叢集是為憑證授權單位本身提供高可用性一項強大的新功能，但並不是提供整個 PKI 部署可用性的萬靈丹。

撤銷
CRL 一直以來都是用來提供憑證的驗證檢查。這些 CRL 包括其有效期間尚未到期但不再受到信任的所有憑證的序號。例如，假設有名員工擁有一個到期日為 12/31/2008 的憑證，但該員工在 9/1/2007 離職，那麼他的憑證的序號就會放到 CRL 上。接著該 CRL 會提供在多重 CRL 發佈點 (CDP) 上，例如 HTTP 和輕量刑目錄存取通訊協定 (LDAP) 路徑。
CRL 雖然仍廣為採用，但它有一些主要的缺點。第一，CRL 是由 CA 定期發行 (通常是每天一次或兩次)。用戶端接著下載這些 CRL，然後快取它們，直到下個發行間隔為止。在這段快取期間，憑證可能會遭撤銷，讓用戶端對最新的狀態完全不知情。第二，在規模非常大的組織內，CRL 可能會增長到相當大的規模 (有時甚至超過 100MB)。在範圍分散的大型網路上散發這些檔案可能並不容易，甚或是不可能的，尤其是在分公司的案例或其他擁有限制頻寬的環境尤是如此。
為了矯正這些問題，於是誕生了從 RFC 2560 中定義而成的 OCSP，提供即時的方法來驗證憑證的狀態。OCSP 用戶端會執行在需要檢查分葉憑證有效性的機器上。用戶端軟體接著會參考 OCSP 回應程式，並送出訊息詢問分葉憑證的有效狀態。回應程式會檢查憑證的有效性，並即時回應用戶端。這個方法可避免快取和散發的問題。
OCSP 用戶端功能首度包含在 Windows Vista 中 (在過去需要安裝協力廠商軟體)，並且可透過群組原則來設定。Windows 在預設的情況下會嘗試使用 OCSP，但是會在沒有回應程式可用的情況下回到標準的 CRL 查詢。
為了因應這些要求，我們在 Windows Server 2008 中加入了 OCSP 回應程式。回應程式是透過角色管理員安裝，並且可藉由 Operations Manager 2007 Management Pack 來監視。由於用戶端和回應程式兩者皆遵守 OCSP 標準，因此可輕鬆將它們整合至現有已利用類似標準協力廠商元件的 OCSP 環境。例如，讓 Windows Vista 用戶端對協力廠商回應程式檢查憑證狀態，並由 Windows Server 2008 回應程式來回答協力廠商用戶端應用程式的查詢是完全受到支援的。此外，Windows OCSP 回應程式還可以回答任何標準相容 CA 所發行的憑證要求，而不一定需要 Windows Server 2008 CA (和一般以 Windows 為主的 CA)。

總結
Windows Vista 和 Windows Server 2008 中的 PKI 平台包含許多增強功能以及數項新功能，使得部署和操作 PKI 更安全且成本更低廉。全新的 CNG API 提供開發人員更簡易的程式設計環境，以及對新加密標準的支援。註冊方面的改良則允許組織更輕鬆地大量提供憑證，並安全地在企業內漫遊金鑰。同樣地，全新的 Management Pack 和 CA 叢集功能使得監視 CA 的狀態及確保高可用性更加容易。最後，撤銷檢查方面的改進採用以標準為主的方法，在不佔用 CRL 發佈的頻寬下，提供憑證的即時驗證。這促使 Windows Vista 和 Windows Server 2008 將 Windows PKI 平台帶入新境界。
PKI 增強功能資源
  • Windows PKI 首頁
  • 疑難排解 Windows Vista 上的 PKI 問題
  • 加密 API：下一代
  • 憑證註冊 API 如何將憑證服務註冊頁與 Windows Vista 搭配使用
  • 設定和疑難排解憑證服務用戶端 – 認證漫遊

John Morello 自 2000 年便任職於 Microsoft。身為資深的顧問，他曾為美國財星前百大 (Fortune 100) 企業及民間和國防部門設計安全解決方案。他目前擔任 Windows Server 部門的資深專案經理，負責開發安全性和隨處遠端存取技術。您可以在 blogs.technet.com/WinCAT 閱讀他的小組部落格。


 桌面檔案: 了解 RDP
桌面檔案
了解 RDP
Wes Miller

遠端桌面通訊協定 (或稱 RDP) 可讓您從遠端存取機器。這是一項非常實用的技術，而且幾年來無疑地拯救了無數的系統管理員。RDP 提供越來越完善的遠端存取支援具有悠久的歷史。它是在 1998 年於 Windows NT 4.0 終端機伺服器版
(TSE) 中引進，並且在之後幾乎每個 Windows® 版本中都有改進。
自 Windows 2000 開始，隨著終端機服務以 Windows 選用元件的形式推出，並且可供設定，讓您的系統用作為實際的終端機伺服器或使用我們現在所謂的遠端桌面，使得幾乎人人皆可輕鬆從遠端存取伺服器系統。Windows Server® 2003 和 Windows XP 提供了最純然的遠端桌面功能，允許您如在本機般地控制系統。如今，我每天都使用遠端桌面從遠端存取家用電腦和伺服器，也用它來使用 Media Center Extender。
Windows XP 與 Windows 之後的版本加入了遠端協助，此功能提供一種類似於遠端桌面的體驗，但主要是針對本機使用者向遠端使用者求助而設計的。隨著遠端存取支援不斷演進，Windows Vista® 現在允許遠端使用者在群組原則許可下提供遠端協助。
您會發現，遠端桌面將此一強大的功能帶入新境界，而且它所提供的一切將讓您受用無比。當然啦，遠端桌面還是有些限制，但它也有許多優點。現在讓我們一一來討論。

好的，壞的，還有超棒的
在 Windows XP 上 (除了 Media Center Edition 例外)，主要的限制是一次只能登入一個互動式使用者。Windows XP 中的快速切換使用者雖然允許登入一名以上的使用者，但只有一名使用者能使用滑鼠或鍵盤進行互動，無論是位於電腦的本機或遠端。而在 Windows Server 的版本中 (非執行為終端機伺服器)，一次則可以連接兩個遠端桌面工作階段。若要在 Windows Server 2003 中透過遠端桌面連線到實際的主控台工作階段，您以選用參數 /console 來啟動終端機服務用戶端應用程式 (MSTSC.exe)。主控台工作階段之所以非常重要是因為有些舊版的應用程式並沒有經過適當設計，將終端機服務工作階段列入考量，而往往只會在主控台工作階段 (工作階段 0) 上顯示對話方塊。[圖 1] 顯示在 Windows Server 2003、Windows XP 和 Windows Server 2003 遠端桌面登入主控台工作階段的使用者將強制授權，以確保只有許可的使用者數目進行互動式登入。
[圖 1] 登入工作階段 0
[圖 1] 登入工作階段 0
此外，網路頻寬和群組原則兩者也都會影響遠端桌面的體驗。Windows XP 能傳達高達 24 位元的解析度，並且會重新導向聲音、本機印表機、磁碟，還會提供剪貼簿供剪貼之用。由於遠端桌面取得螢幕所採用的方式，從遠端工作階段移除圖形項目 (主題、背景等) 大幅改進了可用的網路頻寬，進而使得工作階段更能回應使用者。Windows Vista 以此為基礎並加入了 32 位元解析度及額外的裝置重新導向。
有些事要注意的是，像是需要大量以圖形表示的作業，如果沒有足夠的頻寬，即使是最佳的遠端桌面工作階段也深具挑戰性，所以理當適當地規劃。

Windows Vista 中的新功能
Windows Vista 已大幅修改遠端桌面。我之前有提到，32 位元顯示解析度和字型平滑化都是最顯著的一些更動。另外一項相關的增強是跨多重監視器執行 Windows Vista 工作階段的功能，透過使用 /span 命令啟動終端機服務用戶端。請注意，/span 僅適用於 Windows Vista 遠端主機系統，用戶端上不同的監視器必須具備相同的解析度，而且都要經過校準。跨距的運作方式是把遠端系統 (用戶端) 當作一個大螢幕。這表示將應用程式最大化可能會產生您不預期的結果，包括位置不便而必須由使用者移動的對話方塊。
另外，如果您的連線用戶端是 Windows Vista 用戶端，而遠端系統是 Windows Vista 系統，您可以在 Windows Aero™ Glass 模式執行遠端工作階段的使用者介面 (只要本機系統支援 Aero Glass，遠端系統不支援也沒關係)。這是 Windows 遠端桌面重建的成果，以在用戶端系統 (如果用戶端是 Windows Vista 的話) 上執行絕大部分的視窗管理作業，藉此改進使用者體驗並同時降低頻寬使用。
Windows Vista 也帶來了一項重要的安全性增強，也就是網路層級驗證 (Network Level Authentication，NLA)。NLA 有助於防杜攔截式 (man-in-the-middle) 攻擊，在這類攻擊中惡意使用者會假冒伺服器，讓誤認為它是您正在連線的伺服器。NLA 也會改進驗證體驗，它採用的方法是不啟動完整的 Windows 使用者介面來進行驗證，對遠端系統的衝擊能降至最低並使它較不易遭到阻絕服務攻擊。NLA 要求在用戶端和遠端系統上都必須安裝 Windows Vista。[圖 2] 說明如何透過 RDP 6.0 用戶端來指定是否要強制驗證、是否要警告，或者是否要強迫要求。請注意，如果您連線的遠端系統是執行 Windows Vista 以前的 Windows 版本，應該要確保將它設為至少針對該次連線提出警告，否則將無法進行連線。
[圖 2] 進階連線喜好設定
[圖 2] 進階連線喜好設定
改進的資源重新導向 (不光只是磁碟和印表機) 是 Windows Vista 中另一項重大的 RDP 增強。只要遠端系統上有驅動程式且裝置支援重新導向，您就可以重新導向包括智慧卡在內的許多新裝置類型。其他的裝置類型可由其廠商支援。
Windows Vista 也透過 RDP 6.0 用戶端支援閘道伺服器。這讓使用者不需要 VPN 連線或任何協力廠商軟體，便可毫無阻礙地經由網際網路連線到辦公室的系統。[圖 3] 顯示終端機服務閘道伺服器設定。您可以把閘道伺服器想成類似 VPN 但是只需要 RDP 6.0 用戶端軟體，而不需要任何特定用戶端軟體(不需要任何 VPN 設定或專利軟體)。
[圖 3] 終端機服務閘道伺服器設定
[圖 3] 終端機服務閘道伺服器設定
Windows Vista 也包含了一項新功能的基礎結構，此功能稱為 RemoteApp™。RemoteApp 的作用如下：遠端桌面一般會讓您連線到整個 Windows 工作階段。但假若您只想執行 Microsoft® Word 或 Microsoft PowerPoint®，RemoteApp 的功能可以讓您這麼做。在 Windows Server 2008 中更將啟用強大應用程式共用的情況列入考量。
除此之外，Windows Vista 內也添加了對 Windows 桌面共用 API 的新支援，此 API 允許發行共用的合作應用程式。Microsoft 終端機伺服器小組在 blogs.msdn.com/ts/ archive/2007/03/23/writing-a-desktop-sharing-application.aspx 提供的範例應用程式，示範了 Windows 桌面共用 API 的運作方式。
Windows Vista 及之後的版本中有一項重大變更值得注意：工作階段 0 (標準上是指主控台工作階段，也就是舊版應用程式會顯示對話方塊訊息的工作階段) 一般是不供使用者存取。這減少了系統服務 (在工作階段 0 內執行，即使是非互動性) 與互動式使用者之間的互動。它也在焦點一直放在降低權限 (透過使用者帳戶控制和其他安全性增強) 的 Windows Vista 中，縮減了因過度授權的服務和互動式使用者所導致的攻擊表面。除非您是在 Windows Vista 上執行舊版軟體，並且它是在安裝時或當應用程式執行時行為異常，否則一般來說您並不需要擔心。
在何處尋找遠端桌面
遠端桌面要注意的一個重點在於它的應用之處。Windows XP Professional Media Center Edition 和 Tablet PC Edition 全都包含遠端桌面功能，Windows Server 2003 的所有版本也都包含此功能。Windows Vista 在商用入門版、商用進階版和旗艦版中包括遠端桌面功能。Windows 的家用版，包括 Windows XP 家用版，以及 Windows Vista 的所有家用版，皆不包含遠端桌面功能。

終端機服務用戶端
您可以在 go.microsoft.com/fwlink/?LinkId=91612 找到全新的 RDP 6.0 用戶端。如上所述，該用戶端包含連線到 RDP 6.0 (Windows Vista 或 Windows Server 2008) 系統所需的所有功能。
[圖 4] 中顯示 RDP 6.0 用戶端。MSTSC 中一項明顯的改進是快取認證的能力 — 而且如果是從 Windows Vista 連線到 Windows Vista 或 Windows Server 2008，透過群組原則還支援.單一登入 (SSO)。
[圖 4] RDP 6.0 用戶端
[圖 4] RDP 6.0 用戶端
MSTSC.exe 6.0 版具有眾多的命令列參數，如下所示。現在就來一一討論。
mstsc [<connection file>] [/v:<server[:port]>]
[/console] [/f[ullscreen]] [/w:<width>] [/h:<height>]
[/public] | [/span] [/edit "connection file"] [/migrate] [/?]
/v:<server[:port]> 可指定您想要連線的遠端電腦，以及一個選擇性連接埠值 (連接埠 3389 是預設，所有 Windows 版本上都可以變更此值)。
/console 可讓您連線到舊版 Windows 的主控台工作階段。此設定不適用於 Windows Vista 或 Windows Server 2008。
/f 以全螢幕模式啟動遠端桌面連線。
/w:<width> 指定遠端桌面連線視窗的寬度。
/h:<height> 指定遠端桌面視窗的高度。
/public 以公用模式執行遠端桌面連線。在公用模式中，RDP 用戶端並不會快取任何資料到本機系統。例如，當利用會議中心的系統連線到企業伺服器的時候請使用公用模式。
終端機服務其他神奇之處
您可能不是很熟悉其他兩種使用終端機服務元件的 Microsoft 技術是如何發揮魔力的。Windows XP 和 Windows Vista 的快速切換使用者這種運作方式可讓多名使用者登入相同的系統，但在使用者內容之間快速切換，無須強迫任何使用者登出。Windows Media Center Edition (以及 Windows Vista) 都是以這種基礎結構為本建置而成，以允許 Media Center Extenders (實際上是具備音訊/視訊轉譯技術和轉碼器的精簡型用戶端終端機) 在電視上經由有線或無線連線從遠端登入並呈現 Media Center 體驗。在 Windows XP 中，這兩者皆是非商務相關的案例 — 因為兩者都需要一個未加入網域且啟用快速切換使用者的系統。請謹記兩者在 Windows Vista 產品的商用版皆有提供，但應用上並非商務主流， 因此本文不加贅述。

/span 將遠端桌面寬度和高度與本機虛擬桌面比對，必要時橫跨多個監視器。請注意監視器必須全都具備相同的高度，且經過並排校準。
/edit 開啟指定的 .rdp 連線檔案以進行編輯。RDP 檔案是用來存放指定遠端系統的連線資訊。
/migrate 將使用戶端連線管理員建立的舊版連線檔案移到新的 .rdp 連線檔案。
MSTSC 用戶端當中的許多增強功能在使用終端機服務 ActiveX® 控制項，還有使用 TSMMC.msc 從相同主控台連線到多重系統時也都可以使用，說明如下。

Windows Server 2008 中的新功能
除了針對 Windows Vista 所提到的所有功能和變更之外，Windows Server 2008 還包括自己的遠端桌面功能： Terminal Services Web Access 和 Terminal Services Easy Print。
TS Web Access 允許某人使用網頁瀏覽器檢視在遠端伺服器啟用的程式 (如 RemoteApp) 清單，並輕鬆地按一下滑鼠按鍵藉由遠端桌面 Active 控制項啟動這些程式。從某些角度看來，您可以把這種體驗想成是類似於我在上個月的 Microsoft Desktop Optimization Pack 專欄提到的 SoftGrid Application Virtualization 體驗，當中遠端使用者不需要任何本機安裝的軟體便可輕鬆地啟動應用程式。觀察接下來幾年採用 SoftGrid 與終端機服務技術案例的比較，將會很有趣。
TS Easy Print 允許將發生在遠端 (主機) 系統上的所有印表機工作重新導向到本機 (用戶端) 系統。您可能以為印表機重新導向早已具備此功能，但實際上它沒有。Easy Print 在主機系統上並不需要任何其他的印表機驅動程式便能運作，也不需要任何使用者互動即可安裝裝置。若有本機印表機，則它在本機上的運作方式跟在遠端系統上沒有差別。為了讓 Easy Print 能順利運作，遠端系統必須執行 Windows Server 2008，並且用戶端和伺服器系統全都必須執行 Terminal Services 6.1 用戶端，並裝有 Microsoft .NET Framework 3.0 SP1。這兩者預計會在接近 Windows Server 2008 發行之時推出。

使用遠端桌面的秘訣
如前面所提，我每天都使用遠端桌面，更確切地說，是遠端桌面 Microsoft Management Console (MMC)。透過在此處將遠端系統新增成節點，您能迅速且輕鬆地從相同的使用者介面在多重系統之間切換。[圖 5] 顯示 MMC 體驗的樣貌。MMC 嵌入式管理單元是 Windows Server 2003 Administration Tools Pack 的一部分，最新的版本可從go.microsoft.com/fwlink/?LinkId=91685 取得。
[圖 5] MMC 頁面
[圖 5] MMC 頁面
另外一個我碰巧發現的有趣秘訣跟剪貼有關。跨用戶端和伺服器進行剪貼是 Windows XP 的新功能。為了讓它能夠順利操作，用戶端和伺服器都必須執行 Windows XP，而且剪貼簿也必須重新導向 (見 [圖 6])。Windows Vista 用戶端也同樣支援剪貼，只要在連線時啟用剪貼簿重新導向即可。
[圖 6] 本機資源設定
[圖 6] 本機資源設定
另外一個重點是可能派上用場的鍵盤快速鍵 (例如 Ctrl+Alt+Delete) 並不會經由網路傳輸到遠端系統，只能在本機系統上操作。若要傳送 Ctrl+Alt+Delete 到遠端系統，請在用戶端上按 Ctrl+Alt+End。
最後建議讀者定期造訪 Microsoft 終端機服務小組的部落格，網址是 blogs.msdn.com/ts，本人就經常閱讀這個的部落格。
我個人覺得遠端桌面和終端機服務讓我的生活快活許多，很難想像沒有它們的日子怎麼過。我希望本文對於 RDP 6.0 用戶端和 Windows Vista 與 Windows Server 2008 中的新功能提供了一些精華的剖析。

在此特別感謝終端機服務小組資深程式經理 Nelly Porter 針對本專欄研究所提供的協助。

Wes Miller在德州奧斯丁的 Pluck 公司 (www.pluck.com) 擔任開發經理。他之前任職於奧斯丁的 Winternals Software，並且曾在 Microsoft 擔任 Windows 的專案經理與產品經理。您可以透過電子郵件與 Wes 連絡：technet@getwired.com。


 現場筆記: IM 面試
現場筆記
IM 面試
Nathan G. Jensen

我們公司最近 在網路上登廣告尋找資深軟體工程師 (電子通勤族)，我們馬上被世界各地的求職信淹沒。身為開發組長，我的職務是與這一大群候選人進行技術面試。我厭煩地開始查看這一冗長的名單，掃視一個接一個自滿的履歷表。我從經驗得知這些求職者中大多數可能都不合格，這也是這麼有必要進行技術面試的原因。
正當我打算對這一長排的人一一進行電話面試時，我心想：「這得花上一個月的時間！」，然後我頓時靈機一動。天空掉下了一個從偉大的 IT 部門激發的頓悟、願景和構想：何不透過 IM 進行面試！真是太聰明了！ 而且成效非凡。
我開始透過 BCC 大量寄出電子郵件給所有的候選人，解釋需要進行一項徹底的技術面試，而通訊的方式是 Windows Live™ Messenger — 而不是電話。這封電子郵件過濾掉幾乎一半的求職者，或許是因為他們深知在技術面試沒辦法吹噓。對於剩下的求職者，我覺得 IM 聊天應該可行，因為我對標準的技術問題想要有直接的答案，乾淨俐落。在這個階段的面試過程，應變技巧和口說能力並不重要。
圖表 我開了好幾個 IM 視窗，像打地鼠一樣向他們個個發出技術問題。
圖表 我開了好幾個 IM 視窗，像打地鼠一樣向他們個個發出技術問題。
我的第一個評斷是這類高科技形式的面試不但省時又省錢，不用花電話費。而當求職者開始 Ping 我進行面試時，我發現我一次可以同步有效率地回覆好幾個人。這真的蠻好玩的， 我開了好幾個 IM 視窗，像打地鼠一樣向他們個個發出技術問題。而且因為我已經預先打好問題，這基本上是在操練我複製和剪貼的技巧。
我小心翼翼在網路上過濾我的問題，以防有人從網際網路上找到巧妙的解答。如果有人的答案看起來像是從發表的文章或官方文件抄來的，就會很明顯。此外，Windows Live Messenger 也可以追蹤每個回應的時間戳記，讓您稍後回頭判斷哪些候選人花太久的時間回答。
另外一個發生在我身上的「叫好」時刻是，當我身處這些並排的 IM 聊天視窗時，我的電話響了，然後我發現我可以一邊繼續面試一邊講電話。可說是達到了多執行緒效率的極致！
正當我以為這活兒再輕鬆也不過了，又出現了另一個優點。我對進行電話技術面試最不能忍受的是當我問一個簡短的問題並預期簡短的答案時，得到的卻是五分鐘的長篇大論。而使用 IM，就沒有這個問題，因為求職者傾向於使 IM 回覆簡明扼要。
在每個面試的最後，我都會儲存聊天記錄，以便作為稍後複閱和評估用。我也可以將這些記錄寄給我老闆，作客觀的比較。最後，整個過程花了幾個小時，根本不用花一整個禮拜與 25 名候選人進行電話面試。
我對這項新發現再滿意也不過了。我們雇用了快速發回正確答案的人，並與我老闆透過電話進行了一次合宜的「應變技巧」面試。這種方式迅速、有效又有建設性，並在職缺公佈的幾天後就找到了適當的人選。

Nathan G. Jensen 是一名網路開發組長兼自由作家，現居鹽湖城。您可以造訪 builderdash.com 與他連絡。


 Windows 機密文件: Windows 檔案總管無法處理文字
Windows 機密文件
Windows 檔案總管無法處理文字
Raymond Chen

從前 有個 Send to X PowerToy，它可以讓您做一些很炫的事，像是選取一堆檔案，按右鍵，然後選取 [以名稱傳送到剪貼簿]。如預期般，這個動作將選定檔案的名稱複製到剪貼簿。
這無疑是相當實用的 PowerToy，但它有什麼非得存在的理由呢？為什麼不能在 Windows® 檔案總管裡面直接複製檔案，然後將它們貼成文字來取得它們的檔名呢？或者直接將檔案從 Windows 檔案總管拖放到記事本來取得它們的檔名，不是更好嗎？
我們試過了，就是行不通。
無論是透過剪貼簿或拖放功能進行的資料傳輸，都是由 OLE 資料物件來傳達，藉由 IDataObject 介面來顯示。資料物件提供各種格式。， 有些剪貼簿格式，包括文字和點陣圖，自 Windows 以來就已經存在。而其他格式則是隨時間新增的。當檔案拖放功能首度在 Windows 引進時，是採用 HDROP 的形式。您可以把它傳遞給函數，例如 DragQueryFile，來擷取檔名。當從 Windows 檔案總管複製內容到剪貼簿時，所得到的資料物件除了其他項目之外，還提供上述的 HDROP、檔案內容和檔案群組描述元。其中一個資料物件所沒有提供的格式是文字。
當置放目標 (即可在其上置放物件的項目) 被告知有個資料物件被拖放到它上方，置放目標會詢問該資料物件「你有什麼好康的？」。該資料物件會依喜好的遞減順序列出它支援的所有格式來回應。換句話說，資料物件傳回的第一個格式是最能夠描述該物件的格式。然後是下一個最佳格式，依此類推，直到最後一個格式，不過是原始物件的淺色陰影。舉例來說，代表某些被拖曳出 Windows 檔案總管視窗的物件的資料物件可能會先提供 Shell 識別碼，因為這是 Windows 檔案總管視窗的內容幾近最完美的表示。清單接下來列出的可能是檔案群組描述元，再來是檔案內容，之後是 HDROP。
回到 1998 年，Shell 小組曾試過將純文字加入提供的格式清單中，把它放在清單的最尾端。這基本上是說：「你要是這麼絕望，至少可以從我 (也就是檔案清單) 身上挖出一些文字來」。不幸的是，結果變成一大堆程式都因為閃閃動人的文字格式而分了心，都說：「哇，我喜歡文字」。這些程式便直接採用文字格式，這種格式除了包含檔案清單之外，什麼都沒有。結果，當您從 Windows 檔案總管拖曳檔案並繼續把它置放到文件時，該程式只會插入檔名而不是插入檔案本身到文件中。
糟糕。
因為對應用程式相容性具有相當強的負面影響，這項變更於是被取消。因此，當您拖放或貼上從 Windows 檔案總管複製的檔案，Shell 資料物件便不將檔名提供為文字。
不過，Windows Vista® 提供您一種方法將路徑複製成文字，糾正這個由來已久的錯誤：按滑鼠右鍵時按住 Shift 鍵，以取得延伸快顯功能表。這會顯示全新的 [複製成路徑] 選項，完全不用借助 PowerToy。

Raymond Chen 的網站「The Old New Thing」以及採用相同標題的書籍 (Addison-Wesley，2007 年)，討論 Windows 的歷史和 Win32 程式設計。他離開操作機制的工作，另尋高就。