 TechNet Magazine January 2007

TechNet Magazine January 2007

SharePoint: Microsoft Office SharePoint Server 2007 概觀

新版 SharePoint 可在單一整合的平台中，滿足所有共同作業與資訊的管理需求。以下將介紹 MOSS 將改變企業營運方式的新功能與工具。

Thomas Rizzo SharePoint: 七個增強安全性的 SharePoint 新功能

隨著 SharePoint 取用更多企業資料，並在商務工作流程上變得更加不可或缺，安全性相對也更顯重要。讓我們來看看這七個 MOSS 新功能如何快速改善組織中的安全性。

Adam Robert Buenz SharePoint: 使用 SharePoint 企業搜尋找出所有資料

只要員工花時間在追蹤資訊，公司就會蒙受時間與金錢上的損失。企業搜尋可以幫助改善這種損失。不管資訊是藏在內部網站、位於商務應用程式產品線中，甚至在某個員工的腦中，MOSS 提供的企業搜尋工具都可以快速找到您要的資訊。

Matt Hester SharePoint: 功能強大的 SharePoint 命令列管理

別讓 GUI 拖累您的工作速度。有一個超級強大且更快速的方法可用來管理 SharePoint，讓您從命令提示視窗執行管理工作，甚至可撰寫一般程序的指令碼。

Todd Klindt SharePoint: 工作時使用 Wiki

Wiki 提供更有彈性的新共同作業方式，進而引發非結構化方法來進行思考和交換想法。而 MOSS 2007 可使組織中的 Wiki 實作變得極為容易。以下是在工作場所中開始建置與使用 Wiki 的須知。

Mauro Cardarelli 編輯的話: 有時候產業

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

Greg Steen 公用程式焦點: Internet Explorer Administration Kit

Lance Whitney SQL 問答集: 資料封存、連結的伺服器、測量頻寬，以及其他

Edited by Nancy Michell The Cable Guy: TCP 接收視窗自動微調

Joseph Davies Windows PowerShell: Windows PowerShell 建構

Don Jones 嗨，Scripting Guy！: 小心隔牆有耳

The Microsoft Scripting Guys Exchange 問答集: 所有的答案我們都有 (因為問題是我們出的)

KC Lemson and Paul Bowden 安全性監控: Windows Vista 中的加強服務

Wole Moses 桌面檔案: Windows Automated Installation Kit

Wes Miller 現場筆記: 幫姻親做技術支援

James Snell Windows 機密文件: 擺脫 DLL Hell

Raymond Chen


 SharePoint: Microsoft Office SharePoint Server 2007 概觀
SharePoint Thomas Rizzo

Microsoft Office SharePoint Server 2007 概觀
摘要:
  • SharePoint Web 整合
  • 內容管理
  • 商務智慧

有兩個現象正在改變企業的營運方式，Microsoft 稱之為「工作新世界」(New World of Work)。第一個現象是，合作的團隊經常是在不同的位置，
甚至工作的時段也不同。因此，為了延伸將全球工作性質相連起來的概念，共同作業軟體相對地極為重要。第二個現象是，數位資訊的使用呈爆炸性成長，同時與此商務資料相關的法規規則變得更為複雜。各公司致力於提供共同作業與共用能力，並確保資訊的安全性與隱私權。為了善用大部分的資訊與人員資產，連結各洲與各時區的通訊、有效的共同作業工具及安全資料處理等所有需求的解決方案就有絕對的重要性。
推出 Microsoft® Office SharePoint® Server (MOSS) 2007 之後，將各種技術合併為單一整合平台及企業服務集合。這些技術的範圍涵蓋共同作業、入口網站、企業搜尋、工作流程及商務流程。MOSS 意味著新一代的 SharePoint Portal Server (SPS)，其基礎為 Windows® SharePoint Services (WSS)。如果要瞭解 MOSS 與 WSS 的合作方式，簡單的方法是參考 [圖 1] 的圓餅圖。綠色陰影區域是由 WSS 所提供，而因為 MOSS 的基礎是 WSS，因此是由 MOSS 提供了整個圓餅圖。MOSS 特別提供入口網站、搜尋、企業內容管理、商務流程與表單及商務智慧區塊。
圖 1 以 MOSS 和 WSS 為基礎的服務
圖 1 以 MOSS 和 WSS 為基礎的服務
本文其餘部分將逐步解說 MOSS 中特別強調的技術，並討論如何使用這些進階功能讓使用者更具生產力。

當 SharePoint 遇見 Web 2.0
Web 2.0、Enterprise 2.0、複合應用程式、社群驅動的內容 - 不管您要如何稱呼這些項目，AJAX、RSS、部落格及 Wiki 等網際網路技術都讓使用者對於自己擁有的內容、其共同作業及資料流向使用者的方式有更大的自主權。使用者也希望在容易開發的前提下享有 Windows 的互動性，並使用 Web 所提供的各種好處。不過，將網際網路概念套用到企業設定時會引出新的問題。例如，您能夠驗證和信任服務的來源嗎？服務來源是否與現有基礎結構徹底整合？
MOSS 2007 透過提供文件管理與提醒的內建能力、增加部落格 (請參閱 [圖 2])、Wiki 及網頁組件等新功能以發佈與接收 RSS 摘要，帶給使用者許多新功能並改進現有的共同作業平台。使用 Microsoft Office Outlook® 2007 時，您可在 Outlook 與 Microsoft SharePoint 之間，執行行事曆、工作及連絡人等共同作業資料的雙向同步。如果要變更連絡人或移動約會，可在 Outlook 或 SharePoint 中進行變更，然後變更就會出現在另一個程式中。
圖 2 MOSS 2007 支援部落格與 Wiki
圖 2 MOSS 2007 支援部落格與 Wiki
Outlook 也支援文件庫離線功能。您可在中斷網路連線時對文件進行變更，然後在下次連線時，同步更新這些變更。
此外，MOSS 具有稽核與執行社群驅動內容相關之法規規則的功能，因此提供這些新功能並不會讓客戶犧牲管理能力或安全性。
MOSS 2007 中的主要進階功能是增進入口網站經驗個人化。MOSS 推出全新登場的「我的網站」，完整地運用了 SharePoint 網站的功能。使用者可針對個人與工作群組檢視，在「我的網站」下建立清單、文件庫、或子網站，並可自訂這些網站的檢視方式。「我的網站」也提供組織階層與同事追蹤的新網頁組件，包括同事之中繼資料 (例如同事的電話號碼、職稱、辦公室位置或其他資訊) 變更時發出的提醒。[圖 3] 顯示 MOSS 中自訂的「我的網站」。
圖 3 「我的網站」支援更 SharePoint 中心的功能
圖 3 「我的網站」支援更 SharePoint 中心的功能

企業搜尋
硬碟不大時，記得檔案的儲存位置通常不是問題。不過，由於儲存空間的快速成長，而且使用者相當懂得如何塞滿儲存空間，搜尋因此成為資訊架構的重要元件。MOSS 提供改善的企業存放庫搜尋功能，其建立概念是來自 SPS 2003 中提供的搜尋平台。MOSS 2007 接手繼續編目檔案共用、網站、Exchange Server 及 Lotus Notes 存放庫，這些都會視為非結構化資料存放庫。
SPS 較難提供的是搜尋結構化存放庫 (例如商務應用程式或關聯式資料庫) 的能力。此外，個別員工貢獻給組織的中繼資料和專業知識則補充了結構化與非結構化存放庫。MOSS 可透過稱為「商務資料目錄」(BDC) 的新技術來搜尋結構化存放庫，並可藉由新的「知識網路」來搜尋人員與專業知識。
BDC 提供連接、編目及搜尋系統的能力，這些系統則會透過 ADO.NET 提供者或 Web 服務公開其中的資料。您可建立 XML 設定檔，其中包含要連接之系統的必要資訊。這個資訊包括伺服器或端點的名稱、如何列舉及擷取該系統的物件、後端系統支援的任何篩選，以及後端資料對應至 SharePoint 資料的方法。您接著就可以像編目其他企業存放庫一樣，使用 SharePoint 中的企業搜尋功能來搜尋 BDC 資料。
SharePoint 預設會為後端系統的每個商務實體建立設定檔頁面。您可以像自訂 SharePoint 其他頁面一樣，自訂這些設定檔頁面。[圖 4] 顯示傳回商務資料及其他資訊的自訂設定檔頁面。另外，SharePoint 也包含一些商務資料網頁組件，這些網頁組件可讓您在頁面中顯示 BDC 資料，並可根據可用的中繼資料選擇性篩選這些頁面上的資料。由於商務資料會對應至 SharePoint，您可使用新的「商務資料」欄類型存取 SharePoint 清單內的資料。清單中所含的資料來自可信賴的後端系統，因此不會發生資料輸入錯誤和進行清除資料。
圖 4 將商務資料自後端服務取出，放到 SharePoint 頁面
圖 4 將商務資料自後端服務取出，放到 SharePoint 頁面
「知識網路」提供搜尋人員與專業知識的完整方法。企業內的社交網路可說是達到業務目標的途徑。在許多情況中，如果員工可找到專家協助解決所面對的業務問題，生產力就會提高。不過，如果您的同事圈中若不具備您所需的知識，您大概就會停止搜尋該專業知識。使用「知識網路」而不靠實際的社交網路時，軟體可協助建置組織的社交地圖，讓您可搜尋該社交網路。您也可以依關係距離排序搜尋的結果，並依據職稱或部門等中繼資料屬性進行篩選。
如同處理人員及其個人可識別資訊的任何解決方案一樣，「知識網路」提供了詳盡的安全性及隱私權模式，讓使用者可選擇加入網路，並可控制對網路中哪些人顯示哪些內容。「知識網路」會編目伺服器端資訊，例如 SharePoint 的「我的網站」。「知識網路」也有外掛到 Outlook 和即時訊息，以進行電子郵件及連絡人編目的用戶端元件。您可在用戶端控制進行編目的行程，以及控制從用戶端編目發佈到伺服器設定檔的內容。專業知識系統中，其中一個困難點是將人員的相關資料保持在最新的狀態。使用「知識網路」時，軟體會維護所有資訊的更新，同時可讓使用者控制該資料的可見性與可存取性。

企業內容管理
MOSS 2007 不只是管理文件這麼簡單，更透過支援管理記錄、網站內容及電子表單，提供了健全的企業內容管理解決方案。SharePoint 的記錄管理功能，包括建立受管理之存放庫的能力，該存放庫也滿足了法規需求，例如內容保留、稽核、條碼及標籤。除了 SharePoint 內部建立和儲存的資訊之外，透過與 Exchange Server 的緊密整合，記錄存放庫也包含將做為正式記錄的電子郵件。記錄管理功能可讓您透過搜尋記錄及合法持有來執行法律蒐證，因此您可打破保留原則 (視要求內容應留存比保留原則指定之時間更久的法律程序而定)。
在網站內容管理領域中，MOSS 2007 現今已取代 Microsoft Content Management Server 2002。隨著這項改變，SharePoint 現在可滿足內部網路、外部網路及網際網路網站等各種 Web 的需求。若要完整擁有 SharePoint 的這些功能，您只要在整個基礎結構上支援一項技術即可。SharePoint 支援內容部署，因此您可具有不同的測試伺服器及部署伺服器。此外，SharePoint 透過對 ASP.NET 2.0 主版頁面的支援，讓網站自訂變得更加簡便。針對多語言的情況，SharePoint 也支援網站變化，因此單一網站可具有多個變化，並可根據檢視網面之瀏覽器用戶端的語言設定自動重新導向。
對於電子表單，SharePoint 增加了稱為「InfoPath® 表單服務」的新功能，可讓您將 InfoPath 表單轉換成電子表單。此過程包括建立 InfoPath 表單、在設計程式中勾選若嘗試使用不會轉換成 Web 的功能就提出警告的方塊，以及將表單儲存到 SharePoint 清單內的信任位置。之後，使用者只要使用網頁瀏覽器即可檢視、編輯及提交表單。
SPS 2003 使用者要求的一項重大功能是改善工作流程功能，因為有許多客戶希望在 SharePoint 中儲存的內容上嵌入工作流程。MOSS 加入了 .NET Framework 3.0 的 Windows Workflow Foundation 新功能，達到的不僅是改善工作流程而已。這可讓您依據 Windows Workflow Foundation 建立工作流程，並使 SharePoint 內含這些工作流程功能。除了裝載 Windows Workflow Foundation 以外，SharePoint 也包含一些全新的工作流程，包括文件核准及文件簽章工作流程。[圖 5] 顯示如何設定 MOSS 中全新的工作流程。
圖 5 設定 MOSS 中的工作流程
圖 5 設定 MOSS 中的工作流程
MOSS 可讓您監視工作流程，因此您可以查看目前工作狀態以及歷程記錄。此外，SharePoint 與 Office 用戶端整合之後，使用者便可從 Office 應用程式內部起始工作流程。另外一個優點是，使用者可馬上看見指派給他們的工作流程工作，不必離開 Office 應用程式即可完成這些工作。
MOSS 的功能範圍也延伸到商務智慧入口網站。這些入口網站通常包含您可排序和篩選的報告、圖表及資料表格，其圖形功能更可幫助顯示資料狀態。有了 MOSS，只需使用商務智慧 (BI) 儀表板範本建立新頁面，就可以建立商務智慧入口網站。BI 儀表板預設包含關鍵效能指標 (KPI) 清單及 Excel® Web Access 網頁組件。
KPI 清單是 MOSS 的新清單類型，可讓您連接到 Excel、SQL Server™ Analysis Services、SharePoint 清單或或手動輸入資訊等資訊來源，並可讓您追蹤這些資料來源的 KPI。有了 KPI 清單，您就可以使用視覺指標查看目前值、目標值、趨勢及狀態。
Excel Web Access 是 MOSS 中 Excel Services 的一部分，它是伺服器端版本的 Excel，可讓您透過網頁瀏覽器計算及顯示 Excel 資訊。若要使用 Excel Services，您可直接從 Excel 桌面應用程式將試算表發佈到 SharePoint 中的信任位置。使用者接著可使用網頁瀏覽器檢視 Excel 的試算表或圖表。之後若有任何參數或篩選，使用者可利用這些功能修改 Excel 資訊的網頁瀏覽器轉譯。

瞭解詳情
雖然這裡只提到 MOSS 所有新功能的一小部分，不過有許多線上資源可供您進一步瞭解這些新功能。建議您以 SharePoint 團隊部落格及 SharePoint Server TechCenter 作為學習起點。

Thomas Rizzo 是 Microsoft SharePoint 團隊的經理。Tom 先前服務於 SQL Server 及 Exchange Server 團隊。他同時也是寫過四本書的作家。他的電子郵件為 thomriz@microsoft.com。
© 2007 Microsoft Corporation and CMP Media, LLC. 保留所有權利；未經允許，嚴禁部分或全部複製.


 SharePoint: 七個增強安全性的 SharePoint 新功能
SharePoint Adam Robert Buenz

七個增強安全性的 SharePoint 新功能
摘要:
  • 驗證提供者
  • 原生加密功能
  • 替代的存取對應及區域
  • 資訊權限管理

為 Microsoft Office SharePoint Server (MOSS) 2007 環境實作有效的安全性措施，可大幅降低管理負擔，同時讓團隊
在安全的環境中共同合作及共用商務資料。MOSS 2007 內建的創新驗證功能，可讓您透過自訂驗證提供者、網際網路型表單驗證及 Web 單一登入 (SSO)，進而使用 Web 安全性標準。另外，MOSS 提供細密的商務資產 (例如 2007 Microsoft® Office 系統檔案) 權限管理、原生加密功能及降低的用戶端驗證責任。
以下是 MOSS 2007 提供的七個安全性功能，這些功能立即可用。
1. 隨插即用的驗證提供者 驗證提供者是可讓您驗證使用者認證的元件。設定網際網路式 SharePoint® 驗證時，針對 MOSS 環境設定該驗證提供者是相當重要的安全性決策。MOSS 仍支援舊版 SharePoint 提供的 Windows® 驗證方法 (包括整合式驗證與基本驗證，同時新增摘要驗證)，可將使用者解析為實際的 Windows 身分識別。不過，解析為 Windows 身分識別不再是唯一的選項。您甚至可運用多個驗證提供者，例如，讓內部使用者經由 Windows 驗證登入，而外部使用者則使用不同的隨插即用提供者登入。
MOSS 的基礎是 ASP.NET 2.0，它可讓您使用隨插即用驗證提供者。只要有對應至成員資料儲存區的 ASP.NET 2.0 成員資格提供者 (以及選用的角色提供者)，即可讓您使用可設定的目錄來儲存使用者資訊。視對應至成員資格提供者之 machine.config 檔案中儲存的節點值而定，可雜湊、加密或以純文字儲存隨插即用的提供者認證。有幾個成員資格提供者可搭配 MOSS 使用，其中某些是 LDAP V3 成員資格提供者 (隨附於 MOSS)，加上 SQL Server™ 成員資格提供者及 ASP.NET 2.0 提供的 Active Directory® 成員資格提供者。
可實作的成員資格與角色提供者不限於產品隨附的提供者。使用 ASP.NET 2.0 成員資格架構時，您就可以建立使用成員資格儲存區 (如 Microsoft Access™ 或 Oracle 資料庫、XML 檔或甚至純文字檔) 的自訂提供者。自訂驗證提供者是繼承自 ASP.NET MembershipProvider 介面，接著繼承自 ProviderBase 類別 (請參閱 [圖 1])。
圖 1 .NET 成員資格類別階層
圖 1 .NET 成員資格類別階層
配合 MOSS 使用 ASP.NET 2.0 驗證時 (相對於 Windows 驗證)，您應該考量一些相關事項。對許多使用者來說，最重大的影響是 Microsoft Office 用戶端的互通性會降低，造成此情況的原因是 MOSS 與 Office 用戶端間的 Web 服務通訊，原本是針對配合 Windows 身分識別使用而設計。
另外，某些 MOSS 服務 (尤其是與編目與索引內容相關的服務) 即使使用隨插即用提供者，也必須使用 Windows 帳戶。若要使用未解析為 Windows 身分識別的驗證類型，必須建立使用 Windows 驗證的額外 MOSS 區域 (稍後會在本文中對區域加以說明)。
如果您具有根據用戶端配備公開金鑰或憑證之安全性機制 (例如智慧卡) 的託管 PKI 基礎結構，視實作而定，通常會要求解析 Windows 身分識別，以進行適當的用戶端憑證接受與授權。而這會要求建立額外 MOSS 區域或其他驗證設定。
2. 表單驗證及 Web 單一登入 MOSS 2007 另一項令人興奮的驗證機制，是基於 ASP.NET 2.0 的表單驗證。舊版 SharePoint 中，這只能透過自訂網際網路伺服器應用程式發展介面 (ISAPI) 延伸模組，或使用 IIS 6.0 Toolkit 的 CustomAuth ISAPI 延伸模組才能做到。而且即使使用這些解決方案，SharePoint 仍需要將帳戶解析回 Windows 使用者身分識別，因而限制了周邊式部署。
MOSS 的表單驗證使用隨插即用驗證與角色提供者，可啟用網際網路式安全性機制，就不會限制客戶使用舊式的 NT 登入提示。相對地，您可針對使用者的需要建立自訂的登入程序。若要進一步保護驗證程序，可對表單驗證 Cookie 及驗證票證進行加密並防止遭竄改。
表單身分識別提供者不必要在本機上，並且可外掛到外部身分識別管理系統，進而提供使用者認證的驗證。此功能稱為 Web 單一登入，它會使用 HTTP 模組進行外部驗證。在此情況中，您可聯合組織與商務合作夥伴間的身分識別，讓商務合作夥伴可使用其組織登入並對 MOSS 實作進行驗證。
3. 加密 MOSS 應用程式連線字串 將重要的連線字串資訊以純文字的形式放在 web.config 檔案中，不是好的安全性作法。公開的資訊可讓使用者將物件執行個體建立到 SQL 資料庫伺服器中，並讓使用者使用重要的資料。不過，使用內建的 ASP.NET 2.0 功能，可利用 Windows 資料保護 API (DPAPI) 或 RSA 加密這兩項技術對資料進行加密。DPAPI 會利用 Windows 的內建密碼編譯功能，以 MOSS 伺服器機器金鑰進行加密和解密。RSA 加密可讓您使用公開金鑰演算法，但需要適當的加密金鑰容器，因此會增加負擔。
對於 MOSS 2007 (更具體來說，這是指隨插即用的 ASP.NET 2.0 SQL Server 驗證提供者)，您需要以密碼文字加密 <connectionStrings> 節點，因為它是可能發生最重大安全性缺口的位置：
<connectionStrings>
<add name="MembershipConnectionString"
     connectionString="connectionString"/>
</connectionStrings>
使用 DPAPI 加密相當簡單而且是最容易的實作方式，因為它會對虛擬目錄或實體目錄使用原生機器金鑰加密。有其他程式化方法可對此進行實作，但在命令提示視窗中使用下列命令是最簡便的方法：
aspnet_regiis.exe -pe section -app MOSS_virtual_directory -prov provider

aspnet_regiis.exe -pef section MOSS_physical_directory -prov provider
由於主要只關心連線字串節點加密的實作，您可指定區段參數，只對該特定區段進行加密：
aspnet_regiis.exe -pef "connectionStrings" "C:\Inetpub\wwwroot\WssVirtual " -prov "Provider"

aspnet_regiis.exe -pe "connectionStrings" -app "/MOSSAppinstance" -prov "Provider"
實作後，格式正確的 XML 密碼值會取代機密資訊的節點：
<connectionStrings confiProtectionProvider=
"EncryptionProvider">
<EncryptedData>
<CipherData>
<CipherValue>XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
</CipherValue>
<CipherData>
</EncryptedData>
</connectionStrings>
就像整個 MOSS 架構一樣，這是隨插即用的模型，您可建立自己的加密提供者以管理相關 MOSS 設定檔 (例如 web.config 或 machine.config) 的密碼文字，而且可不限於使用 RSA 或 DPAPI 加密。
使用加密確實會有些後果。由於您使用本機機器金鑰進行加密，因此只能在建立此設定節點所在的 MOSS 伺服器上使用此設定節點，否則加密程序會失敗。如果入侵者獲得伺服器的存取權，他們就會擷取機器金鑰，並解密連線字串。解密程序也會對應用程式效能造成些微影響。
4. 替代的存取對應及區域替代的存取對應 (AAM) 十分重要，尤其在為 SharePoint 環境設定多個進入位置時更為重要。AAM 可讓您指定不同的 URL，使用者可透過這些 URL 存取單一實體網站 (請參閱 [圖 2] 中的圖表)。AAM 可將使用者導向 MOSS 網站的相同實體路徑，但使用不同的驗證提供者及 Web 應用程式安全性原則。AAM 也會補償使用不同網域、反向 Proxy 及其他 URL 重新導向機制。預設已為您對應 MOSS 使用的 URL，但此 URL 可延伸到 SharePoint 架構師明確建立的其他 URL，以處理不同的進入方法。若要確保適當的內部及公用 URL 對應運作正常，您必須使用 AAM。SQL Server 驗證提供者
讓我們逐一查看隨插即用之 ASP.NET 2.0 SQL Server 驗證提供者的實作方式。此提供者會搭配使用加密的 web.config 連線字串與表單驗證，是非常典型的周邊 (外部網路) MOSS 部署實作。
啟用隨插即用之 SQL Server 提供者的第一步，是確定在適當的 SQL Server 執行個體上，建立使用者認證儲存的資料庫，讓服務提供者具有可用作成員資格資料儲存區的位置。若要執行此工作，請在 [執行] 對話方塊或命令提示視窗中執行下列命令：
%WINDIR%\Microsoft.NET\Framework\v2.0.50727\aspnet_regsql
這會顯示 SQL Server 精靈，其中可讓您設定資料庫以儲存成員資料。
因為您很可能尚未針對資料庫儲存設定成員資格提供者，請針對應用程式服務設定 SQL Server，因此可建立新資料庫。若您已有資料庫，可加入相關資訊 (如果資料庫合併是組織目標的話)。
SQL 連線字串將連線至此 SQL 執行個體，因此您應將此資料庫設定為使用 SQL Server 驗證 (請參閱 [圖 A])。此時，我將使用純文字使用者名稱及密碼，因為稍後在設定程序中，我將告訴您如何使用原生 ASP.NET 2.0 加密功能，以密碼文字隱藏此私密連線資訊，避免資訊遭竊用。

建立登入表單
表單驗證常用於位在周邊網路，對所有網際網路使用者公開的對外網站。顧及這點，建立外部網站集合時，最好選擇網際網路平台 MOSS 範本。使用此範本時，您不需要手動建立登入表單。如果要擴充目前的網站或要實作自訂登入表單，使用 Microsoft Visual Studio® 2005 自行建立登入表單可說是相當容易。需要編寫的程式碼可說相當少。
首先，透過 Visual Studio 將網站集合實體目錄以網站形式開啟，該目錄通常儲存於以下位置：
C:\Inetpub\wwwroot\wss\VirtualDirectories\<GUID>
第一步是新增 default.aspx 頁面，因為這是 IIS 虛擬伺服器設定中的預設文件。使用 [方案總管] 中的 [新增項目] 命令，然後透過 Visual Studio 工具箱，將登入控制項新增至新建的網頁表單表面。
圖 b透過 [應用程式管理] 畫面選擇驗證提供者
在同一頁面上，請確定成員資格提供者區段中用於驗證的提供者，已指定為 AspNetSqlMembershipProvider，而且角色管理員名稱為 AspNetSqlRoleProvider。瀏覽至 /_layouts/setanon.aspx 並選取整個網站或最適合您需求的安全性設定，就可以指定使用者可匿名存取的位置。
您可修改 web.config 來進行重大變更。請確定 <authentication> 元素設為使用 <forms> 元素。從 Windows 驗證切換為表單驗證時，通常會自動設定這項，而且這可說是登入程序的重要部分。這是因為它帶有使用者驗證票證的相關資料，而此票證會透過 ASP.NET 2.0 驗證方法驗證頁面回傳上的使用者認證。但是 web.config 仍沒有察覺到使用者儲存區的 SQL 連線，因此您必須新增連線字串項目以連線至成員資格資料庫：
<connectionStrings>
<remove name="LocalSqlServer" />
<add name="LocalSqlServer" connectionString="Server=SQLserver;
Database=aspnetdb;uid=username;
pwd=password;" providerName="System.Data.SqlClient" />
</connectionStrings>
對管理中心網站 web.config 檔案進行相同修改以促使驗證類型維持一致，並確保 PeoplePickerWildCard 解析為 AspNetSqlMembershipProvider，使新增使用者的查閱控制項知道要搜尋的正確路徑。
由於您對後端 XML 檔進行變更，MOSS 會要求您重設 IIS。一旦連線至 SQL Server 資料庫，即可輕鬆瀏覽網站，唯一的差別是您不是網站集合擁有者可管理內容。在 WAT 中，前往 [安全性] 索引標籤並新增使用者，然後前往 [SharePoint 網站管理] 並在 [網站集合管理員] 下新增適當的使用者，以將此使用者設成網站集合管理員。由於先前修改了 web.config 中的 peoplepicker 節點，此名稱應該是正確的。
最後，開啟 [執行] 對話方塊並執行下列命令，即可以 DPAPI 加密連線字串：
aspnet_regiis.exe -pef "connectionStrings"
"C:\Inetpub\wwwroot\WssVirtual\<GUID> "
—prov "DataProtectionConfigurationProvider"
作業順利完成時，會顯示確認的對話方塊。

圖 2 URL 對應與區域
圖 2 URL 對應與區域
在 MOSS 中，區域是新功能，並可提高 AAM 提供之網站對應的控制。區域可讓您視使用者連線至內容所使用的 AAM URL 對應而定，將不同的驗證提供者對應到相同的實體路徑與 MOSS 內容。指定 AAM URL 對應時，雖然區域不一定要繫結到驗證機制，但建議您這麼做。對應至驗證提供者頁面中未定義區域的 AAM URL，會使用預設區域的安全性設定。
區域確實需要一些規劃，因為區域會嚴重影響多個 URL 進入點，並使用入口網站之人員的驗證與路由方式。擴充新 Web 應用程式時，可在設定的「負載平衡 URL」區段下指定要使用的區域 (請參閱 [圖 3])。建議您將最可公開存取的 URL (例如，您計劃對網際網路公開的 URL) 放在預設區域，因為這是 SharePoint 在無法完全確定您位於哪個區域時會使用的 URL。
圖 3 設定 MOSS 區域
圖 3 設定 MOSS 區域
在每個區域內，您可繫結定義區域中使用者之權限設定的全域 Web 應用程式安全性原則。這可讓您集中管理大規模的權限修改。Web 應用程式通常會在各網站集合中併入幾個網站，而這些網站的權限管理在應用程式變大變複雜時，可能會發生問題。MOSS 2007 可使用繫結原則設定 (例如應用程式中特定使用者或群組的完整存取權限、完整讀取權限、拒絕寫入權限或拒絕全部權限) 的全域安全性原則。這些原則可覆寫 MOSS 所提供並且從 SharePoint 管理中心介面管理的細密權限設定，因此您應謹慎規劃您的設定。
綜合上列所述，如 AAM 設定中所定義，對外網站可能具有兩個 URL：一個供企業使用者進入，另一個供外部使用者進入。每個都有唯一的 URL (例如內部使用者使用的是 contoso)，而信任的外部合作夥伴則使用 extranet.contoso.com。雖然這兩個 URL 都會對應到相同內容，但每一個都可透過自己的區域，使用自己的驗證提供者與自己的應用程式安全性原則來存取網站。對內部 URL 設定內部網路區域，可讓內部使用者解析其網域驗證的 Windows 身分識別，而外部合作夥伴則透過外部網路區域，經由可讓他們使用其組織之使用者認證的 Web 單一登入驗證來進行登入。利用將 Web 應用程式安全性原則繫結到區域的能力，不必針對個別物件手動設定即可提供完整讀取權限給所有信任的外部使用者。
5. 安全共同作業的目標內容 鎖定 SharePoint 網站集合，表示使用者只會處理您授權可存取的資訊。新的彈性權限機制可提高對 MOSS 環境中儲存之各類商務資訊的控制。
MOSS 2007 提供您將身分識別繫結到特定物件 (不論是網站集合、個別網站、文件庫、子資料夾、清單或個別文件或清單項目) 的選項。這可對該項目執行細密的存取控制及明確成員資格，這兩個動作都會拒絕存取並調整使用者介面，讓使用者看不到無法存取的項目。此 MOSS 功能稱為項目層級安全性 (ILS) 或安全保護的物件 (SO)。MOSS 物件權限具有階層性，可從個別物件 (例如清單項目) 向上延展到更大的項目 (例如清單或文件庫)。您可實作權限繼承，讓較低層的子物件選擇性自較高層的父物件中繼承權限。您可授與 33 個獨特的預設權限給使用者或 SharePoint 群組，而每個權限都可繫結到物件。您也可建立新的權限等級。
例如，在專案管理網站內，您可以只允許開發人員及專案經理存取機密的開發資料，例如文件庫中儲存的 Microsoft Word 文件中的設計規格與程式碼技術。文件庫的權限預設繼承自網站權限，但可將權限修改成只有開發人員及專案經理可以存取，或甚至修改成只對適當的專案經理及開發團隊顯示每份 Word 文件並供其存取。相對地，您可在項目、資料夾或文件庫層級中完全公開非機密的資料。
您甚至可對事件項目 (例如事件清單中的專案到期日) 指定權限，以確保只有特定成員可以看到特定事件。而且，ILS 功能會擴充到傳回的搜尋結果，可以只傳回與執行搜尋之人員的安全性內容對應的物件。實行這些控制功能之後，就可以將使用者介面修整成獨一無二的使用者內容。
MOSS 2007 中大幅改善了權限管理架構。您可針對 SharePoint 群組與網域群組以及針對個人層級設定權限。預設會提供一些群組，如擁有人 (獲得完全控制權)、訪客 (獲得參與者權限)，以及成員 (獲得讀取權限)。您可將個人或網域群組指派到這些預設群組或指派到自訂群組，並在具有各種獨特權限階層的網站集合層級上，建立及管理這些自訂群組。
根據角色建立群組時，您可建立「開發人員」及「專案經理」群組。接著，您可以指派細密的權限，讓開發人員上載相關程式碼文件，並授與讀取及核准權限給專案經理，讓專案經理評估及批准這些文件。整個網站集合的群組成員資格會保持一致，因此建立的群組可跨多個不同專案網站重複使用。
6. 整合隨插即用的單一登入 在一般運算環境中，使用者可能會存取數量不一的協力廠商應用程式，而由於每個應用程式都有自己的驗證準則，便導致各種安全性問題和設定密碼的麻煩。MOSS SSO 服務透過提供加密的使用者認證後端快取以對應至連線的商務系統，協助減輕此問題。這可協助擷取業務關鍵資訊，透過商務資料目錄 (BDC) 或 SharePoint 資料檢視網頁組件 (DVWP) 等 MOSS 機制顯示這些資訊。
如同其他已討論的應用程式架構功能一樣，MOSS SSO 提供者屬於隨插即用；您可在 MOSS 隨附的 SSO 提供者 (SpsSsoProvider) 之外指定獨特的 SSO 提供者，不過每個商務系統一次只能在環境中登錄一個 SSO 提供者。
7. 資訊權限管理 (IRM) 對於需要處理機密性資料的公司，尤其是遵守 California Senate Bill No. 1386、Sarbanes-Oxley (SOX Compliance) 及醫療保險責任法案 (HIPAA) 等法規的公司來說，即使商務資訊為離線但仍在用戶端層級保護資訊是一相當令人關切的議題。伺服器端資訊權限管理 (IRM) 會與 MOSS 存放庫整合，將提供以 Windows Rights Management (WRM) 架構為基礎的通用解決方案。IRM 可在文件層級中增加存取限制，如此一來，不管文件儲存在哪裡以及嘗試開啟文件的是誰，都可讓您更嚴謹地控制商務資料。通用的 IRM 實作可讓您只允許經過授權的檢視或列印動作，但此實作可延伸到其他情況：例如經過一段期間後要求使用者認證驗證、不允許使用者上載未能利用 IRM 的資產、排定時間一到即捨棄限制原則的到期標籤，以及繫結到全域組織 IRM 權限原則。
保護裝置會提供 IRM 功能，而且有一些保護裝置會隨著 MOSS 2007 安裝。保護裝置是管理檔案類型之加密程序的應用程式；通常在 MOSS 內儲存的檔案全部都有相對應的保護裝置 (一開始就會支援 Microsoft Office 系統檔案以及 OpenXML 檔案格式)。不過就像 MOSS 內的其他提供者一樣，應用程式架構屬於隨插即用，因此您可實作其他檔案類型的自訂保護裝置。
實作 IRM 的第一步是確定您符合 MOSS 環境中的所有需求。您必須在每部 MOSS 前端網頁伺服器上，安裝 WRM 服務用戶端，而且 Microsoft Rights Management Services (RMS) 必須連線到 MOSS 前端網頁伺服器。然後您必須使用 Active Directory 中的預設值或指定位置，透過 SharePoint 管理中心為 MOSS 指定要比對的 RMS 伺服器。
IRM 會直接使用 SharePoint 資料儲存區結構 (例如文件庫)，以維護權限。使用者瀏覽至啟用 IRM 的文件庫並嘗試下載文件時，MOSS 會將對文件庫設定的權限繫結到文件 (請參閱 [圖 4])。因此，MOSS 與文件權限間有 1:1 對應，表示可將與文件相關的 SharePoint 角色轉譯為文件本身的 IRM 權限等級。
圖 4 從文件庫轉換 IRM 權限
圖 4 從文件庫轉換 IRM 權限
文件會以本機加密方式進行離線防護並維持在此狀態中，直到文件上載回文件庫中為止。上載文件後，文件會保持未加密的形式，以便 SharePoint 收集程式可索引其內容，以供全文搜尋使用 (不過，所有的使用者帳戶，皆不能存取未加密的內容)。
MOSS 2007 提供的許多新功能，可幫助您在組織中實施有效的安全性，而不會增加太多管理負擔。更棒的是，這些功能相當有彈性，可允許讓使用者存取所需資訊的自訂作業。如需簡單範例，請參閱資訊看板「SQL Server 驗證提供者」。

Adam Robert Buenz 是 ARB Security Solutions LLC (sharepointsecurity.com) 的 SharePoint 架構師及開發人員。他特別關心以安全性為中心的共同作業環境。他的電子郵件為 adam@sharepointsecurity.com。


 SharePoint: 使用 SharePoint 企業搜尋找出所有資料
SharePoint Matt Hester

使用 SharePoint 企業搜尋找出所有資料
摘要:
  • 企業搜尋解決方案架構
  • 商務資料索引與查詢
  • LOB 資料與人員的知識

您可能經常在擔心伺服器的執行時間與可用性、軟體更新及安全性這類的事情。但是，即使您的基礎結構可完美地運作 (每個應用程式和
每個檔案都可以跨網路使用)，使用者的生產力仍可能不佳。的確，使用者需要的所有資料都可使用，但要花多久時間找到呢？
目前已有許多方法可幫助人們處理資訊超載。桌面搜尋工具可讓您輕鬆找到您所需的資訊，即使這些資訊與其他儲存在系統上的資料混在一起也沒有影響。請參閱我在 2006 年 8 月發表的文章＜使用 Windows Desktop Search 尋找任何資料＞(英文)。但是，放在入口網站、儲存於共用位置和在商務應用程式中處理的所有資料呢？更別提員工腦袋中的寶貴資訊了。此資訊對您的使用者非常重要，他們需要此資料來執行工作，而且使用者需要盡快取得此資訊，才能及時且準確地下達商務決策。但是，請想一下網路上散佈的資料，使用者得花多久的時間才能找到且收集齊全？現在，請思考一下這對您企業盈虧的潛在影響。
您需要減少使用者花在搜尋企業各處所存資訊的時間。要怎麼做呢？答案很簡單，就是使用提供企業搜尋功能的搜尋引擎。
企業搜尋幾乎可以在組織的任何位置中找到所存放的資訊。不管是尋找桌上型電腦所儲存的資料、內部網站內的資料、鎖在商務 (LOB) 應用程式中或員工腦袋中的資料，企業搜尋工具都能提供協助。(別擔心，您不用在使用者的大腦中植入任何晶片)。
企業搜尋解決方案結合桌面搜尋與快速的內部網路搜尋功能。最後，企業搜尋工具必須可以執行聯盟搜尋，這種搜尋可透過單一查詢存取多個資料來源。使用者會在單一介面上輸入查詢。不過，查詢會送到數個不同的搜尋引擎，之後會在某個彙總檢視中顯示結果。
我將在本文中討論新一代 Microsoft SharePoint 解決方案 Microsoft® Office SharePoint® Server 2007 (MOSS 2007) 如何提供功能強大的搜尋引擎，幫助您解決組織中的資訊孤島問題。MOSS 2007 提供許多前版的改良功能、完全重新開發的元件，以及一些全新的功能。以下將討論一些主要元件 (例如索引、傳播、相關性及內容來源)，以及這些主要元件如何幫助您為使用者提供更好的企業搜尋功能。

使用 SharePoint 搜尋企業
下列四個版本提供了企業搜尋，而這四個版本之間有極大的差別：Microsoft Office SharePoint Server 2007 for Search Standard Edition、Microsoft Office SharePoint Server 2007 for Search Enterprise Edition、Microsoft Office SharePoint Server 2007 Standard 以及 Microsoft Office SharePoint Server 2007 Enterprise。
兩個搜尋版與 SharePoint Server 完整版的主要差別，在於兩個搜尋版不含人員搜尋功能 (此功能也包括與 MOSS 2007 知識網路的整合)、商務資料目錄，或具有可自訂索引標籤的增強型搜尋中心。[圖 1] 詳細說明這些主要差別。
UI 提供了一些新功能，包括「您的意思是？」功能。此功能是網際網路搜尋引擎的支柱，會在您可能拼錯常見搜尋字詞時提出建議 (請參閱 [圖 2])。介面也包括搜尋結果醒目提示與「首選」的完整支援。但這只是新搜尋功能的表面而已。
圖 2 SharePoint 搜尋中的「您的意思是...」新功能
圖 2 SharePoint 搜尋中的「您的意思是...」新功能

尋找人員知識
其中一個最有趣的新功能，是搜尋具備特定知識與專門技術的人員。這樣可讓使用者取用組織各地員工所擁有的知識，這是解決資訊孤島問題的重要步驟。
若要啟用此功能，可對任何輕量型目錄存取通訊協定 (LDAP) 目錄 (包括 Active Directory® 通訊群組清單及 SharePoint 使用者群組) 執行索引及搜尋。MOSS 實際上不會直接搜尋 LDAP 目錄；若要啟用人員搜尋，必須將 LDAP 資訊匯入 MOSS。(您也可跨整個企業基礎結構執行搜尋)。
搜尋結果可根據個人的「關係距離」分組。「關係距離」是指使用者職位的距離 (業務助理可能不會打電話給 CFO) 與一般利害關係。[圖 3] 顯示人員搜尋的結果。
圖 3 尋找具有相關知識的同事
圖 3 尋找具有相關知識的同事

搜尋商務資料
SharePoint 也可以索引各種類型的商務資料。這包括商務應用程式產品線 (例如 HR 應用程式、CRM、費用報告等等)。傳統上，在 LOB 應用程式的一般介面之外難以存取這種資料，造成大多數員工不容易探索和使用這些資料。
但是現在 MOSS 搜尋可從任何 LOB 應用程式擷取資料，例如透過 ADO.NET 或 Web 服務存取關聯式資料庫或 Lotus Notes 資料庫。特別的地方在於，它不需要另外編寫程式碼。使用「商務資料目錄」功能時，取得此商務資料就和存取任何文件或網站一樣容易。「商務資料目錄」功能可以很容易地與「搜尋中心」提供的屬性管理與自訂範圍整合。

傳回相關性
當然，就算有再多的新功能，若不能產生精確的結果，這些功能就沒有什麼價值。幸運的是，MOSS 在相關性方面有大幅改善。不過，在討論這些改善項目之前，您應該瞭解企業搜尋相關性與網際網路搜尋相關性之間的差別。
您可能會想知道，為什麼內部網路搜尋不能和網際網路搜尋使用相同的工具 (而獲得相同的準確性)。簡單地說，這兩個環境非常不同，因此有非常不同的需要和需求。這些差別可分為三個主要類別：安全性、結構與階層。
安全性是指網際網路對企業的簡單性質。網際網路上的資料通常可匿名存取；進行索引和搜尋不需要驗證或安全性調整。另一方面，企業環境必須遵守嚴格的安全性模式，包括篩選符合搜尋者權限的結果。
結構的影響則與密度相關。網際網路的範圍非常深遠，網站彼此互連以擴充其內容。但在企業中，連結通常用於瀏覽，且結構的密度低得多。
與連結結構較不相關的是網站階層因素。在網際網路上，網站之間通常沒有階層，而且沒有很多頂層網站。不過，企業的內部網路通常經過規劃，實質上有階層的劃分。即使企業在組織上有多個主要的根層級，但通常只有一個主要的入口網站。
這些主要差異使得企業搜尋解決方案，在索引資料及傳回結果的方式上有所不同。MOSS 2007 致力於滿足企業的不同需求。它的特色是運用現有技術結合 Microsoft Research 與 MSN® 團隊成果所開發的新排名引擎。透過建立一系列相關性演算法，收集已編目之文件與商務資料的內外部資訊，使相關性獲得提升。索引企業資料時，會掃描 200 多個文件類型，並套用演算法來偵測語言、擷取中繼資料及執行文字分析。這些特別為了滿足企業資料與 LOB 應用程式需求而調整的新演算法，可大幅改善結果的精確性。
相關性計算中包含了數個中繼資料標籤。以下是您必須考慮的事項：
  • 點按距離 - 與代表性網站的瀏覽距離 (距離較短表示較有相關性)。
  • 錨定文字 - 超連結可充當其目標的註釋。此外，它們常具有高度描述性。
  • URL 深度 - 階層中較高的 URL 表示較有相關性。
  • URL 比對 - 直接比對 URL 中的文字。
  • 中繼資料擷取 - 若沒有標題與作者，可自動從文件文字中擷取。
  • 自動偵測語言 - 可協助針對您所用語言的結果建立喜好設定。
  • 檔案類型偏重 - 某些檔案類型較有相關性 (例如，PPT 檔經常比 XLS 檔更有相關性)。
  • 文字分析 - 根據符合字詞、字詞頻率及文字變體等因素的傳統文字排名。

索引的運作方式？
MOSS 2007 在索引服務的運作方式與內容的管理方式上，有重大的改進。若是入門者，您可指定內容來源是否為 SharePoint 伺服器、網站、檔案共用、Exchange 公用資料夾、Lotus Notes 資料庫或 LOB 應用程式。整個索引管理體驗都已簡化，因此可讓您在多個內容來源中自由選擇索引的內容、方法與時間。其處理方式是透過可讓您指定要併入或排除路徑的編目規則。您甚至可設定編目程式跟隨 URL 連結的方式。內建的記錄檔會提供經編目之網站數與其索引方式的整體觀點。
此索引與 Windows® Desktop Search 中所用的索引技術類似。構成索引的主要元件有兩個：內容索引及屬性儲存區。這是極為有效率的資料處理方式。內容索引包括檔案中所含的實際文字，以及企業索引中文字的相關反向索引。屬性儲存區資料庫對處理結果來說相當重要。屬性儲存區資料庫會保留儲存區中，所有文件額外的中繼資料屬性 (作者、建立日期、文件類型等等)。屬性儲存區在結構上，是由屬性與屬性值的表格所組成。表格中的每一列都對應到全文檢索中不同的文件。屬性儲存區也可以維護及執行索引文件時，所收集的文件層級安全性。
索引與儲存程序是由負責對內容來源進行編目的索引引擎開始。引擎檢查過具有正確的通訊協定處理常式可讀取內容來源之後，就會開始編目。一旦載入內容來源的正確通訊協定處理常式，通訊協定處理常式與必要的 IFilter 就會擷取及篩選內容來源中的項目。IFilter 是可讓索引引擎開啟、讀取及索引新檔案類型內容的增益集，若不使用 IFilter，就無法進行全文檢索。IFilter 會擷取每份文件的文字及中繼資料，然後將資料流傳回索引引擎。
然後，會將文件屬性儲存在屬性儲存庫中，而將文件的實際文字放在內容索引中。但在那之前，索引引擎會移除「非搜尋」字。引擎在處理資訊時，也會使用文字分隔及字幹分析程式來簡化資料，讓查詢的執行效果更好 (文字分隔會將文字分隔為單字和片語。字幹分析程式則會產生指定單字的屈折變化形式)。
索引引擎會使用連續傳播，這樣幾乎可立刻建立索引。使用連續傳播時，即使編目程序在內容來源之間移動，也可持續建立索引。此增強功能幾乎可提供立即的結果，這可說是 SharePoint Portal Sever 2003 極大的改進；在 SharePoint Portal Sever 2003 中，大型內容編目可能要花數天的時間，而且只在編目完成時才會傳播索引。

查詢的運作方式？
使用者輸入查詢或自訂應用程式呼叫索引時，查詢引擎就會開始處理要求。它會先將查詢傳至語言特定的文字分隔。若無法識別語言，則會呼叫非特定的文字分隔。查詢失敗時，引擎會將資訊傳給字幹分析程式 (若啟用字幹分析功能) 以供進一步處理。這個由兩個步驟構成的程序，可改善查詢所傳回結果的相關性和有效性。
若查詢中指定了屬性資訊，會先檢查內容索引中是否有與屬性儲存區中的文件相配對的符合項目，然後再檢查查詢中的屬性以確定是否符合。查詢引擎會進行另一層級的篩選，以移除使用者沒有存取權限的結果。符合的結果會以清單形式傳回，並根據相關性進行排序。[圖 4] 概述所有索引和查詢元件如何彼此配合。
圖 4 MOSS 2007 企業搜尋環境的架構
圖 4 MOSS 2007 企業搜尋環境的架構

增強的管理
系統管理員會發現，可以更容易地管理搜尋環境。有一套改善的通用工具可供使用者與系統管理員使用，協助降低到平台的不同連線點所造成的複雜度。而且，MOSS 2007 的新管理模式，對搜尋引擎有極大的助益 ([圖 5] 顯示用來修改搜尋設定的主頁面)。
圖 5 設定搜尋設定
圖 5 設定搜尋設定
可讓您控制不同搜尋功能的範圍，也已經有改善。範圍可讓您輕易在內容來源內進行搜尋，實質上可讓您透過較小的區塊來管理索引。在 SharePoint Portal Server 2003 中，範圍與內容來源息息相關，因此範圍的彈性較小而且較難管理。在 MOSS 2007 中，範圍與內容來源可各別考量，因此提供了較大的彈性。您可以根據任意的內容屬性 (例如 URL、類型或作者) 定義範圍。您甚至可合併範圍以擁有多個規則，例如，特定作者所撰寫的所有技術文件。
當然，如果系統管理員想改善搜尋引擎的效能，其中一項所能做的最重要項目是瞭解索引目前的使用情況。系統管理工具集其中一個最佳的新增項目是查詢報告。全新的查詢報告功能，可讓您快速尋找查詢量趨勢、主要查詢、點選率、零結果查詢等相關資訊。查詢報告可提供網站層級與核心服務提供者層級的詳細資料。[圖 6] 顯示範例報告。您可將資訊匯出到 Microsoft Excel®，以對資料進行進一步分析與樞紐分析。
圖 6 MOSS 2007 中的查詢報告
圖 6 MOSS 2007 中的查詢報告

安全性與權限
如先前所提，查詢引擎會篩選結果，讓使用者所看見的清單只含有使用者有權可存取的文件 (在 SharePoint Portal Server 2003 中，雖然使用者可能沒有適當權限可連往連結的目標，還是會對使用者顯示這些連結)。與安全性調整相關的某個注意事項是，MOSS 2007 並不會對 Web 編目進行安全性調整。您無法調整網站的原因，是 HTTP 通訊協定無法讀回存取控制資訊。此外，MOSS 2007 也無法讓您對商務資料目錄或人員搜尋進行安全性調整。
MOSS 2007 會遵守現有的存取控制清單 (ACL)，因此可確保索引中文件的安全性。這是與其他搜尋工具的主要不同點。不像某些搜尋引擎必須使用設定檔手動設定檔案的權限，MOSS 2007 可讓您與目前的權限保持同步。
索引可快速反映單一文件之 ACL 中的變更。比方說，目前索引中儲存了一份 Excel 試算表，而該文件的 ACL 已變更為限制存取。系統管理員只可以對該文件進行重新索引及編目，而且會立即執行安全性調整 (若有需要，可完全從索引中移除文件)。
此外，可針對個別文件指派唯一的權限，或將個別文件設定為繼承文件庫或上層目錄的權限設定。這會使得選取讓您能檢視、編輯及儲存文件之群組或個人的過程更加簡單。
驗證及登入管理方面也會有所改善。現在可以擴充安全認證快取，讓 MOSS 有機會接受協力廠商及自訂程式碼增益集的單一登入認證快取系統。此外，核心驗證現在也可接受協力廠商系統。這兩項增強功能的基礎，是新的 ASP.NET 提供者模型，此模型可允許使用其他目錄服務。

自訂
在 MOSS 2007 中，有一些選項可供您修改使用者介面。有許多您用來修改網站的工具，也可以用來自訂 UI。也有一些新工具 (例如 Office SharePoint Designer) 可幫助您建立主版頁面 (提供簡單的方法來建立品牌網站)。[圖 7] 顯示編輯中的搜尋結果頁面。
圖 7 自訂搜尋結果頁面的外觀
圖 7 自訂搜尋結果頁面的外觀
MOSS 2007 在搜尋中心介面中，提供兩個最新的索引標籤：[所有網站] 和 [人員]。您可另外新增會反映使用者最常搜尋不同資訊類型的索引標籤。例如，您可提供對任何企業應用程式、資料庫甚至是目錄服務的直接搜尋入口。您甚至可讓這些索引標籤與範圍產生關聯。這對於在特定內容上建立內容相關式搜尋索引標籤很方便。請注意，純搜尋版本不支援自訂此搜尋索引標籤。

總結
如您所見，MOSS 2007 提供一些相當令人注目的企業搜尋新增強功能，可讓使用者更有效率且更具生產力。如需詳細資訊，請參閱 Microsoft Office SharePoint Server TechCenter。

Matt Hester 是 Microsoft Across America 小組的 TechNet 簡報者。若要即時觀看他的簡報，請造訪 www.technetevents.com/mhester。他的部落格是 blogs.technet.com/matthewms。


 SharePoint: 功能強大的 SharePoint 命令列管理
SharePoint Todd Klindt

功能強大的 SharePoint 命令列管理
摘要:
  • 使用 STSADM 設定 SharePoint
  • 為日常管理工作撰寫指令碼
  • 進階的 STSADM 作業

請思考人們與 Windows 或 Microsoft Office 互動的方式。有些使用者愛用滑鼠，會使用指標瀏覽功能表與工具列執行一般工作。有些使用者則慣用
鍵盤，可快速執行常見按鍵與捷徑。每個指定的工作幾乎都有好幾個完成的方法。
事實上圖形介面容易使用，但對於需要重複執行相同動作的工作來說，圖形介面也可能相當累贅。有些事情透過鍵盤反而更容易完成。如果您進行 SharePoint® 管理，您大概已體驗過因為圖形介面而拖慢工作速度的情況。但是，SharePoint 確實會提供功能更強大的方式來協助您完成工作。
管理 Windows® SharePoint Services (WSS) 及 Microsoft® Office SharePoint Server 2007 (MOSS) 的主要介面是 GUI 式的「SharePoint 管理中心」。但 SharePoint 也包含管理能力更強大的命令列工具。這個工具是 STSADM.exe，它提供 SharePoint 管理中心的所有功能，而且具有許多系統管理員所需的命令列靈活性。在本文中，我會為您上一堂使用 STSADM 管理 WSS 及 MOSS 的速成課。我也會提供您如何設定環境的秘訣，並討論常見的 STSADM 命令。我甚至會告訴您一些進階的 STSADM 命令，需要使用這些命令時，您肯定會是同事心目中的英雄。

入門
如果您還沒接觸過 STSADM，可能是因為它的位置不太明顯。在 Windows SharePoint Services 2.0 中，它的預設位置是 c:\program files\common files\microsoft shared\web server extensions\60\bin。3.0 版的預設位置則是 c:\program files\common files\microsoft shared\web server extensions\12\bin。
為了簡化使用這個工具的方法，我採取兩種不同的方法。第一個方法是將該目錄加入 PATH 環境變數中。這樣我可以在檔案系統的任何位置中使用 STSADM。不過這個方法不一定隨時都可使用。第二個方法是建立 CMD.EXE 的捷徑，並將 STSADM 的位置設為初始目錄。為什麼不讓捷徑直接指向 STSADM？因為 STSADM 不是互動式命令，這麼做不會有作用。因此，若讓捷徑直接指向 STSADM，會短暫地顯示其用法，然後命令視窗就會消失。
執行 STSADM 時，您必須是網頁伺服器上本機 Administrators 群組的成員，且必須在本機執行該應用程式。這意味著您不能使用 STSADM，從遠端管理 SharePoint 伺服器。
若要查看可使用 STSADM 執行的作業，請在命令提示視窗中鍵入 stsadm.exe -help。對 SharePoint 套用更新及 Hotfix 後，可能會增加新作業，因此請務必檢查此清單。您也可以在 go.microsoft.com/fwlink/?LinkId=77516 中找到 stsadm.exe 作業的簡便指南。

STSADM 基礎
讓我們先來看可用來調整現有 SharePoint 安裝的一些命令。使用 STSADM 可將功能新增至 SharePoint，並可修改組態設定。
STSADM 使用 -o 參數，後面接著待執行的作業。光鍵入 STSADM -operationname 不會有作用。例如，若要在安裝中新增網站範本，可使用下列命令：
Stsadm -o addtemplate -filename <filename of the template>
-title <title of template> -description <description of template>
或者，若要新增網頁組件套件，可使用此命令：
Stsadm -o addwppack -filename <filename of the Web Part Package>
如需任何作業之用法的詳細資料，只要不帶參數送出作業，STSADM 就會告訴您預期的輸入。STSADM -help operationname 也會提供您用法資訊。
管理範本時，可使用 enumtemplates 作業，查看已新增了哪些範本，而使用 deletetemplate 可移除已安裝的範本。同樣地，也有命令可處理網頁組件套件。您可使用 enumwppacks 作業，列出每個虛擬伺服器或 Web 應用程式上安裝的網頁組件套件，而使用 deletewppack 可移除任何已新增的網頁組件套件。
STSADM 也有兩個處理 SharePoint 設定的作業：setproperty 及 getproperty。不使用參數執行這兩個作業會顯示一份清單，其中會列出您可檢視或操作的屬性。就像 STSADM 本身一樣，這份清單會隨著更新及 Hotfix 而有所變更。然而，有些屬性比其他屬性更加有用。[圖 1] 列出安裝 SharePoint 之後您可能想設定的一些屬性，包括 SharePoint 系統管理員最常詢問的常用屬性。
讓我們快速地查看其中一個屬性的用法。下列命令會使 SharePoint 每隔 10 分鐘送出即時提醒：
Stsadm -o setproperty -pn job-immediate-alerts -pv "Every 10 minutes"
請注意，我使用 -pn 和 -pv，而不是 -propertyname 和 -propertyvalue。當您不想鍵入整個字時，可以使用這些縮寫形式。同時，本節討論的所有範例和命令都適用於 Windows SharePoint Services 2.0 和 3.0 版。

日常管理
SharePoint 的日常管理相當容易。對於大多數的 SharePoint 系統管理員來說，大多數日常工作是指處理使用者和網站。STSADM 有幾項作業可簡化這些工作。
我會先討論 site 和 web。為了一致起見，我用 "site" 來表示網站集合，而用 "web" 來表示子網站。有些術語不太容易分辨，但若與 STSADM 所用的術語保持一致，會比較容易找到需要的命令。
若執行大型的 SharePoint 安裝，可能會花許多時間為使用者建立新網站。我很明白，因為我自己一直重複做這件事。在 SharePoint 管理中心內，可相當容易地建立新網站。但因為經常執行這個工作，我發現使用 STSADM 可更快完成預期的工作。
所以我使用 createsite 作業。這個作業相當簡單，使用的參數如下：
  • url <url>
  • ownerlogin <網域\名稱>
  • owneremail <someone@example.com>
  • ownername <顯示名稱>
  • lcid <語言>
  • sitetemplate <網站範本>
  • title <網站標題>
  • description <網站描述>
  • quota <配額範本>
您可以在命令提示視窗中鍵入 stsadm -help createsite，以列出這些參數 (請參閱 [圖 2])。在這九個參數中，必要欄位只有 URL、ownerlogin 和 owneremail。
圖 2 Createsite 參數
圖 2 Createsite 參數
如果建立網站是您的例行公事，您可撰寫 STSADM 的 wrapper 指令碼以自動執行工作，進一步簡化程序。例如，若要自動建立個人網站，可以將下列命令儲存至名稱為 createpersonalsite.cmd 的文字檔：
stsadm -o createsite -url http://localhost/users/%1 -ownerlogin contoso\%1
-owneremail %1@contoso.com -sitetemplate usersite.stp
-title "Personal site for %1" -description "Personal site for %1" -quota "500 MB"
然後，若要為使用者 jsmith 建立網站，您只要執行下列命令：
createpersonalsite.cmd jsmith
透過撰寫建立網站的指令碼，可省下很多打字的動作且可確保所有新建立網站的一致性。createweb 作業提供 web 層級的相同功能。
在 Windows SharePoint Services 2.0 中，取得特定虛擬伺服器上網站集合的詳盡清單，唯一的簡單方法是使用 STSADM。Enumsites 會以 XML 格式列出特定虛擬伺服器或 Web 應用程式上的所有網站集合。此作業配合資料檢視網頁組件，就可輕鬆檢視網站集合的清單 (如需詳細資訊，請參閱資訊看板「使用資料檢視網頁組件」)。
STSADM 提供 deletesite 作業，想必您可以猜到，它是用來移除網站的作業。您只需要提供 URL 就好。您可選擇送出 -deleteadaccounts 來刪除 Active Directory® 中的帳戶。處理 web 時，您會使用 deleteweb 作業。
您也可以新增、刪除及列舉 site 或 web 的使用者。相關的作業是 adduser、deleteuser 及 enumusers。若需要在網站中加入大量使用者，或需要維護可存取網站之使用者的清單以供稽核使用，都可使用這些便利的作業。
處理 web 時，可使用另一個作業 renameweb，可讓您變更 web 的名稱與 URL。例如，若要將 web 從 "oldname" 重新命名為 "coolnewname"，請使用下列命令：
Stsadm -o renameweb -url http://localhost/oldname -newname coolnewname
變更專案名稱或重新編制業務單位時，此作業可成為您的救星。在 Windows SharePoint Services 2.0 中，這會是個大問題，因為移轉 web 的唯一方法是使用 SMIGRATE.exe，而此工具並不會維護成員資格或提醒等使用者相關的設定。使用 Windows SharePoint Services 3.0 時，這個問題較小，這是因為 STSADM 可備份及還原 web 和 site。

備份與還原
STSADM 的其中一個最佳用途是備份及還原 site 和 web。針對小型到中型安裝，此功能可作為損毀修復計劃的基礎。備份作業不需要另外解釋，它十分容易上手。只要告訴 STSADM 要備份哪個網站以及要在哪裡寫入備份檔案，像這樣：
Stsadm -o backup -url http://localhost -filename site.bak
此作業會將整個網站集合傾印到 site.bak 檔案。這個檔案包含所有網站內容，例如 web、文件版本、清單及使用者。它不會備份任何網站定義或您在伺服器的檔案系統層級中所做的變更。
雖然備份作業很重要，但您必須留意一些意外障礙。如果網站夠大，備份過程中可能會鎖定內容資料庫。這可能會造成使用者在備份作業完成之前，無法存取該資料庫中的任何網站。Service Pack 解決了這個問題，但在網站擴大時，您仍需要留意這個問題。STSADM 進行備份和還原時，也會使用伺服器的 temp 目錄，因此請注意您的磁碟機空間。
使用資料檢視網頁組件
您可配合資料檢視網頁組件使用 enumsites 命令，以建立檢視網站集合清單的簡易方法。讓我們看看怎麼做。
首先，建立執行下列命令的排程工作：
stsadm –o enumsites –url http://localhost
>c:\inetpub\wwwroot\excludedsite\sites.xml
確定 XML 檔的寫入位置是使用 IIS 發佈，但不受 SharePoint 管理的目錄。接著使用 Microsoft FrontPage® (或 FrontPage 的後繼應用程式 Microsoft Office SharePoint Designer 2007)，將資料檢視網頁組件新增到網頁組件頁面中，並讓它指向 XML 檔的 URL。
資料檢視網頁組件會提供排序、篩選及分組等功能。您也可將 URL 欄位設成直接連到網站的連結。如果您想要的是 web 的清單，enumsubwebs 作業會提供網站集合或網站或 Web 中子網站的 XML 輸出。

最後，請記住雖然 STSADM 備份對小型到中型網站十分管用，但該作業在網站變大時，效果並不是特別突出。對於非常大型的網站 (幾個 GB 或更大)，備份及還原程序可能變得相當緩慢。
還原網站也同樣相當簡單。STSADM -o restore 會取得 STSADM -o backup 所建立的檔案，並將該檔案寫入 SharePoint 中的網站。使用此命令有很大的彈性：您可以將網站還原到其原始位置 (例如，在誤刪網站的情況中)、您可以將網站還原為同一虛擬伺服器上的不同網站 (可能的情況是您想測試網站上的程序，但不想承擔資料毀損的風險)，或者您可以將網站還原到完全不同的伺服器或虛擬伺服器。
還原到不同的網站或伺服器，可使個別文件復原比較容易。如果您具有已備份的網站，而使用者需要還原一份文件，您就不需要還原整個網站。還原整個網站會遺失自備份儲存以來對網站所做的所有變更。您可將網站還原到不同 URL、抓出文件，然後將文件存回原始網站。
在 Windows SharePoint Services 2.0 中，STSADM 有一個相當嚴重的限制。進行備份時，它只能處理 site 而不能處理 web。系統管理員對此可說是相當不滿，而 Microsoft 也已做出回應。在 Windows SharePoint Services 3.0 中，備份及還原作業現在可以處理 web。另外，3.0 版也增加了兩個新命令：import 和 export。
若要匯出 web，請使用下列簡單命令：
Stsadm -o export -url http://localhost/web -filename backup.dat
Export 含有方便的選項，包括 -versions 參數。此參數可限制要備份的檔案版本，讓您決定備份檔案有多大。
若要將 web 匯入回伺服器，請使用下列命令：
Stsadm -o import -url http://localhost/web2 -filename backup.dat
如果網站夠大，備份檔案可能會分成數個部分。在此情況中，請將 STSADM -o import 指向第一個檔案，該命令會自動抓取後續檔案。

專家作業
現在您已相當熟悉 STSADM，我想告訴您可用來擺脫困境的作業。第一個是稱為 migrateuser 的新作業。2.0 版本身不會與 Active Directory 保持同步。如果重新命名帳戶，就無法使用該帳戶登入 SharePoint。在以前，無法將使用者存取權從某個網域使用者，移轉到另一個網域使用者。在 Windows SharePoint Services 2.0 Service Pack 2 (SP2) 之前，您必須從每個 web 移除使用者，再手動加入新帳戶。
SP2 推出了一個新的 API，而 STSADM 也善加利用這個 API。如果 jsmith 帳戶重新命名為 jjones，您可使用下列命令：
Stsadm -o migrateuser -oldlogin domain\jsmith -newlogin domain\jjones -ignoresidhistory
因為您實際上不是在移轉帳戶，因此可以忽略 Windows 安全性識別碼 (SID) 歷程記錄。請注意，此命令不需要 URL。這個命令會變更整個內容資料庫，而不會只針對 site 或 web。
另一個可讓您擺脫困境的作業是 unextendvs。如果您不要 SharePoint 轉譯虛擬伺服器或 Web 應用程式，可進行取消擴充。通常是由 SharePoint Configuration Analyzer 執行此工作。不過在 Web 伺服陣列中，SharePoint Configuration Analyzer 會要求伺服器全部都在相同的修補層級。某個伺服器可能無法與其餘伺服陣列保持同步，因而無法取得 SharePoint Configuration Analyzer 中的取消擴充選項。不過使用 STSADM 時，下列命令可取消擴充虛擬伺服器：
Stsadm -o unextendvs -url http://localhost
一旦伺服器不再位於 Web 伺服陣列中，您就可以執行所需的維護。
談到 Web 伺服陣列，為了便於管理，您可能會希望所有伺服器的 SharePoint Configuration Analyzer 都在相同的埠上。安裝 SharePoint 時會隨機產生埠，但 STSADM 包含的作業，可將埠變更為您指定的埠：
Stsadm -o setadminport -port 1026
此命令會進行所有必要的資料庫變更、進行 IIS 變更，並調整系統管理工具中 SharePoint Configuration Analyzer 的捷徑。

總結
Windows SharePoint Services 是功能強大的解決方案，需要強大的管理功能。STSADM 提供實現 SharePoint 管理的方法，包括自動執行設定與一般日常工作。事實上，有時 STSADM 是完成工作的唯一方法。

Todd Klindt 是 UGS 的系統分析師，他整天都在玩 SharePoint，公司付他薪水，讓他做這件事。他也是 Windows SharePoint Services MVP，而且是水瓶座哦。


 SharePoint: 工作時使用 Wiki
SharePoint Mauro Cardarelli

工作時使用 Wiki
摘要:
  • 何謂 Wiki？
  • 在 SharePoint 中建置 Wiki
  • 編輯及追蹤變更

Wiki 的概念已經存在超過 10 年了。Wiki 是夏威夷語「快」的意思；簡單來說，就是使用者可單純使用瀏覽器，自由建立或編輯網頁內容的
線上目的地。其目標是提供一個空間，讓虛擬社群的成員可在其中編輯任何網頁，並享有提出、變更或移除內容 (包括以前的作者所建立的內容) 的充分自由。Wiki 不像部落格，部落格的設計目的是更結構化的知識交換與一對多的溝通，而 Wiki 提供的則是較協同式的經驗。
近來這個稱為 Web 2.0 的新一代線上工具頗受大家的矚目。前提是降低建立內容時的障礙，讓使用者成為線上資訊的生產者及消費者。這個現象不僅存在網際網路世界中，也會在企業防火牆內。您應把 Web 2.0 視為可讓所有員工更輕易就可建立內容的 Enterprise 2.0 工具。部落格與 Wiki 等技術對於改變公司看待、儲存與重複利用企業知識的方式大有幫助。
Microsoft 透過推出廣受歡迎之 SharePoint 技術的第三個版本 Microsoft® Office SharePoint® Server (MOSS) 2007，進而促使開發這個新一代功能。MOSS 2007 提供廣泛的協同合作與溝通功能，包括支援建立部落格和 Wiki。本文將討論使用 MOSS 2007 建置 Wiki 的入門方法。

入門
如果您曾經使用過 SharePoint Portal Server 2003，應相當熟悉網站範本的使用。網站範本會對特定類型網頁 (例如小組、會議或社交事件) 的版面配置，提供預先設定特定內容之預留位置的架構。MOSS 2007 採用一組新的範本類型，擴充了網站範本的使用範圍。其中一個類型就是 Wiki。
[圖 1] 顯示了建立 SharePoint 網站所用的新增 SharePoint 網站頁面。請注意，範本清單中會有 [Wiki 網站] 的項目。選取此範本之後，您就可以快速且輕鬆地建立第一個 Wiki。請參閱 [圖 2]，這是新建立之 Wiki 的預設轉譯。Wiki 的結構是將此預設網頁設為您的首頁。此處的每一個項目都可以編輯。適當授權的使用者 (虛擬社群) 可修改此網頁或建立新網頁。
圖 1 選取新網站的 Wiki 範本
圖 1 選取新網站的 Wiki 範本
圖 2 等候編輯的新 SharePoint Wiki
圖 2 等候編輯的新 SharePoint Wiki
在繼續討論之前，讓我們先回過頭來談談將 Wiki 介紹給使用者。如先前所提到，Wiki 存在網際網路上，或在協力廠商工具上使用已有一段時間了。然而 Wiki 大部分的使用極為專門，透過口耳相傳的結果就是發展相當緩慢。MOSS 2007 透過提供 Wiki 功能給所有內部網路使用者，準備要改變這個狀況。這是相當大膽 (而且可能令人驚訝) 的主張！您要如何對非技術人員、不精通網際網路的同事解釋 Wiki 的價值？需要告訴這些同事的是，Wiki 的目的，是在享有充分自由可讓所有使用者發表意見的環境中，讓彼此之間可充分交換創造性的意見與想法。Wiki 提供內容共同作業能力，但實際上它們的功能不只這樣。Wiki 的最終結果不是一份文件或一個章節就可闡述明白，它需要用一本書來說明，這本書是沒有截止期限並且您可視需要隨時修改。
好，讓我們回到正題。Wiki 的新使用者可透過「如何使用這個 Wiki 網站」超連結取得線上指引。預設的 Wiki 範本附有充足的說明文件，可讓新使用者快速熟悉用法，進而提出一些想法。

Wiki 的運作方式
在每一個 Wiki 頁面上，您會看到右上角有一些動作按鈕。如果按一下標示為 [編輯] 的按鈕，將會引導您到與內容編輯相關的網頁。[圖 3] 顯示範例。所有編輯動作都是在瀏覽器中進行，不需要使用 Microsoft Word 等外部工具。而且是即時 (儲存時) 在線上進行編輯。另外，不需要用到網頁設計或開發技巧。在編輯介面中可建立完整的 RTF 文字 (粗體、彩色、項目符號或圖像)，只要使用標準按鈕就能全部辦到。使用者只要以編輯模式開啟現有的網頁，然後就可以新增或修改內容。就這麼簡單。
圖 3 完全在瀏覽器中編輯 Wiki 內容
圖 3 完全在瀏覽器中編輯 Wiki 內容
在內容不斷演變的環境中，要如何管理變更？您不一定會覺得需要監視所有成果，但您可能想要用一些方法來追蹤變更及維護版本歷程記錄。MOSS 2007 可達成您的願望。[圖 4] 顯示按 [歷程記錄] 按鈕後出現的標準網頁形式。在網頁中央，您會注意到已追蹤所有對文字進行的編輯作業。在網頁左邊，您可看到變更歷程記錄，每次進行變更時都會進行追蹤。社群具有檢閱、追蹤，甚至回復變更的完整能力。這是強大的概念。MOSS 2007 會在您建置及變更 Wiki 時追蹤該動作。
圖 4 Wiki 項目的歷時變更追蹤
圖 4 Wiki 項目的歷時變更追蹤
如前所述，Wiki 並不是網頁。它是不限數量的網頁集合。身為 Wiki 社群的成員，您可決定提出新的想法或論點。您可能會想要另外開新網頁，而不是在現有的網頁中加入文字。MOSS 2007 透過讓您輕鬆新增 Wiki 頁面，而支援這項功能。只要按一下 [新增]，就可以新增 Wiki 頁面。開始新增內容，立即體驗 Wiki！

總結
MOSS 2007 不是 Wiki 概念的原創，但由於 MOSS 2007 可廣泛使用，確實讓 Wiki 概念更引人注目。Wiki 可轉換組織員工的合作方式，不用再受到文件限制所帶來的束縛。Wiki 可促進非結構化思考與範圍更加廣泛的協同合作，而這可巧妙地整合到與 Enterprise 2.0 論點相關的各式各樣概念。Wiki 提供可能性；讓所有使用者都可以參與，不僅是追隨其他人的想法，也讓他們朝新方向發展。

Mauro Cardarelli 是位於 Boston 的 IT 顧問服務公司 Jornata 的經營夥伴。他的職務包括：新技術的提倡、架構設計及軟體開發。他的電子郵件為 mauro.cardarelli@jornata.com。


 編輯的話: 有時候產業
編輯的話

有時候產業 會歷經重大的變更。不論科技、政治、時尚或其它領域，皆是如此。幾個星期前，我在拉斯維加斯的 Windows Connection 會議上演說時，忽然想到這件事。五年前的十一月，我本人參加 Comdex 展覽，它是個很大的展覽會場，為全球多種科技的買家和觀摩者提供服務。這項展覽在近二十年之間持續穩定地成長，但卻幾乎在一夜之間就消失無蹤。所以我不用再去參加那種盛大又有廣泛主題的展覽，而是在一場很成功的展覽上演說，這場展覽有其特定對象，主要是針對一些開發人員和 IT 產品。我在相同的地方遇到相同的人，但是對出席的人來說，這樣的範圍更能讓他們獲益非淺。
我的演說都是和科技寫作有關：怎麼做、在哪裡做，還有原因為何。產業的變更不只是反映在 Comdex 的歷史，也反映在科技通訊的世界中。五年前，我教過類似的課程，內容都是和雜誌有關。那時，聽過部落格 (Blog) 的人根本沒幾位。社群網站只不過是個影子而已。在過去五年間，我們看到書寫文字的傳遞方式有了永久的變化，範圍更是前所未見。
當然，這樣有好也有壞。不同形式的通訊，分別有不同的目的。人們可以自行將他們的想法放到網路上，但是要讓那些想法出現在雜誌中，通常表示這些文字已經過編輯和技術驗證。你可以扯下一篇部落格文章，但是你不能到每個人的家裡，然後要對方將第 28 頁的某一節拿掉。
無論如何，我談論這項改變是有原因的。無數的讀者提供給我們對雜誌的寶貴意見，所以我們也相對地擴充專欄的數目。在本期中，我們呈獻第一篇的 The Cable Guy，這是很受歡迎的 TechNet 線上專欄，因此，我們現在想用印刷品的方式來呈現。我們也聽到了眾多郵件管理員的聲音，我們知道 Exchange Server 2007 即將成為焦點，所以我們開闢了 Exchange 問答集 (Exchange Queue & A) 這個定期專欄。(停下來吧，它只是個逗人喜愛的名稱罷了！)
如果您想看雜誌中介紹的 Microsoft 技術，請告訴我們。我們能夠提供給您的最好服務方式，就是提供給您所需的項目或服務。—Joshua Trupin

感謝下列 Microsoft 技術專家： Puneet Arora、Jeff Bienvenu、Nino Bilic、Eric Broberg、Ramesh Chinta、Matt Cohen、Michael Dalton、George Irimescu、Bryan Jeffries、Dave Kong、Vijay Krishna、Rob Lefferts、Lawrence Liu、Bob Ma、Manu Namboodiri、Joel Oleson、Arpan Shah、Troy Starr、James Sturms、Jim Truher 以及 Blaine Young。


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

伺服器管理
Windows Server 2003 資源套件工具
go.microsoft.com/fwlink/?LinkId=77796
Microsoft Windows Server 2003 資源套件工具是一套超值的工具組合，由超過 100 個公用程式組成，可以協助您簡化並自動執行系統管理工作。其中包括 Active Directory® 工具、網路疑難排解公用程式以及 CD/DVD 映像燒錄程式。
Custom Reason Editor (custreasonedit.exe) 是一個很棒的工具，能讓關機事件追蹤器變得有條理。關機事件追蹤器是 Windows Server® 2003 的元件，它會將系統關機的原因記錄至事件日誌。同時，Custom Reason Editor 工具可讓您建立自訂清單，其中的可設定參數將覆寫依預設啟用的內建原因。此工具可以藉由讓事件項目具有邏輯與條理，輕易收集並識別導致關機的麻煩處理程序、應用程式或系統狀態。
DNS Resolver Tool (一種模擬 SMTP 服務執行 DNS 解決方案的命令列公用程式) 會顯示您指定為命令參數的 DNS 查詢狀態相關訊息。此公用程式將在任何已安裝 SMTP 服務的 Windows Server 2003 主機上執行，並將傳回您可以在批次檔中使用的錯誤碼。CDBurn.exe 及 DVDburn.exe 是命令列公用程式，可讓您從 ISO 映像建立 CD 及 DVD，並利用 /Erase 參數提供 RW 媒體的有限支援，此參數將在套用新的磁碟映像之前清理媒體。此外，這些公用程式可以用來在基礎結構中自動執行保存處理程序。
Windows Server 2003 資源套件
Windows Server 2003 資源套件
如果您需要驗證是否已順利鎖定帳戶，Account Lockout Status 工具可以利用命令列及 GUI 選項，快速又輕易地執行鎖定。此工具會查詢每一個可連接的網域控制站，並檢查目標使用者帳戶的狀態。Robust File Copy Utility (Robocopy.exe) 也許是最好的自動化工具之一，能夠提供給您各種移動或複製檔案的選項。此工具可讓您使用萬用字元甚至檔案屬性，來指定要複製的對象，而且複製還可選擇性設定為遞迴。您可以使用此工具進行同步處理，而且將它設定為刪除已從來源目錄移除的目的檔案或目錄。
另一個我最喜愛的公用程式就是簡易工具 Tail (tail.exe)，如同 Linux/UNIX 公用程式一般，可讓您顯示檔案最後 N 行，並在加入新行時重新整理顯示畫面。此方法非常適合偵錯或監視任何會寫入記錄檔的工作。
Time It (timeit.exe) 可讓您計算命令的時間並將資料存入它自己的資料庫檔案，讓您測試系統管理工作實際所需的時間。
您應該注意到這些工具並未當地語系化，而且是以英文撰寫及測試，因此可能在執行時產生無法預期的結果。在生產環境使用其中一種公用程式之前，請務必在非英文系統上進行測試。
價格： 免費下載。

追蹤問題
ASP.NET Issue Tracker
www.ASP.NET/StarterKits/WhitePapers/Issue%20Tracker%20Whitepaper.htm
在我來看，有兩件事絕對給應用程式加分：免費且可以自訂。透過 ASP.NET 線上開發人員社群提供的 ASP.NET Issue Tracker 就同時具備這兩項特性。Issue Tracker 是專為學習在 ASP.NET 1.1 架構下撰寫 Web 應用程式所設計的入門套件，這是一種簡單卻實用的工具，可用於追蹤專案的相關問題。
採用直覺式介面，讓您輕鬆建立專案、使用者及問題。此應用程式支援多個使用者並依照角色來訂定權限，防止無關的人員看到問題。您也可以為每個專案建立自訂的問題種類，以及各種類型的自訂資料欄位。還可以指派工作的狀態、優先順序及里程碑，協助您有效管理專案。
而另一項不錯的功能，就是在建立專案時，您可以對每個專案指定您自己的狀態碼、優先順序及里程碑，以及指派影像來代表專案。所有程式碼皆可下載取得，因此，如果手邊有 .NET 開發工具，或是可以透過現有程式碼來工作，您可以使用此入門套件作為您可能需要的任何自訂功能的基礎。
價格： 免費。

系統監視
NetHealth Sentinel Professional
www.nethealthsys.com
網路及系統監視是不可或缺的，我一直都在找尋可在遠端瞭解電腦狀況的應用程式。NetHealth Systems 所提供的 NetHealth Sentinel Professional 正符合這項需求。
Sentinel Professional 是代理程式型的解決方案，可讓您深入瞭解受監視的主機電腦。此應用程式共有四個元件：Admin Server、Admin Console、Connection Manager 及 Remote Agent。Admin Server 會執行排定的工作、儲存組態資訊，以及透過 Connection Manager 收集警示。
Admin Console 是 Admin Server 的圖形化介面，可讓您檢視及設定受監視的系統，以及設定任何排定的工作或事件。而 Connection Manager 則會從 Remote Agent (位於受監視系統上的主機代理程式) 收集所有資料。Remote Agent 會當做 Windows 服務執行，並透過安全連線與 Connection Manager 進行安全通訊。每個 Remote Agent 都可以設定為將警示傳送至一或多個 Connection Manager。
NetHealth Sentinel Professional
NetHealth Sentinel Professional
其中一項不錯的功能，就是從指定的監視群組上的所有電腦收集事件。流暢的 GUI 也可讓您從事件檢視拖放資料欄，依項目分組。
此應用程式也提供了維生徵象 (Vital Signs) 面板，讓您快速掌握您想要監視的統計資料。依預設，您可以看到 CPU、磁碟及記憶體使用量，但您可以透過 Monitor 索引標籤新增您所選擇的計數器。
NetHealth Sentinel Professional 也具備設定基準的功能，可讓您設定電腦的「正常」操作的層級，然後，如果操作超出其中一項所建的基準值即觸發警示。
價格： 10 個 Client Access License 套件的費用為 $495。

資料加密
TrueCrypt
www.truecrypt.org
TrueCrypt Foundation 所提供的 TrueCrypt 是一種免費的開放原始碼加密工具，此「見機運作」的加密工具會利用正確的密碼或加密金鑰，從您加密的磁碟區解密您嘗試讀取的資訊，或將您嘗試寫入記憶體的資料加密至該磁碟區。不必擔心—您的磁碟區任何時候都不會處於解密的狀態。除非應用程式在解密記憶體中資料的同時您有記憶體傾印，侵略者才有可能找到您嘗試保護的資訊。只要在您的系統上關閉傾印，就可以輕易地避免這種情況，更何況任何時候都只有小部份的資料在記憶體中為解密狀態。
此應用程式同時支援虛擬磁碟區及實體磁碟分割或裝置。虛擬磁碟區 (作者給它取了「檔案容器」的稱號) 可以利用任何副檔名來建立，或完全沒有副檔名，所以您的機密資料看起來像是隨機資料；沒有任何 TrueCrypt「檔案簽章」。
TrueCrypt
此外，您可以在「旅行者模式 (traveler mode)」中執行 TrueCrypt，此模式主要表示您可以在 USB 隨身碟上建立檔案容器以及應用程式檔案，然後走到那裡都可以帶著您的加密資料，而不需在主機系統上安裝 TrueCrypt 應用程式。但是，透過記憶體讀寫的本質，您必須對想使用旅行者磁碟的系統具備系統管理權限。
TrueCrypt 也有簡易精靈可設定您的旅行者磁碟。這將是攜帶系統管理資訊的絕佳方法，就不必擔心有人會偷看機密的公司資料。
就另外多一層的安全性而言，TrueCrypt 也可讓您在檔案容器內建立隱藏的磁碟區，所以即使闖入者裝載外部磁碟區，他也發覺不到磁碟上有一個內部的隱藏磁碟區。每一個磁碟區都是利用隨機資料來初始化，這會使得位於外部磁碟區「可用空間」的隱藏磁碟區非常難以偵測。
TrueCrypt 可以使用 AES、Blowfish、CAST5、Serpent、Triple DES、Twofish 及這些演算法的若干組合，來加密您的資料。此應用程式使用 LRW 操作模式進行加密，這將變成磁區型儲存加密的 IEEE 標準。若為標頭雜湊演算法，您可以選擇使用 Whirlpool、SHA-1 或 RIPEME-160，而且此應用程式將不會在系統上儲存任何雜湊做為新增的保護層。此應用程式支援 FAT12、FAT16、FAT32 及 NTFS 檔案系統，但是如同其他 Windows 型磁區加密公用程式一樣，它不會讓您加密 Windows 開機磁碟分割。
價格： 免費。

書評
Hacking Web Services
www.charlesriver.com
Shreeraj Shah 的 Hacking Web Services (Charles River Media, 2006) 是一項珍貴的資源，適用於開發、部署或支援 Web 服務。本書編排精美，是 Web 服務及其元件技術的一般安全性參考手冊。它詳細描述了在基礎結構中並透過開發練習來防禦 Web 服務的相關資訊。
本書一開始就相當深入介紹標題為＜The Consequences of Procrastination＞的 Web 服務案例研究，教導您有關先發式安全程序的效果，以及被動式系統的後果。標題名稱為＜Web Services Scanning and Enumeration＞的這一章討論如何使用 wsChess，這是 Net-Square (net-square.com/wschess/index.shtml) 所提供的 .NET 型 Web 服務安全性工具組，來設定 Web 服務的設定檔及機體。
本書包括一片公用程式 CD，內含稱為 SOAPWall 的 .NET 型應用程式範例，告訴您如何在 .NET Web 服務中封鎖引入字元及緩衝區溢位。此外，此 CD 還提供各種類型的 Web 服務攻擊示範。
價格：$49.95。
Shreeraj Shah 的 Hacking Web Services (Charles River Media, 2006) 是一項珍貴的資源，適用於開發、部署或支援 Web 服務。本書編排精美，是 Web 服務及其元件技術的一般安全性參考手冊。它詳細描述了在基礎結構中並透過開發練習來防禦 Web 服務的相關資訊。
本書一開始就相當深入介紹標題為＜The Consequences of Procrastination＞的 Web 服務案例研究，教導您有關先發式安全程序的效果，以及被動式系統的後果。標題名稱為＜Web Services Scanning and Enumeration＞的這一章討論如何使用 wsChess (這是 Net-Square (net-square.com/wschess/index.shtml) 所提供的 .NET 型 Web 服務安全性工具組)，來側寫 Web 服務及找出其足跡。
本書包括一片公用程式 CD，內含稱為 SOAPWall 的 .NET 型應用程式範例，告訴您如何在 .NET Web 服務中封鎖資料隱碼 (Injection) 字元及緩衝區溢位。此外，此 CD 還提供各種類型的 Web 服務攻擊示範。
價格： $49.95。

寫信至工具箱
如果有您想要在此瞭解其功能的喜愛工具或公用程式，請利用 tntools@microsoft.com 寫信給作者。

本專欄所表達的意見純粹是作者個人的意見，不一定是反映 Microsoft 的意見。所有價格均於出版時訂定，並可能調整。

Greg Steen 是技術專家、企業家及熱心者。他永遠都在找尋新的工具及方法，協助 IT 專家更容易進行操作及開發。


 公用程式焦點: Internet Explorer Administration Kit
公用程式焦點
Internet Explorer Administration Kit
Lance Whitney
下載本文程式碼: 公用程式焦點：Internet Explorer Administration Kit 7 (KB)

您的 CIO 已要求您在整個組織安裝最新版的 Internet Explorer 7。截止期限近在眼前，預算有限，而且需求又多。您需要自訂的套件，將相同的功能及設定套用至所有的使用者。您也需要能夠在必要時變更那些設定。
此外，您還需要鎖定 Internet Explorer®，讓使用者無法變更任何設定。您可以如何迅速且輕易地建立並傳遞此類型的 Internet Explorer 安裝？
以下是 Microsoft 利用 Internet Explorer Administration Kit 來援助您，此套件有一個充滿深情的名稱 IEAK。建立此免費組態工具的目的，在於協助 IT 系統管理員、開發人員、ISP 及其他人建立 Internet Explorer 的自訂安裝套件。事實上，Yahoo! 已使用 IEAK 7 的測試版，建立可從 Yahoo! 網站下載的自訂 Internet Explorer 7 套件。
您利用 IEAK 建立的 Internet Explorer 7 組建只需要包括您指定的功能及選項。您可以啟用特定的安全性設定，並鎖定您不想要使用者存取的任何控制項。
在部署 Internet Explorer 之後，只要您具有 Active Directory® 當然可以使用 [群組原則]，來控制並更新瀏覽器設定。或者，如果喜歡的話，您可以使用 IEAK 管理 Internet Explorer 設定的各種陣列。
IEAK 7 比舊版更加容易使用，因為它提供了簡單的圖形式介面來建立 Internet Explorer 套件。逐步畫面會引導您選取要併入組建的功能及選項。
新版的 IEAK 略微更改了舊版的內容，而加入一些選項並棄用一些選項。現在您可以將預設 RSS Web Feed 新增至 Internet Explorer 組建、指向多個首頁及搜尋畫面，以及新增防網路釣魚篩選器的支援。您也可以設定 Microsoft® Windows® 惡意軟體移除工具進行執行與更新。然而，您再也無法利用 IEAK 自訂 Outlook® Express 及 Windows Media® Player，因為 Internet Explorer 7 並未隨附這些應用程式。
您可以建立一個適合 32 位元或 64 位元平台的 Internet Explorer 套件，這些平台包括 Windows XP (含有 Service Pack 2 (SP2))、Windows Server® 2003 (含有 SP1)，或 Windows Vista™ (x86 型、x64 型或 Itanium 型)。在執行 IEAK 7 之前，必須在您用來建立套件的電腦上安裝 Internet Explorer 7。為了能夠相容，執行 IEAK 的電腦 OS 應該與將套用組建的電腦 OS 相同。
在本專欄中，我們將討論如何使用 IEAK 建立 Internet Explorer 7 安裝組建，以及維護或更新您的瀏覽器設定。

如何取得 IEAK 7
您可以從 microsoft.com/technet/prodtechnol/ie/ieak7 免費下載最新版的 IEAK 7。此外，這個頁面提供有關 IEAK 的文件及版本資訊，這兩者都值得一讀。
透過下載的 ieak.msi 檔案安裝 IEAK 7 時，系統會根據您的角色 (ISP、內容提供者或開發人員) 或透過公司內部網路詢問您使用何種類型的授權。視您選擇的角色而定，您看到的畫面及您所建的套件類型會有所不同。因此，如果您建立的是企業環境的組建，請務必選取公司內部網路的角色及授權。安裝 IEAK 之後，便會在 [開始] 功能表上建立稱為 Microsoft IEAK 7 的新程式群組，其中包含三個項目：[IEAK 說明]、[IEAK 設定檔管理員] 及 [Internet Explorer 自訂精靈]。
您將使用 [Internet Explorer 自訂精靈] 來組建您的安裝套件。此精靈的用法相當簡單，因為每個畫面都會引導您完成套件的設計程序。有什麼附加條件呢？嗯，要知道如何設定每個選項需要清楚瞭解 Internet Explorer 中的功能及控制項。很幸運，IEAK 7 有這方面的說明。此工具的內建說明比舊版更詳細且描述的更清楚。[說明] 按鈕會出現在 [自訂精靈] 的每個畫面，以說明該畫面的設定及選項。您可以從 [IEAK 說明] 捷徑或透過 C:\Program Files\Microsoft IEAK 7 中的 IEAKHelp.chm 檔案，存取整個 IEAK 說明檔。我建議在建立組建之前先閱讀該文件，以瞭解每個元件並規劃所需的選項。
[自訂精靈] 將套件的建立過程分成下列五個階段：
  1. 收集資訊
  2. 指定安裝參數
  3. 自訂安裝經歷
  4. 自訂瀏覽器
  5. 其他自訂
Microsoft 已簡化許多您必須在 IEAK 7 中應付的畫面，所以程序比舊版更加清楚多了。然而，[自訂精靈] 仍然如變戲法似的出現許多畫面，您可在這些畫面上選擇套件的選項。因此，我不會在本專欄中討論每一個畫面，因為它們大部份都是不解自明，而且我已解釋過如何存取更錯綜複雜畫面的說明。反而，我將提供每一階段做什麼的簡短描述，並討論幾個更為重要的畫面。
階段 1 收集資訊：您可在此決定安裝套件的存放位置、將執行安裝套件的 OS 及平台、Internet Explorer 的發佈方式，以及要自訂的選項。在此階段中，您可以指定三種 Internet Explorer 7 發佈方法的任一個，如 [圖 1] 所示：檔案安裝，它會利用構成組建的檔案建立平面目錄結構；CD-ROM，它會建立安裝磁碟 (如果支援遠端使用者的話，請放在手邊)；以及只限組態或只限商標的套件，它會將自訂的設定套用至現有的 Internet Explorer 7 安裝。如果已安裝 Internet Explorer 7，並且想要將自己的自訂套用至其中，您可以對 Windows Vista 使用最後一個選項。
圖 1 指定散佈方法
圖 1 指定散佈方法
在此階段中，您也可以指定要對您的組建使用的語言。您可以對每一種需要支援的語言建立當地語系化版本的 Internet Explorer 7。
階段 2 指定安裝參數：您可以在此下載 Internet Explorer 的最新元件及更新，以便組建套件。
階段 3 自訂安裝經歷：在此階段中，您可以選擇使用者將接收的安裝 - 互動式 (安裝期間將呈現給使用者一些選擇)、免手控 (使用者可以看到安裝進行，但無法介入) 或完全無聲 (安裝將完全在背景中執行，不需使用者互動)。如果要組建 CD-ROM，此階段將提示您建立 CD 的起始頁及其他元素。
階段 4 自訂瀏覽器：您可以在此自訂 Internet Explorer 的外觀；設定 [首頁]、[支援網頁] 及 [我的最愛] 的 URL；設定 Proxy 設定；以及建立瀏覽器的隱私權及安全性設定。在此階段中，如果您不打算使用 [群組原則] 的話，也可以指定自動組態檔或網際網路設定 (INS) 檔的名稱及位置，然後利用此檔案來管理瀏覽器設定。
INS 檔是簡單的文字檔，其中包含所有主要的瀏覽器設定：從首頁到 [我的最愛]，以致安全性選項到 Proxy 組態。您可將此 INS 檔存放在內部 Web 伺服器上。然後，每個 PC 會指向此檔案，以取得其瀏覽器設定。如果未來需要修改任何設定，只需編輯 INS 檔，您的使用者舊會自動收到該變更。您可以指定更新及套用設定的頻率。
此外，在此階段中，您將有機會建立 Proxy 伺服器，方法為手動輸入其 IP 位址或連接埠號碼，或利用您的 Proxy 資訊建立並指定 JScript® (JS)、JavaScript (JVS) 或 Proxy 自動組態 (PAC) 檔的名稱。[IEAK 說明] 提供您可以用來建立這些檔案的程式碼範例。
如果是在 Windows Vista 中設計 Internet Explorer 7 套件，也可以啟用受保護模式。您只需在參照 PC 上開啟 Internet Explorer 7 的受保護模式，然後將該設定匯入 IEAK 中。
階段 5 其他自訂：最後在此階段中，您可以設定組建的使用者原則及安全性限制。您可以選擇性鎖定不想要使用者看到或修改的個別設定。[圖 2] 顯示 [其他設定] 畫面，其中有五種您可以啟用或停用的控制項。這些畫面上的設定取自於 Internet Explorer 7 的五個 ADM 範本。當您在精靈的第 2 階段下載最新瀏覽器元件後，即會安裝這些範本。如果使用 [群組原則]，可以略過此階段。如果不是，可以設定五種類別中的選項。因為這些類別直接來自 ADM 範本，所以您甚至可以利用文字編輯器編輯每個 ADM 檔，新增自己的自訂控制項，進而修改這些範本。ADM 檔位於 C:\Program Files\Microsoft IEAK 7\pol-icies 之下代表每個 Windows 作業系統及平台的不同子目錄中。[圖 3] 顯示五種類別，每種類別都有簡短描述。
圖 2 自訂 Internet Explorer 功能
圖 2 自訂 Internet Explorer 功能

檢查組建
完成 [自訂精靈] 中的畫面之後，會在第 1 階段指定的位置或依預設在 c:\builds 中建立您的套件。此目錄底下將是目的目錄 - IEAK 會使用目前日期作為此目錄名稱，例如，01012007 表示 2007 年 1 月 1 日。而在此之下是兩個子目錄路徑：一個是已命名的 INS，另一個則含有您選擇的散佈方法名稱 (FLAT、CD 或 BrndOnly)。
INS 目錄會充當工作區或儲存庫，以便在組建套件時追蹤您的自訂。此目錄中的文字檔稱為 install.ins，它會儲存您建立的所有設定。如果重新啟動 [自訂精靈]，將自動從這個檔案中挑選先前所選的項目。
FLAT、CD 或 BrndOnly 目錄會儲存真正的安裝檔案。在這三個位置的任一個底下是以 OS 及平台為名的子目錄，如 WIN32 代表 32 位元 Windows XP 或 Windows Vista。最終子目錄是以針對套件使用的語言為名，如 EN 代表英文。舉例來說，如果您在 2007 年 1 月 1 日對英文版 32 位元 Windows 使用 Flat 散佈方法，建立一個組建，則組建的目錄路徑會是 c:\builds\01012007\FLAT\WIN32\EN。
若要尋找以 Flat 散佈方法建立的安裝，請展開 FLAT 目錄結構，直到在語言子目錄中看到 IE7Setup.exe 檔案為止。這是一個可自動解壓縮的執行檔，其中包含所有構成組建的二進位檔及組態檔。此檔案是部署 Internet Explorer 7 套件僅需的檔案 (安裝時不需要 INS 目錄中的檔案)。您可以將此單一檔案複製至散佈伺服器以測試套件，然後就緒時，將它部署至您的使用者。
如果選擇 CD-ROM 散佈方法，您必須將 CD 目錄內的所有內容複製至 CD。這包括自動產生的 autorun.inf 檔案，以及含有可從 CD 安裝 Internet Explorer 之執行檔的目錄。
如果組建了只限組態或只限商標套件，請展開 BrndOnly 目錄結構，直到在語言子目錄中看到 Setup.exe 檔案為止。這是一個可自動解壓縮的執行檔，您可以將此檔案複製至散佈伺服器，以進行部署。

管理設定
您的 Internet Explorer 7 套件包含最初需要的所有功能及設定。但需要變更選項時該怎麼辦？您有兩個選擇。如果有 Active Directory，可以使用 [群組原則] 來更新瀏覽器設定。如果沒有，IEAK 會提供一個稱為 [設定檔管理員] 的工具來修改設定。讓我們先初步瞭解 [群組原則]。
使用群組原則：[群組原則] 是管理 Internet Explorer 的最好方法，因為它可支援所有瀏覽器設定。在舊版 IEAK 及 Internet Explorer 中，您必須將 ADM 檔案及 Internet Explorer 維護 (IEM) 檔案新增至 [群組原則] 主控台，才能納入 Internet Explorer 的所有設定。但是對於 Internet Explorer 7，Windows XP SP2 及 Windows Vista 包括所有必要的 [群組原則] 設定，才能維護及更新瀏覽器。
如果開啟 [群組原則編輯器] (gpedit.msc)，您會在 [系統管理範本] | [Windows 元件] | [Internet Explorer] 下找到 Internet Explorer 7 的所有必要設定。
使用 [IEAK 設定檔管理員]：您可以使用 [IEAK 設定檔管理員]，組建並建立自動組態或 INS 檔案，以儲存 Internet Explorer 7 的設定。[設定檔管理員] 一開始需要您載入或建立新的 INS 檔案。您可以從頭開始，利用在 [自訂精靈] 中設定的相同設定建立新的 INS 檔案。但是為何要重複工作呢？當您組建套件時，IEAK 會建立預設 install.ins 檔案，以儲存瀏覽器設定。不是在 [設定檔管理員] 中建立新的 INS 檔案，而是使用 install.ins。若要載入此檔案，請瀏覽至 builds 目錄中的 INS 路徑，如 c:\builds\01012007\INS。展開剩餘的子目錄，直到看見檔案為止。
[設定檔管理員] 會將其設定分成兩個區段，如 [圖 4] 所示。[精靈設定] 涵蓋如首頁、Proxy 設定及安全性區域的瀏覽器選項。這些選項對應至 [自訂精靈] 第 3-5 階段中的設定。[原則與限制] 區段控制可使用者限制，並對應至 [自訂精靈] 第 5 階段中來自 [原則與限制] 的五個類別。
圖 4 使用設定檔管理員來設定 Internet Explorer
圖 4 使用設定檔管理員來設定 Internet Explorer
因為已在組建套件時定義了這些設定，所以應該不必進行任何修改。不過，這是很好的機會，可以檢閱您為套件選擇的所有設定，確認這些設定正確無誤。
在驗證 [設定檔管理員] 中的設定之後，請在別處儲存 install.ins 檔案，然後將它複製至內部 Web 伺服器。要這麼做的話，您將必須輸入伺服器的通用命名慣例 (UNC) 路徑，這與您在 [自訂精靈] 第 4 階段的 [自動組態] 畫面指定的路徑相同。系統還會提示您儲存 CAB 檔案以及 [圖 5] 中顯示的 INS 檔案。為什麼？利用 [設定檔管理員] 修改 Internet Explorer 7 設定時，IEAK 通常需要將登錄項目下載至 Windows 用戶端。這些項目會儲存在 INF 檔案中，然後 INF 檔案會儲存在 CAB 檔案中。如果 INS 檔案的版本號碼由於新近修改而變更，則會產生新的 CAB 檔案以供下載。將 CAB 檔案儲存在 Web 伺服器上與 INS 檔案相同的位置。
圖 5 儲存自動組態檔
圖 5 儲存自動組態檔
同時製作 INS 檔案及 CAB 檔案的複本，然後將這些複本儲存至 Web 伺服器上的不同位置，是一個好主意。將這些複本同時設想為備份複本及測試複本。未來利用 [設定檔管理員] 修改 Internet Explorer 設定時，可以載入並修改測試 INS 檔案，以便在修改即時 INS 檔案前測試變更。
透過 [設定檔管理員] 變更瀏覽器設定或控制項是輕而易舉的事。只需選取適當的類別，然後就可以啟用或停用任一個選項。做完變更之後，請重新儲存 INS 檔案，然後將它複製回伺服器。
另一個建議：INS 檔案是簡單的文字檔。您可以利用 [記事本] 將它開啟，以檢視其設定。也可以利用 [記事本] 編輯 INS 檔案嗎？沒問題，而且設定將會生效。不過，使用 [設定檔管理員] 修改 INS 檔案可提供幾個好處。[設定檔管理員] 會視需要自動產生 CAB 檔案，而且也會在每次修改 INS 檔案時，於 INS 檔案中加上新版本號碼。因此，您應該一律使用 [設定檔管理員] 來修改 INS 檔案。

總結
IEAK 是一項有效的工具，可以迅速且有效地建立及自訂 Internet Explorer 7 組建。最新版的 IEAK 7 比舊版多出幾項改進 (更清楚的畫面、更多有用的說明)，可用來設計安裝套件。藉由瞭解及使用 IEAK，應該能夠傳遞可信賴的 Internet Explorer 7 安裝給您的使用者，而讓您的 CIO 感到滿意。
自動傳遞 Internet Explorer 7
Microsoft 計劃在 Internet Explorer 7 最終版本推出不久之後，透過 [自動更新] 以及透過 Windows 更新和 Microsoft 更新網站，以高優先權更新來散佈 Internet Explorer 7。如果您是系統管理員，這可能會引起問題，端視您的環境而定。如果您的使用者沒有本機系統管理權限，就收不到此更新。此外，如果利用 Microsoft Systems Management Server (SMS) 或 Windows Server Update Services (WSUS) 管理您的環境，您則已控制使用者可接收的更新。不過，如果您的部份或全部使用者具有本機系統管理權限，但您沒有管理更新的系統，則可能需要封鎖 Internet Explorer 7 更新。Microsoft 已建立 Internet Explorer 7 Blocker Toolkit。此工具組 (可從 Microsoft Download Center 取得) 包括 [群組原則] 範本，以及用來設定登錄機碼以阻止 Internet Explorer 7 更新執行的指令檔。

Lance Whitney 是 IT 顧問、訓練師及技術手冊作家。他曾為 4.0 版後的 Internet Explorer 建立支援的安裝套件。原先是一位新聞記者，大約 15 年前無意間踏入 IT 世界。


 SQL 問答集: 資料封存、連結的伺服器、測量頻寬，以及其他
SQL 問答集
資料封存、連結的伺服器、測量頻寬，以及其他
由 Nancy Michell 編輯

資料封存
問：我需要一個適合我的群組的完整資料封存策略。我目前的方法是根據標準模型，此模型可備份資料，然後執行可清除歷程記錄資料的公用程式。如果需要擷取已清除的資料，就會還原環境及資料庫 (本文含有連至英文網站的連結)。
我正在尋找可以分階段完成的封存解決方案。第一個階段，將從資料庫清除資料，但是仍可以即時存取。換言之，資料會被移除，所以便可以管理生產資料庫的大小，但是一般使用者仍能夠存取資料。第二階段，將完全移除資料，因此需要還原，才能存取資料。要如何作呢？
答：最簡單的方法就是還原資料庫的封存複本，然後修改應用程式，以存取新的、修整過的資料庫，或存取舊的、未修整過的資料庫 (如果使用者這樣要求的話)。這樣，每一段清除期間，您都有一份資料庫複本。
如果資料變更速度很慢，而且大部份資料在幾次清除之間都沒有變更，最終可能有許多重疊以及浪費的空間。另一方面，因為資料不常存取，所以您或許可以抱著僥倖的心態將此封存的資料放在幾個大型、速度較慢、價格便宜的磁碟機上 (而不是放在許多小型、快速、價格昂貴的磁碟機上)。如果每一個期間都會完整地重新整理資料，這將非常適合您。此處理程序應該相當容易管理，而且非常簡單。
此外，也應研究使用資料庫快照集的可能性，快照集提供了一種方法，可在修整舊資料庫之前，建立時間點複本。儘管快照集在某些狀況可能運作很好，但是它們也牽連甚多。資料庫快照集是「寫入時複製」(copy on write)，因此在取得快照集時，會持續維護原始資料庫與時間點之間的變更。如果原始資料庫發生許多變更，則快照集會變得相當大。
就判斷來說，資料庫快照集與備份和還原對立。如果您預期變更只有一些，那麼資料庫快照集比較合理，因為它只儲存差異的地方，但是如果您預期有許多變更，備份和還原就更適合。在此情況下，「寫入時複製」而節省空間的好處就沒了，因為管理快照集的難度仍然持續。
另一個選項就是使用資料表資料分割 (英文)。它可讓您採用特殊資料表、將索引鍵值指定為屬於不同的資料分割，然後將那些資料分割放在不同的檔案群組上。一旦您能夠控制哪些資料會進入某個資料表內的哪一個檔案群組，就可以對相關的成本運用更好的控制。您可以選擇要將檔案群組放在哪些實體磁碟機上 (請參閱先前有關便宜磁碟機與昂貴磁碟機的注意事項)，以及應該備份哪些檔案群組及其頻率。如果您讓那些檔案群組唯讀，也可以使用部份備份 (英文)。

資料庫數量
問：我的公司希望實作並管理一個預期能夠服務大約 5000 位客戶的應用程式。我們想要實作每位客戶都有一個資料庫，以確保機密。如果是 1 個資料庫或是 5000 個資料庫，伺服器的資源是否會因為用於特定資料及索引大小、使用者連接數目及工作負載而變得不是那麼有效率？
答：不管您的人員有多少，在資料庫之間維護相同的程式碼庫都是困難的事。修正資料庫程式碼中的某個錯誤，您必須執行 5,000 次。此外，資料庫復原次數會很驚人，執行如備份及資料庫一致性檢查的工作所需的時間也會很可觀。想想看下面的情況：銀行的主機上每一個有支票戶頭的客戶都有個別的資料庫嗎？
SQL Server™ 可以建立很多很多個資料庫，但是那不一定是最好的方法。只要想一下在相同期間在每一個資料庫執行一筆交易所要做的工作；每一個資料庫都有自己的交易記錄檔。如同我們大家都知道的，線上交易處理 (OLTP) 效能的一個關鍵就是維護一個交易記錄檔會利用循序寫入來寫入基礎磁碟的環境。如果您想要在這些資料庫中執行交易，而不只是從中讀取，請不要使用此方法。

查詢連結的伺服器
問：我正在 SQL Server 2005 Service Pack 1 (SP1) 上開發資料倉儲。我們的來源伺服器位於工作夥伴的網域上，而目的地伺服器則位於我們自己的網域上。我們正在透過連結的伺服器從來源伺服器擷取記錄。當我們利用來源資料表之間的聯結，從來源伺服器執行查詢時，查詢的執行速度很快。但是，每次即使是和目的地資料表做一個簡單的聯結，查詢好像永遠不會結束。為什麼？
答：避免跨伺服器聯結是最好的方法，尤其是跨越網域界限。換言之，根據您的特殊結果，發生此問題的原因是您的工作夥伴信任您的網域，但是您不信任您工作夥伴的網域。請嘗試重新分解您的查詢，以從來源伺服器執行查詢，然後將結果複製至目的地伺服器。這可以給您更好的結果。

測量頻寬
問：有任何測量資料庫鏡像所使用頻寬的最佳作法？我瞭解有一個需求是它必須是記錄檔產生率的三倍左右，但是如果需求不是很繁重，是不是可以透過 Web 的寬頻連接來執行資料庫鏡像？
答：除了原始輸送量外，您還需要考慮訊息來回的延遲 (如果 safety=full，更關鍵)，而且也需考慮到連結可靠性。資料庫鏡像會對可靠的網路連接進行最佳化，所以在重新連接時會有相當多的額外負荷。如果寬頻連接不穩定 (已捨棄連接或長時間延遲)，您可能無法維護連接。如需其他說明，請參閱有關鏡像效能考量的白皮書 (英文)。
安全存取 SQL Server
正在尋找在實際執行環境中安全存取 SQL Server 的建議？嘗試使用 Microsoft patterns & practices Developer Center。有三個樣式特別有趣：
  • Security Engineering Index(英文)
  • Security Guidance for Applications Index(英文)
  • Threat Modeling Web Applications(英文)

想要如何設定完整操作環境的詳細資料嗎？以下是兩個很好的參考：
  • Windows Server System Reference Architecture(英文)
  • Data Services Implementation Guide(英文)

感謝下列 Microsoft IT 專家提供其技術專業知識： Denis Altudov、Jayashree Anand、Gus Apostol、Bhavana Bartholf、Mike Blaszczak、Dibyendu Chakraverty、Shaun Cox、Laurentiu Cristofor、Ernie DeVore、Michael Epprecht、Nakul Garg、Phil Hummel、Steve Lindell、Kaloian Manassiev、Al Noel、Ward Pond、Paul Randal、Remus Rusanu、Mike Shelton、Christy Sutton、Kevin Tsai、Peter Ty、Val Wittenberg、Steven Wort、Kalyan Yella 及 Frankie Yuen。


 The Cable Guy: TCP 接收視窗自動微調
The Cable Guy
TCP 接收視窗自動微調
Joseph Davies

歡迎閱讀 TechNet Magazine 的 The Cable Guy 第一期。TechNet 網站的專欄忠實讀者早就知道我們報導了各式各樣的網路問題，我們每個月會在此繼續為您服務。如果您是新讀者，想要查詢舊專欄的保存檔，請前往 Cable Guy 網站 (英文)。
現在就開始第一個主題 - TCP 接收視窗。
TCP 連線的輸送量受限於傳送和接收應用程式、TCP 的傳送和接收實作，以及 TCP 對等端之間的傳輸路徑。在本專欄中，我將說明 TCP 接收視窗及其對 TCP 輸送量的影響、TCP 視窗調整的用法，以及 Windows Vista™ 新增的「接收視窗自動微調」功能，這項功能可以為接收的資料設定最佳的 TCP 輸送量。

TCP 接收視窗
TCP 連線有許多重要特性。第一點，它們是兩個應用程式層通訊協定之間的邏輯點對點運算。TCP 不提供一對多的傳送服務，只提供一對一傳遞。
第二點，TCP 連線為連線導向。兩個應用程式層必須先利用 TCP 連線建立程序正式協議 TCP 連線，才能傳輸資料。同樣地，協議之後會利用 TCP 連線終止程序正式結束 TCP 連線。
第三點，在 TCP 連線上傳送的可靠資料會依序排列，而且接收端應該會傳回正面確認通知。如果未收到正面確認通知，則會重新傳輸區段。接收端會捨棄重複的區段，而未依序送達的區段會放回正確的順序。
第四點，TCP 連線為全雙工。對於每個 TCP 對等端而言，TCP 連線由兩個邏輯管線組成：傳出管線和傳入管線。TCP 標頭包含傳出資料的序號和傳入資料的確認通知 (ACK)。
此外，TCP 會將透過傳入和傳出邏輯管線傳送的資料視為連續的位元組串流。每個 TCP 標頭中的序號和確認號碼是依照位元組界限來定義。TCP 並不曉得位元組串流內的記錄或訊息界限。應用程式層通訊協定必須提供傳入位元組串流的適當剖析。
若要限制單次可傳送的資料量並提供接收端流量控制，TCP 對等端可以利用視窗。視窗是指接收端允許傳送端在位元組串流上傳送的資料幅度。傳送端最多只能傳送位於視窗內之位元組串流的位元組數。視窗會沿著傳送端的傳出位元組串流和接收端的傳入位元組串流滑動。
對於指定的邏輯管線 (全雙工 TCP 連線的一個方向)，傳送端會維持一個傳送視窗，而接收端會維持一個接收視窗。沒有資料或 ACK 區段正在傳輸時，邏輯管線的傳送和接收視窗就會相符。也就是說，傳送端在傳出位元組串流中可傳送的資料幅度符合接收端在傳入位元組串流中可傳送的資料幅度。[圖 1] 說明這種傳送和接收關係。
圖 1 使傳送和接收視窗相符
圖 1 使傳送和接收視窗相符
TCP 標頭包含一個 16 位元的 Window 欄位來表示接收視窗的大小。接收端取得資料時，會將 ACK 傳回給傳送端，表示已順利收到位元組。在每個 ACK 中，Window 欄位會註明接收視窗中剩餘的位元組數。當應用程式傳送、確認及擷取資料時，傳送和接收視窗就向右滑動。接收視窗會控制還有多少未確認的資料可以從傳送端移至接收端。
因為接收視窗中可能有應用程式尚未擷取的資料及已收到但未確認的資料，所以 TCP 接收視窗還有另一個結構，如 [圖 2] 所示。
圖 2 TCP 接收視窗中的資料類型
圖 2 TCP 接收視窗中的資料類型
請留意最大和目前接收視窗之間的差異。最大接收視窗是固定大小。目前接收視窗的大小不固定，會對應於接收端允許傳送端傳送的剩餘資枓量。目前接收視窗的大小等於送回傳送端的 ACK 中所宣告的「視窗」欄位值，也等於最大接收視窗大小與應用程式已收到和確認但未擷取的資料量之間的差額。

TCP 接收視窗和 TCP 輸送量
為了達到最佳的 TCP 輸送量 (假設有一個合理無誤的傳輸路徑)，傳送端應該傳送足夠的封包來填滿傳送端和接收端之間的邏輯管線。下列公式可以算出邏輯管線的容量：
Capacity in bits = path bandwidth in bits per second * round-trip time (RTT) in seconds
容量稱為頻寬延遲乘積 (BDP)。管線可能很粗 (高頻寬)、很細 (低頻寬)、很短 (低 RTT) 或很長 (高 RTT)。又粗又長的管線的 BDP 最高。高 BDP 傳輸路徑的例子有衛星或企業廣域網路 (WAN) 上的路徑，包括洲際光纖線路。
增加高 BDP 傳輸的傳送端效能
新的「接收視窗自動微調」功能可加強透過高 BDP 連結接收資料的效能，那傳送端的效能又如何呢？
避免傳送的 TCP 對等端拖累網路的當前演算法起步緩慢且作用為避免擁塞。當最初在連線上傳送資料時和復原遺失的區段時，這些演算法會擴大傳送視窗 (傳送端可傳送的區段數)。
對於每個收到的確認區段 (指 Windows XP 和 Windows Server 2003 中的 TCP) 或每個已確認的區段 (指 Windows Vista 和 Windows Server "Longhorn" 中的 TCP)，起步緩慢可替傳送視窗增加一個完整的 TCP 區段。對於每個確認的完整資料視窗，避免擁塞可替傳送視窗增加一個完整的 TCP 區段。
這些演算法很適合較小的 BDP 和較小的接收視窗。不過，如果 TCP 連線的接收視窗和 BDP 都很大時，例如在高速 WAN 線路 (來回行程時間為 100ms) 的兩台伺服器之間複寫資料，這些演算法會來不及增大傳送視窗，因而無法充分利用連線頻寬。
為了在這種情況下善用 TCP 連線的頻寬，新一代 TCP/IP 堆疊包含「複合 TCP」(CTCP)。對於接收視窗和 BDP 都很大的連線，CTCP 會更積極地擴大傳送視窗。CTCP 會藉由監視延遲變化和耗損，試著將這幾種連線的輸送量調到最大。此外，CTCP 也會確保自己的行為不會對 TCP 連線造成不良的影響。
根據 Microsoft 內部所做的測試，在 50ms RTT 的 1 Gbps 連線上，備份大檔案的時間可縮短將近一半。DBP 愈大的連線，效能愈好。CTCP 和「接收視窗自動微調」互相搭配可以提高連結使用率，在 DBP 較大的連線上會有非常好的實質效能。
執行 Windows Server "Longhorn" 的電腦預設會啟用 CTCP，但執行 Windows Vista 的電腦預設會停用 CTCP。您可以利用 "netsh interface tcp set global congestionprovider=ctcp" 命令來啟用 CTCP。而利用 "netsh interface tcp set global congestionprovider=none" 命令可以停用 CTCP。

TCP 標頭中的「視窗」欄位大小為 16 位元，最多可讓 TCP 對等端宣告最大為 65,535 位元組的接收視窗。您可以利用下列公式來計算指定 TCP 視窗大小的大約輸送量：
Throughput = TCP maximum receive windowsize / RTT
例如，在 100ms RTT 的路徑上，不論傳輸路徑的實際頻寬有多大，以 65,535 位元組接收視窗而言，最多只能達到大約每秒 5.24 百萬位元的輸送量 (Mbps)。在目前的高 BDP 傳輸路徑上，最初設計的 TCP 視窗大小就算調到最大值，也會遇到輸送量的瓶頸。

TCP 視窗調整
為了讓較大的視窗大小能夠適應高速的傳輸路徑，RFC 1323 (ietf.org/rfc/rfc1323.txt) 定義視窗調整作業，而允許接收端宣告大於 65,535 位元組的視窗大小。「TCP 視窗調整」選項包含視窗調整係數，配合 TCP 標頭中的 16 位元「視窗」欄位時，最大可以將接收視窗大小增加到將近 1GB。「視窗調整」選項只會在連線建立過程的同步化 (SYN) 區段中傳送。TCP 對等端可以針對接收視窗大小，指定使用不同的視窗調整係數。TCP 視窗調整可讓傳送端在連線上傳送更多資料，所以 TCP 節點可以更充分利用某些高 BDP 的傳輸路徑。
雖然接收視窗大小對 TCP 輸送量很重要，但另一項會影響最佳 TCP 輸送量的重要因素是應用程式能夠以多快的速度來擷取接收視窗中累積的資料 (應用程式擷取速率)。如果應用程式不擷取資料，則接收視窗會開始填滿，導致接收端宣告更小的目前視窗大小。在最極端的情況下，整個最大接收視窗會填滿，導致接收端宣告視窗大小為 0 位元組。在這種情況下，傳送端必須停止傳送資料，直到清理接收視窗為止。因此，為了達到最佳 TCP 輸送量，應該根據連線傳輸路徑的 BDP 和應用程式擷取速率來設定連線的 TCP 接收視窗值。
即使可以正確決定 BDP 和應用程式擷取速率，但仍然會隨著時間而改變。BDP 速率會隨著傳輸路徑的擁塞情形而變化，應用程式擷取速率也會隨著應用程式擷取資料的連線數而變化。

Windows XP 中的接收視窗
如果是 Windows XP (及 Windows Server ® 2003) 中的 TCP/IP 堆疊，則接收視窗大小上限有一些很重要的屬性。首先，會根據傳送介面的連結速度，決定預設值。實際的值會自動微調到建立 TCP 連線時所協商的區段大小上限 (MSS) 平均增量。
其次，可以手動設定接收視窗大小上限。HKLM\System \CurrentControlSet\Services\Tcpip\Parameters\TCPWindowSize 和 HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interface\InterfaceGUID\TCPWindowSize 登錄值最多可設為 65,535 個位元組 (未採用視窗調整功能)，或是 1,073,741,823 (採用視窗調整功能)。
再者，接收視窗大小上限可以使用視窗調整功能。您可以將 HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Tcp1323Opts 登錄值設為 1 或 3，以啟用視窗調整。在預設的情況下，如果收到的 SYN 區段恰巧含有 [視窗調整比例] 選項，才會將視窗調整用於連線。
最後，在啟動連線時，應用程式可以利用 SO_RCVBUF Windows Sockets 選項，指定接收視窗大小上限。在調整視窗時，應用程式必須指定一個大於 65,535 位元組的視窗大小。
即使支援可調整視窗，Windows XP 中的接收視窗大小上限仍然會限制輸送量，因為它是所有 TCP 連線的固定大小上限 (除非由應用程式所指定)，它可以增加某些連線的輸送量，也可以減少某些連線的輸送量。另外，TCP 連線的固定接收視窗大小上限，不會隨著應用程式擷取率的變更或傳輸路徑壅塞而變化。

在 Windows Vista 中自動微調接收視窗
為了達到最佳的 TCP 輸送量，尤其對高 BDP 的傳輸路徑而言，Windows Vista (及下一版的 Windows Server，程式碼代號為 "Longhorn") 中的新一代 TCP/IP 堆疊可支援「接收視窗自動微調」。這項功能會測量 BDP 和應用程式擷取速率，並針對進行中的傳輸路徑和應用程式連線狀況來調整視窗大小，進而決定最佳的接收視窗大小。
「接收視窗自動微調」預設會啟用 TCP 視窗調整，最大允許 16MB 的最大接收視窗大小。當資料在連線上流動時，新一代 TCP/IP 堆疊會監視連線、測量目前的 BDP 和應用程式擷取速率，然後調整接收視窗大小來達到最佳輸送量。新一代 TCP/IP 堆疊不再使用 TCPWindowSize 登錄值。
「接收視窗自動微調」有許多優點。可自動決定每一個連線的最佳接收視窗大小。在 Windows XP 中，TCPWindowSize 登錄值會套用至所有連線。應用程式不必再透過 Windows Sockets 選項來指定 TCP 視窗大小。IT 管理員也不必再手動為特定的電腦設定 TCP 接收視窗大小。
利用「接收視窗自動微調」，Windows Vista 的 TCP 對等端宣告的接收視窗大小通常會遠大於 Windows XP 的 TCP 對等端。這樣可讓其他 TCP 對等端傳送更多 TCP 資料區段來填滿 Windows Vista TCP 對等端的管線，而不必再等待 ACK (依據 TCP 擁塞控制)。以常見的用戶端型網路流量而言 (例如網頁或電子郵件)，Web 伺服器或電子郵件伺服器可以更快地將更多 TCP 資料傳送給用戶端電腦，進而提高網路整體效能。連線的 BDP 和應用程式擷取速率愈高，效能就愈好。
對網路的影響是通常以緩慢、固定步調送出的 TCP 資料封包串流會加速傳送，以致在資料轉送期間形成網路使用量尖峰。如果透過又長又粗的管線執行相同資料轉送，Windows XP 和 Windows Vista 電腦可以轉送相同的資料量。不過，由於接收視窗較大，且伺服器填入從伺服器至用戶端之管線的能力較佳，所以 Windows Vista 用戶端電腦的資料轉送會較快。
因為「接收視窗自動微調」會增加高 BDP 傳輸路徑的網路使用率，對於已達到或接近容量的傳輸路徑而言，使用「服務品質」(QoS) 或應用程式傳送速率節流設定就會變得非常重要。為了滿足這種可能的需求，Windows Vista 支援以「群組原則」為基礎的 QoS 設定，可讓您依據 IP 位址或 TCP 連接埠來定義傳送流量的節流率。如需詳細資訊，請參閱原則型 QoS 的資源 (英文)。
增加高耗損網路的 TCP 輸送量
高耗損網路經常會逾時和重新傳輸，所以會明顯減少 TCP 輸送量。無線網路就是高耗損網路的一個例子 (例如符合 IEEE 802.11、整合封包無線電服務 (General Packet Radio Service，GPRS) 或全球行動通訊系統 (Universal Mobile Telecommunications System，UMTS) 規格的無線網路)，根據網路狀況、訊號衰減、電磁干擾及電腦位置改變而定，封包耗損率可能相當高。
下一代 TCP/IP 堆疊支援下列 4 個 RFC，以將高損失率網路環境中的輸送量最佳化。

RFC 2582：對 TCP 的快速復原演算法進行 NewReno 修改
在 RFC 2001 定義的快速復原演算法，是以 Reno 演算法為基礎，它可以提高區段因快速重新傳輸事件而重新傳輸時，傳送端所能傳送的資料量。雖然 Reno 演算法在單損失區段中效果不錯，但在多損失區段中卻不如預期。當一個資料視窗損失多個區段，而且傳送端收到一則部份通知 (通知您只有部份資料順利接收到) 時，NewReno 演算法可以改變傳送端在快速復原時，增加傳送率的方法，進而提供更快速的輸送量。

RFC 2883：TCP 之選擇性通知 (SACK) 選項的延伸
SACK (定義於 RFC 2018 中)，使用 SACK TCP 選項可以讓接收端指出多達四個不連續區塊的接收資料。RFC 2883 負責定義在 SACK TCP 選項中的欄位的額外使用，藉此通知您有重複的封包。這樣傳送者就能夠判斷它何時在不必要的情況下重新傳輸了一個區段，並且調整其行為，以避免未來再有不必要的重新傳輸。重新傳輸的次數愈少，整體輸送量愈佳。

RFC 3517：TCP 的保守選擇性通知 (SACK) 損失復原演算法
Windows Server 2003 和 Windows XP 中的 TCP/IP 目前實作，只用 SACK 資訊來判斷哪些 TCP 區段尚未到達目的地。RFC 3517 負責定義在收到重複通知時，利用 SACK 資訊執行損失復原的方法，以這個方法取代在連線啟用 SACK 時所用的較舊快速復原演算法。下一代 TCP/IP 堆疊會追蹤每個連線的 SACK 資訊，並且監視傳入通知以及重複通知，萬一有多個區段未在目的地收到時，能夠更快速的復原。

RFC 4138：轉送 RTO-Recovery (F-RTO)：以 TCP 和「串流控制傳輸通訊協定」(SCTP) 偵測假性重新傳輸逾時所用的演算法
RTT 突然增加可能會發生 TCP 區段進行假性重新傳輸，導致先前已傳送區段的重新傳輸逾時 (RTO) 開始到期，TCP 就會開始重新傳輸這些區段。如果在傳送全視窗資料的前一刻突然增加，傳送端可能會將整個視窗的資料全部重新傳輸一次。F-RTO 演算法可以經由下述行為，防止假性重新傳輸 TCP 區段。
當多個區段的 RTO 到期時，TCP 只會重新傳輸第一個區段。收到第一個通知時，TCP 便開始傳送新的區段 (如果通告的視窗大小容許時)。如果下一個通知確認其他區段已經逾時，但尚未重新傳輸，TCP 會判定逾時是假性動作，因而不重新傳輸已經逾時的區段。
結果是對於 RTT 突然暫時增加的環境 (比方說，當無線用戶端從一個存取點漫遊到另一個存取點時)，F-RTO 會避免進行不必要的區段重新傳輸，更快速的回到正常傳送率。使用 SACK 損失復原和 F-RTO，最適合使用 GPRS 連結的連線。

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


 Windows PowerShell: Windows PowerShell 建構
Windows PowerShell
Windows PowerShell 建構
Don Jones

上個月，我說過直接利用 Windows PowerShell 來解決管理工作的一些方法—真的不用寫任何指令碼。Windows PowerShell 是相當卓越的互動式命令介面 (Shell)，利用其功能強大又簡單的指令碼語言，就可以實際發揮它的功能來自動化相當複雜的工作。
您可能一開始就自問：Microsoft 真的需要另一種指令碼語言嗎？Microsoft 畢竟已經給了我們 KiXtart (一種登入指令碼處理器) 及 Visual Basic® Scripting Edition (VBScript)。答案是：需要。Microsoft 的確需要另一種指令碼語言。我會說明原因。
Windows PowerShell™ 語言必須簡單又直覺，讓管理員可以很容易上手，不用太多訓練。也必須相當靈活，才能搭配 Windows PowerShell 本身提供給使用者的所有強大功能。
因為 Windows PowerShell 以 Microsoft® .NET Framework 為基礎，指令碼語法就必須合乎 .NET 規格。在彙編 Windows PowerShell 的指令碼語言時，設計師選擇基本上相當簡化的 C# 語法 (唸成 C-Sharp，是 .NET Framework 隨附的語言之一)。為何不堅持使用 VBScript 之類的語法呢？Windows PowerShell 指令碼語言並非完全有別於 VBScript，只是為了更接近 C# 語法，好讓 PowerShell 能夠變成一種學習 .NET Framework 程式設計的墊腳石。如果決定提升到 Visual Studio® 並開始撰寫 C# 應用程式，則您大部分的 Windows PowerShell 指令碼語法也會隨之提升。
就此而言，Windows PowerShell 指令碼語言 (或任何指令碼語言) 最重要的一件事就是「建構」。這些是特殊的語言元素，可讓 Windows PowerShell 執行邏輯比較，並根據比較結果來採取不同的動作，或是不斷地重複一個或多個指令。

邏輯思維
還輯比較是許多指令碼語言建構的核心工作，Windows PowerShell 也不例外。基本上，比較時會查看兩個值或物件，然後評估比較為 True 或 False。例如，您可以自問：「這位使用者的密碼到期日是今天嗎？」如果日期相同，則結果為 True，如果日期不同，則結果為 False。請注意，True 和 False 的字首是大寫，因為這在 Windows PowerShell 中是兩個有特殊意義的術語。
下列是在 Windows PowerShell 內可真正執行的邏輯比較範例：
PS C:\> $a = 1
PS C:\> $b = 2
PS C:\> $a -eq $b
False
我建立一個變數叫做 $a，並設為含有 1 這個值。在 Windows PowerShell 中，變數名稱一律以貨幣符號開頭，這樣可以容易認出。在技術上，= 代表指派運算子，用來指派一個值。接著，我建立第二個變數 $b，並指派 2 這個值。然後執行實際的比較，我利用 -eq (equality) 運算子要求 Windows PowerShell 去比較 $a 和 $b 的內容。PowerShell 會執行比較，判斷出這兩個值不相等，然後顯示結果：False。
Windows PowerShell 運算子與您看過的其他指令碼語言稍微不同，甚至也不同於 C#。大部分語言將使用 = 運算子來執行等式檢查和值指派；為了避免混淆，Windows PowerShell 在每一項功能上有專屬的運算子。[圖 1] 顯示 Windows PowerShell 比較運算子，同時以您可能熟悉之其他語言 (例如 VBScript) 的同等運算子來做對照。
這些比較運算子還有一項有趣的特色。請看一下這個比較：
PS C:\> $a = "TechNet"
PS C:\> $b = "technet"
PS C:\> $a -eq $b
True
依預設，比較運算子不區分大小寫，也就是說大寫字母的 TechNet 和 "technet" 會視為相等。這樣子相當方便，因為在大部分的管理工作中，您並不考慮字母的大小寫。不過有時還是會考慮大小寫，您可以在比較運算子前面加上 c 這個字母，要求 Windows PowerShell 執行區分大小寫的比較：
PS C:\> $a -ceq $b
False
同樣地，如果您很在意或搞不清楚 Windows PowerShell 是否執行區分大小寫的比較，只要在前面加字 i 這個字母就可以了：
PS C:\> $a -ieq $b
True
只要記得邏輯比較的結果一定是兩個值的其中一個：True 或 False。

決策
您現在知道如何撰寫邏輯比較，可以開始運用在建構中。我要說明的第一個建構可讓 Windows PowerShell 根據比較來做決策。就叫做 If 建構，另有一些變化形式。下面是最簡單的格式：
PS C:\> if ($a -eq $b) {
>> Write-Host "They are equal"
>> }
>>
They are equal
其中有一些值得討論的事情。首先，變數 $a 和 $b 還是分別含有 "TechNet" 和 "technet" 值。我的建構一開始就使用 If 關鍵字。接著在括號內輸入我想要執行的邏輯比較。接著是大括弧，代表將會呼叫的條件程式碼的開頭 - Windows PowerShell 在比較結果傳回 True 時將執行的程式碼。從稍早的範例中，可知這項比較確實傳回 True，所以我預期會執行條件程式碼。我鍵入條件程式碼 Write-Host "They are equal"，然後按 Enter 鍵。最後，我鍵入右邊大括弧來結束條件程式碼區段，然後按兩次 Enter 鍵 (在空白行的第二個 Enter 鍵是讓剖析器知道我已經寫完，準備要執行程式碼)。
請注意，此建構並不是從指令檔中執行。而是直接在 Windows PowerShell 命令行中鍵入。這就是 Windows PowerShell 在 Windows 指令碼領域中的獨特之處：指令碼可以互動地建立，也可以放入檔案中永久保存。
當我鍵入左邊大括弧並按下 Enter 鍵時，Windows PowerShell 立刻就顯示 >> 提示符號。意思是：「我知道您在建構內，我已經準備好讓您輸入建構的任何內容。」當我鍵入右邊大括弧並按兩次 Enter 鍵之後，Windows PowerShell 就立即執行建構，並判斷出邏輯比較為 True，接著就執行條件程式碼。PowerShell 在回到正常提示之前先出現 "They are equal"，您是由此得知。在 Windows PowerShell 中互動地編寫指令碼可迅速測試小段的程式碼，再組合成更永久的指令碼，所以在學習和偵錯上都很簡單。
我應該指出 Windows PowerShell 並不會特別挑剔一些像是按 Enter 鍵的動作。例如，下列程式碼和前一個範例的用途一樣：
PS C:\> if ($a -eq $b) { Write-Host "They are equal" }
They are equal
因為是全部鍵入成一行，所以 Windows PowerShell 不需要顯示特殊的 >> 提示符號，當我在行尾按下 Enter 鍵時就會直接執行建構。Windows PowerShell 怎麼知道要開始執行建構？因為鍵入右邊大括弧時就表示完成建構。
我順便提一下 If 建構的其他變化形式。下列是完整範例，這是在 PS1 指令檔中的樣子，不是在命令介面 (Shell) 中：
if ($a -eq $b) {
  Write-Host "They are equal"
} elseif ($a -lt $b) {
  Write Host "One is less than the other"
} else {
  Write Host "One is greater than the other"
}
此建構一開始也是用 If 關鍵字。不過，考量到比較為 False 的情況，我利用 Elseif 關鍵字提供另一種比較。如果第二個比較也為 False，則最後一個關鍵字 Else 就提供一組最後會執行的程式碼。

自行重複
Windows PowerShell 有幾個建構可反覆執行程式碼，直到某些比較結果為 True 或 False 為止。程式設計師可以呼叫這些迴圈建構。更好的是其中一個最有用的迴圈建構能夠列舉集合中的物件，並且為每一個物件執行一行或多行的程式碼。此建構稱為 foreach 建構實在很貼切，如下所示：
PS C:\> $names = get-content "c:\computers.txt"
PS C:\> foreach ($name in $names) {
>> Write-Host $name
>> }
>>
don-pc
testbed
我一開始要求 Windows PowerShell Get-Content cmdlet 擷取 c:\computers.txt 檔案的內容，這是我自己建立的檔案，其中每一行有一個電腦名稱。Windows PowerShell 將每一行視為一個物件，所以檔案基本上是含有這些物件的集合。此集合最後會放在變數 $names 中。我利用 Foreach 關鍵字來要求 Windows PowerShell 列舉 $names 集合，以變數 $name 來代表迴圈每一次執行時的目前物件。迴圈程式碼放在大括弧內。所以我將檔案中的每一個名稱輸出到命令行。從建構後面的輸出可以看出 Windows PowerShell 的實際作法。您可以看出這在管理指令碼時有多麼明顯的好處：例如，建構伺服器名稱的清單很簡單，並且讓 Windows PowerShell 依次擷取每一個伺服器的資訊。

實際的建構
我們來做一下邏輯比較及 If 建構和 foreach 建構，做一些有用的事情。我想要快速檢查一組伺服器的 Messenger 服務狀態。我預期此服務在大多數的伺服器上已停止，所以我不要讓 Windows PowerShell 列出此服務處於這種狀態的所有伺服器，我只要列出 Messenger 服務確實已啟動的伺服器，因為我只想要對這些伺服器做一些處理。
我知道 Windows PowerShell Get-Service cmdlet 可協助擷取我需要的本機電腦資訊。但很可惜，此 cmdlet 無法觸及遠端電腦，而這正是我要的。幸好，我可以透過 Windows Management Instrumentation (WMI) 來存取這些資訊，用的是 Get-WMIObject cmdlet，這讓我可以使用遠端電腦。指令碼如下：
$names = get-content c:\computers.txt
foreach ($name in $names) {
  $svc = get-wmiobject win32_service '
   -computer $name -filter "name='messenger'"
  if ($svc.started -eq $True ) {
    write-host "$name has Messenger running"
  }
}
注意到第三行的 ' 字元嗎？此字元向 Windows PowerShell 表示接續下一行。如果雜誌的版面太小，印出一整行時一定要換行，這時就很有用。另外請注意我的 If 建構會比較 $svc.started 是否為 $True。變數 $True 是 Windows PowerShell 中的特殊變數，代表布林值 True (比較變數 $False 代表布林值 False)。實際上可以再簡化一些：
$names = get-content c:\computers.txt
foreach ($name in $names) {
  $svc = get-wmiobject win32_service '
   -computer $name -filter "name='messenger'"
  if ($svc.started) {
    write-host "$name has Messenger running"
  }
}
記住，If 建構的條件一定是 True 或 False。通常可以比較兩個值來得到 True 或 False，就像我在這段指令碼的第一個版本中所做的一樣。不過，因為 Started 屬性不是 True 就是 False，所以實際上不需要比較是否為 True 或 False。

一個有用的工具
您已有一個簡單又實用的管理工具，可利用建構來完成工作。不論是在 Windows PowerShell 中互動地鍵入，或儲存為 PS1 檔案來重複使用，這個方便的工具可以檢查各電腦上的服務狀態，並展現建構如何自動化管理工作的威力。

Don Jones是 SAPIEN Technologies 的專案與服務總監，也是《Windows PowerShell:TFM》(SAPIEN Press, 2006) 的執筆者之一。請造訪 Don 的網站，網址是 ScriptingAnswers.com。


 嗨，Scripting Guy！: 小心隔牆有耳
嗨，Scripting Guy！
小心隔牆有耳
Microsoft Scripting Guys

在美國南北戰爭時期 (更準確地說是在斯波特瑟爾韋尼亞縣府戰役 (Battle of Spotsylvania) 中)，聯邦將領約翰塞吉威克 (John Sedgwick) 驚訝地看到他的人馬在南軍狙擊手的突擊下畏縮不敢前進。相傳塞吉威克跟他的人馬說：「你們這樣逃，真是太可恥了。距離這麼遠，他們根本連一頭大象也打不到。」過了一會兒，塞吉威克就被殺了，成為這場戰爭中陣亡的最高階聯邦軍官。也許南軍狙擊手在這麼遠的距離下打不到大象，但卻可以打到將領，塞吉威克太倒霉了。
很顯然，故事的寓意是....您一定會說：「人家瞄準您開槍時，把頭壓低一點兒不就好了」，這就是很好的寓意，不是嗎？哦，不對，我們不是講這個。我們得到的寓意是：「說話小心，哪天就輪到你」。約翰塞吉威克就是這樣，對很多人來說，向來也是如此。例如，沒有人記得湯瑪斯華生 (Thomas Watson) 這位 IBM 永遠的領袖，也是美國歷史上最偉大的企業家之一。名垂千古的華生曾經說過：「我認為全球市場大概只要五台電腦就夠了」。
實在有趣，我們無法證實華生是否真的說過這句話，他頂多可能只是提到某人對這件事的看法而已。但誰在乎呢？畢竟，IBM 領導者可能說過沒有電腦市場的這個想法創造了一個精彩的故事，我們不能任由蠢事成真而搞砸一切，不是嗎？
順便一提，華生曾經說過：「如果想要成功，就讓失敗率加倍」。這是 Scripting Guys 一心奉為圭臬的告誡。
好吧，至少在失敗率加倍這部分是如此。
接下來看這句話：「如果您在編寫 VBScript 指令碼，您就無法存取 .NET Framework」。誠然，向人們說指令碼設計師無法存取 Microsoft® .NET Framework 並不像「距離這麼遠，他們根本連一頭大象也打不到」或「我認為全球市場大概只要五台電腦就夠了」那麼有說服力。然而，這種說法太過偏頗。.NET Framework 的設計的確以 C# 和 Visual Basic® 開發人員為對象，VBScript 也確實無法初始化原生的 .NET Framework 類別。但這並不表示指令碼設計師就無法存取 .NET Framework，至少不是完全無法存取。
沒錯，無可否認大多數的 .NET Framework 類別還是無法供 VBScript 使用。但還是有相當多的 .NET 類別有 COM 可呼叫的包裝函式，簡單地說就是這些類別有 COM 介面，可供 VBScrip t 等指令碼語言來存取。您難以置信嗎？那就看一下登錄的 HKEY_CLASSES_ROOT 部份，如 [圖 1] 所示；您會看到以 System 開頭的各種類別。
圖 1 登錄中的 System 類別
圖 1 登錄中的 System 類別
這大多數是 .NET Framework 類別，而且大部分都可以透過 VBScript 來初始化。
相信了吧！
當然，可以做並不表示應該做，只要曾在深夜電視購物頻道買過東西的人就知道 (這些商品不在店面銷售通常是有原因的)。當然，您可以在指令碼中建立 System.ContextMarshalException 類別的執行個體，我們只是不瞭解您為何要做或應該怎麼做。
但並非所有 .NET Framework 類別都是如此。例如，指令碼中最麻煩的事情之一就是很難排序項目清單。將清單按字母順序排列必須使用離線資料集或自行建立祕密的排序函數，就像下列的泡泡排序 (Bubble Sort) 程式碼一樣 (腸胃不太好的人可以考慮跳到下一段)：
For i = (UBound(arrNames) - 1) to 0 Step -1
    For j= 0 to i
        If UCase(arrNames(j)) >
          UCase(arrNames(j+1)) Then
            strHolder = arrNames(j+1)
            arrNames(j+1) = arrNames(j)
            arrNames(j) = strHolder
        End If
    Next
Next
別灰心，我們自己也不是很清楚自己所寫的程式碼意思為何。
那麼 .NET Framework 在這種情況下有什麼用？為了回答這個問題，我們來看一小段很簡單的指令碼：
Set DataList = CreateObject _
      ("System.Collections.ArrayList")

DataList.Add "B"
DataList.Add "C"
DataList.Add "E"
DataList.Add "D"
DataList.Add "A"

DataList.Sort()

For Each strItem in DataList
    Wscript.Echo strItem
Next
如您所見，我們在這裡做的是建立 .NET Framework 類別 System.Collections.ArrayList 的執行個體。接著用 Add 方法在清單中加入五個項目。好歸好，但有個問題：我們以任意順序加入項目 (B, C, E, D, A)，但必須按字母順序來顯示項目 (A, B, C, D, E)。該是搬出泡泡排序程式碼的時候了，對吧？
錯！(恕我直言，但錯就是錯。)結果是我們不需要搬出泡泡排序程式碼，只要呼叫 arraylist 的 Sort 方法即可：
DataList.Sort()
就這麼簡單。只要一行程式碼就可以排序陣列清單中的所有項目。
要證明嗎？哎呀！真是固執。沒關係，一定是會有一兩位只相信眼見為憑的讀者。因此，指令碼包含一個 For Each 迴圈來遞迴檢查清單中所有的項目，將每個項目的值回應在螢幕上：
For Each strItem in DataList
    Wscript.Echo strItem
Next
現在問您一個問題：執行這段指令碼之後會出現什麼？
猜對了：
A
B
C
D
E
好極了，不是嗎？
咦？好像還有人不太滿意哦！您覺得這樣很好是沒錯，但您真正想要做的是按遞減順序回應這些值，也就是說，您想要一個從 Z 排到 A 的清單，而不是從 A 排到 Z。如果不行的話，那麼.... .
好啊，沒有問題。您要做的只是要求：
Set DataList = CreateObject _
      ("System.Collections.ArrayList")

DataList.Add "B"
DataList.Add "C"
DataList.Add "E"
DataList.Add "D"
DataList.Add "A"

DataList.Sort()
DataList.Reverse()

For Each strItem in DataList
    Wscript.Echo strItem
Next
您說的對：看起來跟剛才的指令碼不是差不多嗎？可是其中多了一個重要的部分。請看一下我們加上的一行程式碼，在 Sort 方法下面的那一行：
DataList.Reverse()
看到沒？按遞增順序排序清單之後，我們就呼叫 Reverse 方法，這竟然反轉陣列中所有項目的順序。這樣會出現什麼？這樣會變成下列的輸出：
E
D
C
B
A
很厲害吧！
請稍安勿燥。還不只如此。您試過從 VBScript 陣列中移除項目嗎？別害怕，我們不會要您做的。我們會示範從 .NET Framework arraylist 中移除項目有多麼簡單。不喜歡 D 這個字母嗎？那就把它拿掉吧。下列指令碼會建立陣列清單、加以排序，然後移除 D 這個項目：
Set DataList = CreateObject _
  ("System.Collections.ArrayList")

DataList.Add "B"
DataList.Add "C"
DataList.Add "E"
DataList.Add "D"
DataList.Add "A"

DataList.Sort()
DataList.Remove("D")

For Each strItem in DataList
    Wscript.Echo strItem
Next
同樣地，請看一下 Sort 方法下面的一小行程式碼：
DataList.Remove("D")
我們用 Remove 方法來移除等於 D 的項目。下列是執行指令碼之後出現的東西：
A
B
C
E
D 就拜拜囉！
別忘了最厲害的部分：我們不必重新調整陣列的大小或重訂維度，就可以移除項目。酷吧！當然，不用重新調整大小或重訂維度也一樣可以在陣列中加入項目。您還敢說指令碼很難嗎？
信不信由您，我們連怎麼使用 .NET Framework arraylist 都還沒摸到 (如果需要詳細資訊，請參考 .NET Framework SDK 中的 arraylist 項目 (英文))。
arraylist 對指令碼設計師有用嗎？這樣說好了：看過 .NET Framework arraylist 之後，我們不知道您想怎麼使用內建的 VBScript 陣列，至少不是像這裡用的項目清單那麼簡單。
無可否認，Scripting Guys 並沒有徹底調查 .NET Framework 中有哪些類別對指令碼設計師有用 (或哪些類別沒有用)。這也是我們正在努力的地方。目前就請您逛逛完整的 .NET Framework SDK。每次瀏覽 SDK 時就會發現有一些新的和有趣的東西是指令碼作者用得到的。
例如呢？嗯...譬如產生隨機數字。想要用 VBScript 隨機數字產生器來產生 1 和 100 之間的隨機數字嗎？沒問題，只要用這樣的程式碼就好了：
Randomize
Wscript.Echo Int((100 - 1 + 1) * Rnd + 1)
將公式背起來了嗎？如果背不起來，別擔心，利用 .NET Framework System.Random 類別就更簡單又直覺：
Set objRandom = CreateObject("System.Random")
Wscript.Echo objRandom.Next_2(1,100)
不用多說，想必您一定懂的。不過我們還是稍微說明一下，沒辦法，TechNet Magazine 叫專欄作家們每個月一定要寫出一些東西來。(追問為什麼的話 - 那是他們的政策，不是我們訂的。)
如您所見，我們建立 System.Random 類別的執行個體，然後呼叫 Next_2 方法，並且傳入兩個參數：
  • 1，範圍的第一個數字 (記得，我們希望產生 1 和 100 之間的隨機數字)。
  • 100，範圍的最大數字。
這樣就可以了。
看來還有時間回答最後一個問題。沒錯，就是您。是誰說指令碼作者不能存取 .NET Framework 的啊？坦白說，畢竟我們一開始就沒有控制好時間。下個月見了！
祝一切順利
二月份快到了，這意味著一件事。不是情人節，也不是林肯誕辰。土撥鼠節嗎？天啊！拜託！都不是，二月份就要舉辦 2007 年冬季指令碼比賽 (2007 Winter Scripting Games)，這是全球首屈一指的 (可能是全球唯一的) 國際指令碼競賽。今年比賽的規模和品質一定勝過以往，這次分為四組：
  • 初級 VBScript
  • 進階 VBScript
  • 初級 Windows PowerShell™
  • 進階 Windows PowerShell
如果需要詳細資訊，請參閱 2007 冬季指令碼比賽首頁 (英文)。
不知道嗎？噢！那就謝謝了。祝土撥鼠節快樂。

立即下載 Windows PowerShell
現在已開放下載 Windows PowerShell 1.0，而且還是免費的！您怎能錯過呢！請立刻下載軟體並開始使用。

Microsoft Scripting Guys 為 Microsoft 做事，也就是受雇於 Microsoft。他們不玩/指導/觀賞棒球 (及各種其他活動) 時，就負責管理 TechNet 指令碼中心 (TechNet Script Center)。請看一下 www.scriptingguys.com。


 Exchange 問答集: 所有的答案我們都有 (因為問題是我們出的)
Exchange 問答集
所有的答案我們都有 (因為問題是我們出的)
KC Lemson and Paul Bowden

嗨！歡迎閱讀第一期的 Exchange 問答集！我們將以一系列的問題來開頭，老實說，這些問題是我們自己出的，因此把它定位為真正的問答專欄或許不太公平，
因為它只是發生在密室中的自問自答。不過，我們相信，這些問題可以代表 Microsoft® Exchange Server 客戶心中的疑問，因此，我們主張道德制高點。未來，我們當然歡迎您提出問題，敬請不吝賜教，將問題傳送至 queuea@microsoft.com。
我們目前對這個專欄的願景是希望它成為作家卡司的搖搖樂 (類似「把作家們往牆上一丟，看看誰沒掉下來」)，但我們每個人都已投入 Exchange 很多年了。本月的答案 (和問題) 是由 KC Lemson 和 Paul Bowden 共同編寫，他們兩位都是 Microsoft 的 Exchange 產品小組的部門經理 (Lead Program Manager)。我們在 Exchange 開發工作中算是老前輩了。我們做過很多嘗試，但都離不開郵件功能。
過去六年來，KC 都在 Exchange 團隊工作，她擔任過各種不同的角色，包括 Microsoft Outlook® Web Access (OWA) 的產品經理和負責 Exchange 發行前客戶方案的部門經理 (Lead Program Manager)。她目前是 Exchange 的使用者經驗經理 (User Experience Manager)，負責產品設計和客戶研究。在參與 Exchange 之前，她曾經做過三年的 Outlook 測試人員，在人們都認為封鎖電子郵件中的附件可執行檔是罪大惡極那樣的年代裡，她曾負責測試附件。KC 部落格網址：blogs.technet.com/kclemson。
Paul 用過去三年來的時間來研究精緻小巧的 Exchange Best Practices Analyzer (ExBPA) 工具。事實上，他在幾個月前才因為這個工具而獲奬，並與比爾蓋茲一起拍照留念。不過，隨時 Exchange Server 2007 專案結束，該是洗牌的時候了。Paul 必須停止沈溺在 XML 中，而回到現實世界裡。他即將成為 Exchange 下一個版本 (我們在 Exchange Server 2007 一發行就會開始進行的版本) 的發行經理。
順便一提，您是否感到這個專欄名稱所展現的智慧嗎？當然，我們不敢居功；這個名稱是 KC 部落格的讀者所建議的。(Tim，請穿上我們送的襯衫！)第二名的推薦名稱是「突破難關」和「如果我是 X64」，KC 非常欣賞後者，所以她註冊了 www.whenimx64.com，並讓它指向她自己的部落格，因為她辦得到。如果我們對生活中一切事務都能夠擁有如此大的支配力就好了。
旁注：KC 最初提議將這個專欄命名為「每月問答集」(The Monthly Queue and A)，直到我們的編者適時指出我們還不確定問題數量，而且按時提出問題的能力也還不足 (他回應時有禮貌而不冒失，但我們都知道他的想法)。還有，我們不清楚這個專欄的讀者會有什麼樣的意見，以及值不值得連載。因此，我們正陷入名稱的漩渦中，請務必讓我們知道您的想法：queuea@microsoft.com。
那麼，就直接跳到問題本身...

問：Exchange Server 2007 有什麼令人期待的？
答：我們都瞭解，以行銷問題作為第一篇專欄的開頭是很冒險，但 Exchange Server 2007 真得很棒，等不及要與您共同分享。我們會儘量在回答中限制「市場行銷」的成份，而只提到在電腦玩家的討論當中，Exchange 系統管理員或使用者為什麼很期待 Exchange 2007 的眾多技術性原因的其中一些。

延展性和效能改進
首先是顯而易見的 64 位元。您會問，這有什麼大不了的？32 位元 Windows® 只能支援總數 4GB (232 位元組) 的記憶體，根據預設，核心程式會使用 2GB，只留下 2GB 供應用程式使用。目前的 Windows 版本在 boot.ini 中支援 /3GB 參數，這使得應用程式有多達 3GB 記憶體的餘裕空間，但您一旦使用該參數，Windows 核心程式會有點不適應，您很快就必須重新啟動該伺服器才能收回資源。
幸好，64 位元支援搭配 Exchange 中基礎資料庫引擎 (JET) 的重大變更，解決了這個問題。由於 Exchange 伺服器以往受限於磁碟 I/O 的程度遠超過任何其他系統資源 (例如 CPU)，新增系統的記憶體表示您可以在記憶體中保留更多資訊而不必讀取磁碟，藉此大幅減少磁碟 I/O。因此，您可以利用 Exchange 2007，在類似配備的實體硬體上對使用者支援比 Exchange 2003 更大的信箱。例如，我在 Microsoft 的郵件伺服器可支援多達 4,000 位使用者及 2GB 的信箱配額，共可容納 6 TB 的資料。更明確地說，Exchange 2007 可以利用更多記憶體並不表示它需要這麼多記憶體，我們測試過一個產品，它執行 32 位元的 Windows Server® 2003 和 Exchange 2003 (含 4GB 或更少的記憶體)，然後又安裝 64 位元的 Windows Server 2003 和 Exchange 2007，其效能不相上下。
Exchange 2007 也包括兩種改進可用性的新方法：叢集連續複寫 (CCR) 和本機連續複寫 (LCR)。這些技術可減少因儲存失敗而造成嚴重問題的風險。LCR 會在同一部機器上保留資料庫的本機副本，但您可以將資料庫放在不同的儲存媒體上。CCR 可透過網路在兩部機器間執行相同動作。CCR 結合我們在這個專欄前面提到的磁碟 I/O 改進，而開啟儲存硬體的新選項；如果您想要使用直接連接的儲存媒體 (例如 SATA 或 SCSI 磁碟機)，在目前則是更具成本效益的效能改進選項。

管理
Microsoft 在 Exchange 2007 的全新管理經驗中投注大量心力，包括 [圖 1] 所顯示的命令列介面。它叫做 Exchange 管理命令介面 (EMS)，是以 Windows PowerShell™ 為基礎。如果您不喜歡使用命令列，也無所謂，GUI 仍然隨時待命，只不過它現在叫做 Exchange 管理主控台 (EMC)，而且是比舊式系統管理員更直接的介面 (請參閱 [圖 2])。如果您已是命令列介面的擁護者，或想要成為擁護者之一，請查看 Exchange 2007 中的 EMS。
圖 1 Exchange 管理命令介面中的儲存群組狀態
圖 1 Exchange 管理命令介面中的儲存群組狀態
圖 2 Exchange 管理主控台中的相同狀態
圖 2 Exchange 管理主控台中的相同狀態
在 Exchange 2003 中，您可能必須使用 Windows Management Instrumentation (WMI) 指令碼來執行一些更複雜的管理工作，但任何人都可以利用 EMS 完成這些工作，不過看到 "CD C:\TEMP" 可別以為那是某個新樂團的專輯 (ba dum bump)。雖然我們其中一人是前任 UNIX 系統管理員，因此客觀性可能受到質疑，但我們可以舉出眾多公正的協力廠商，他們保證此命令介面相當直覺式，即使您以前從未使用過命令列也無所謂 (在下一次的 Exchange 問答集專欄中會有更多描述)。
Windows PowerShell 的另外一項優點，就是它是以物件為基礎。當您從伺服器擷取資訊時，例如信箱或 SMTP 連接器清單，資訊會自動儲存在物件或變數中，並傳輸到 stdout 成為文字，以便閱讀。然後該物件可以直接傳送到另一個命令並在管線中操作 (此時它會傳送物件而非文字，以方便修改資料或操作其組件)。以下是一個簡單的範例：
Get-Mailbox | Set-Mailbox -ProhibitSendQuota 250MB
Get-Mailbox 命令會擷取系統中的信箱清單。| (叫做管線符號) 指出左邊的命令輸出應該傳送到右邊的命令。下一個部分 "Set-Mailbox-ProhibitSendQuota 250MB" 表示所有信箱現在都有配額，因此在達到 250MB 的大小之後，就不能再傳送電子郵件。您也可以將它設定為 250000000 或 250000KB 或 .25GB，命令介面在處理資料的方式上很有彈性。
Exchange 2007 另一項非常有用的管理改進是建立傳輸規則的能力，它使用與 Outlook 十分類似的規則精靈，將商業邏輯套用到通過系統的郵件。想要根據規則運算式封鎖看似內文中含有身分證號碼的電子郵件嗎？請勾選。想要設定隔離牆，使組織內的兩個部門無法彼此寄送電子郵件嗎？請勾選。想要將棄權聲明加到每一封要傳送到組織外的電子郵件嗎？請勾選。
我們覺得很棒的最後一項管理功能是可自訂的系統訊息：您現在可以直接將自訂文字新增至未傳遞回報 (NDR) (終於！)，以及使用者在超過其儲存配額時所看到的訊息。

協助服務中心
許多客戶最大的開銷之一是服務中心成本，這與在 Outlook 設定新設定檔有關。利用 Outlook 2007 的自動探索功能，只需啟動 Outlook，它就會自動查閱電子郵件地址，並使用「服務連線點」，從 Active Directory® 擷取 Exchange 伺服器資訊。如果您尚未連接到 Active Directory，只需輸入電子郵件地址和密碼，「自動探索查閱」服務就可以從指定的 Web 伺服器 (例如 http://autodiscover.contoso.com) 下載 XML 檔案，它含有基本組態資訊，例如要用於 RPC over HTTP (現在叫做「Outlook 無所不在」) 的伺服器。
另一項服務中心成本是處理反垃圾郵件篩選器顯然無法避免的誤判。使用者可以在 Outlook 中保留安全寄件者清單，這些寄件者的郵件不得受制於內容篩選，但直到 Exchange 2007，這些清單才讓郵件略過 Outlook 篩選器。不過，因為 Exchange 篩選器是在 Outlook 看到郵件之前對郵件起作用，所以，使用者仍可能錯失來自所信任人員的電子郵件。
Exchange 2007 也對此提供協助：如果您以 Exchange 2007 中的 Edge 或 Hub server role 使用反垃圾郵件內容篩選器，則可將此篩選器設定為傳播使用者的安全寄件者清單給該伺服器，使來自那些寄件者的郵件略過垃圾內容篩選器。當然，對某個使用者而言是垃圾的郵件，對另一位使用者而言可能是電子報，因此，安全寄件者彙總會逐一對使用者進行。

使用者的福音
利用 Exchange 2007 的整合通訊 (UM)，您可以在收件匣內接收輸入語音信箱和傳真。(如果您以前從未使用它，損失可就大了)。您也可以呼叫 Exchange 伺服器，叫它通知每個參加上午八點會議的人，說您會遲到。即使是最小型的組織也可以輕易擁有自訂的自動語音應答，因此當客戶致電給您時，系統可以正確路由傳送給您。若要使用 UM，您需要一個 IP 型 PBX (IP/PBX)，或自己銜接以傳統電路交換為基礎的 PBX 與 Voice over IP (VoIP) 閘道。
Link Access 是 OWA 2007 的新功能。如果您人在路途中且電腦並未安裝 VPN 用戶端，但您需要在公司網路的檔案共用或 SharePoint® 網站上檢視 Microsoft Word 文件，這時候該怎麼辦？沒問題，只要載入 OWA 2007，前往 [文件] 連結，然後輸入共用或 SharePoint 網站的名稱 (http://mysharepointsite 或 \\server\share)，即可瀏覽及開啟檔案。當然，系統管理員還有許多種安全控制可依其需要來鎖定 - 除特定清單外允許全部伺服器、除特定清單外拒絕全部伺服器、僅允許從私人電腦登入 OWA 的使用者存取文件等等。
OWA 也包括 WebReady 文件檢視 (依照電腦玩家的說法，這叫做「轉碼」)，如果您沒有在本機安裝適當的應用程式，可以在此處指示 Exchange 將特定類型的檔案呈現為 HTML。根據預設，Exchange 2007 將支援下列檔案類型的轉碼功能：DOC、DOT、RTF、WBK、WIZ、XLS、XLK、PPT、PPS、POT、PWS 和 PDF。轉碼引擎有可插入的架構，因此我們可以在 Service Pack 中增加新檔案類型的支援。還有一些管理選項，可讓您決定准許使用者轉碼的檔案類型，或完全禁止轉碼。
如果您有行動裝置使用 Exchange ActiveSync® 與 Exchange 進行同步處理，您一定會很高興知道，當您回覆或轉寄電子郵件書信時，郵件不再轉換成純文字。您的文字會加到最上面，但郵件其餘部份的 HTML 內文則維持現狀。這對任何支援 ActiveSync 的裝置都有效，它不需要用戶端裡面的功能。

問：我聽說 Exchange 2007「只有在生產用途上才是 64 位元」。這是什麼意思？
答：Exchange 2007 有 32 位元和 64 位元兩種方式可供使用。64 位元版本是用來供生產「現場」使用核心 server role (Mailbox、Hub Transport、Edge Transport、Client Access、Unified Messaging)。32 位元版本則是用來供 Exchange 2007 新功能評估使用。管理工具也可以使用於 32 位元的生產環境，因此，您可以從 32 位元 Windows XP 桌上型電腦管理 64 位元 Exchange 2007 生產伺服器。另請注意，Exchange 2007 架構必須從根網域中的電腦安裝 - Exchange 本身不需要安裝在根網域中，但我們要求架構延伸模組出現在根網域中，以確保架構主機有良好的網路連線。如果該網域中沒有 64 位元伺服器，您可以使用 32 位元版本的 setup.exe 來延伸架構。
您會問：32 位元的伺服器有什麼問題嗎？如果您曾經有幸在單一伺服器上執行數千個使用者，就知道在前述的記憶體限制之下，要在效能和穩定性之間達到平衡很勉強。如果過去兩年您曾購買新電腦，很可能已經支援 x64 延伸模組。事實上，最近要購買不支援 64 位元模式的新電腦也很難了。因此，很可能您環境中執行 Exchange 的電腦已具有 64 位元能力；只不過它現在執行的是 32 位元的作業系統。這讓我們想到一個好點子 - 當您購得新的 64 位元電腦後，請記得安裝 64 位元版本的 Windows Server 2003 SP1。
那麼，為什麼您會在安裝時看到不要在生產環境中使用 32 位元安裝的所有警告？雖然以多種方式編譯 Exchange 非常簡單，但每個元件已 100% 最佳化，並已針對 64 位元而調整 (有些我們選擇要在 64 位元系統中達到磁碟 I/O 改進的程式碼路徑實際上卻造成 32 位元環境效能降低)。事實上，當您以 32 位元進行田野調查時，別想要讓它在負載之下執行 (模擬或其他方式)；因為您無法得知它在 64 位元系統執行得怎樣或有多少個使用者可以在伺服器上執行的實際情況。
這樣夠清楚嗎？您可以使用 32 位元版本的 Exchange 2007 來執行下列動作：
  • 在不含真實使用者信箱的測試伺服器上評估新功能。
  • 漫遊新的管理主控台、命令介面或 OWA 介面 (不過要注意別在鍵盤上亂逛)。
  • 管理 2007 伺服器。
  • 在 Active Directory 樹系中延伸架構。
當您準備好要移動信箱時，需要有執行 64 位元作業統及 64 位元 Exchange 2007 的伺服器。如果沒有，就必須面對安裝程式和 ExBPA 的麻煩事 (請參閱 [圖 3])。Paul 知道這件事，因為程式碼就是他寫的！
圖 3 嘗試在只能執行 64 位元的地方安裝 32 位元
圖 3 嘗試在只能執行 64 位元的地方安裝 32 位元

問：我需要多少記憶體才能執行 Exchange 2007？
答：基本安裝需要至少 1GB 的實體 RAM。如前所述，有些 server role 負擔沈重。如果您想要安裝全方位伺服器 (例如 Mailbox、Client Access、Hub Transport 和 Unified Messaging)，或許您可以從 2GB RAM 開始，然後根據信箱數目和使用情形加以調整。如果您想要安裝 Edge role 或叢集，則需要安裝在個別電腦上。叢集只能安裝 Mailbox role，其他一概不行。
您一定會很高興得知，終於可以在 Exchange 伺服器上安裝 4GB 以上的 RAM。目前許多機器標準配備是 6 或 8GB，把資料探索記錄 (DDR) 模組拿掉或使用 /BurnMemory 讓 RAM 降到 4GB 是很糟糕的事 (很可惜，如果您有 4GB 以上，Exchange 2003 執行效能會變得更差且較不穩定 - 如需詳細資訊，請參閱go.microsoft.com/fwlink/?LinkId=76537)。
對基礎結構伺服器而言 (Hubs、Client Access 等等)，少於 4GB RAM 是沒有問題的，即使在最繁重的負載下也一樣。您要花大錢的地方是信箱伺服器。全新最佳化 64 位元 JET 快取會儘量利用您提供的記憶體。當然，和 Exchange 2003 不同，Exchange 2007 可支援多達 50 個儲存群組。
雖然每個儲存群組可支援多個資料庫，但這其實不會幫您節省多少 - 尤其是 LCR 和 CCR (我們先前討論過的兩種資料庫複寫形式) 只能使用有單一資料庫的儲存群組。如果您打算建立一大堆儲存群組或夢想為每位使用者提供 2GB+ 信箱，您當然必須增加額外的 RAM。Exchange 小組部落格有關於調整 RAM 大小的一些詳細資訊，但是 [圖 4] 和 [圖5] 提供一些小抄幫助您入門。
順便一提，Microsoft IT 使用的儲存群組數量為 7 的倍數，因為它們有循環備份排程，在指定日期只會備份少數儲存群組。我們稱呼此排程為「棒棒糖備份」是因為描述此備份排程的 Excel 試算表，其中在指定日期備份的儲存群組會以階層方式標示為紅色。希望這有所幫助。請針對下一個議題傳送「真正」的問題。

KC Lemson 是 Exchange Server 小組的部門經理 (Lead Program Manager)。她的空閒時間都花在幫忙保管柰及利亞王室的財產。
Paul Bowden 是 Exchange Server 小組的部門經理 (Lead Program Manager)。他的空閒時間都花在幫忙保管柰及利亞王室的財產。Paul Bowden 也是 Exchange Server 小組的部門經理 (Lead Program Manager)。他的大部分空閒時間都花在重新確認他的 PayPal 帳戶資訊 (應別人要求)。


 安全性監控: Windows Vista 中的加強服務
安全性監控
Windows Vista 中的加強服務
Wole Moses

由於病毒和蠕蟲在 Windows 系統中肆虐，造成 IT 部門陷於癱瘓，並讓企業和客戶遭受難以估計的損失，在歷經多件重大的資安事件之後，Microsoft 在 2002 年初宣佈「高可信度電腦運算方案」(Trustworthy Computing Initiative)。在這套方案中，Microsoft 公開
道歉，承認安全追蹤記錄的缺失，並立即修正路線，從強調功能豐富和實用性的軟體開發觀念轉為注重軟體的安全性和整合性。在 2003 年 8 月發作的 Blaster 蠕蟲 (疾風病毒) 進一步促成此安全性方案的推動 (關於疾風病毒的報導，請參閱資訊看板「複製人全面進攻」)。
高可信度電腦運算方案的原則包括「在設計上保全」，指的是安全撰寫程式碼的原理；「在預設上保全」，是關於確保 Windows® 的元件預設為最安全的設定；「在部署時保全」，必須透過建立工具和指導方針來協助企業和客戶保護 Windows 基礎建構的安全性。
「高可信度電腦運算方案」(Trustworthy Computing Initiative) 大致上已在安全性方面達到明顯的改善，可惜 Windows XP 是在此計劃推出的前兩年發行，所以完全未享受到好處 (雖然 Service Pack 2 (SP2) 已極盡所能地納入這些原理，但 Windows XP 終究無法徹底翻新來融入這套計劃)。
因此，Windows Vista™ 是第一個完全與高可信度電腦運算目標一致的 Microsoft 桌上型作業系統。Windows Vista 加強服務是「高可信度電腦運算在設計上保全」原則的具體實作 (請參閱 [圖 1])，這是一項重要的新功能，目的是為了防止現今許多惡意程式碼可能執行的錯誤服務行為。加強服務可協助 Microsoft 大刀闊斧地改造 Windows 服務的預設行為和安全設定檔。

危險的服務
Windows 服務 (以前稱為 NT 服務) 是在自己的 Windows 工作階段中長時間執行的應用程式。服務可以在電腦開機時自動啟動、可以暫停和重新啟動、通常不會顯示任何使用者介面，也可以用不同於已登入的使用者或預設電腦帳戶的安全帳戶來執行。因此，對於特定類型的應用程式開發和需要使用這些應用程式的一般使用者而言，Windows 服務是相當不錯的工具。不過，也因為強大的功能和彈性，Windows 服務向來就容易遭到入侵，原因其實眾多。
首先，以往 Windows 服務通常是以權限很高的 Windows 帳戶來執行，例如本機系統帳戶。如果以本機系統帳戶執行的服務被惡意程式碼破解，則惡意程式碼在該系統上幾乎就可以為所欲為了。例如，以 Windows XP 的遠端程序呼叫 (RPC) 服務為例。在 Windows XP SP2 之前，RPC 服務是以本機系統帳戶來執行，一旦找到 RPC 的弱點之後，Blaster、Welchia 及其他蠕蟲就可以執行系統管理工作。
其次，許多服務都會連上網路，這讓惡意程式碼更有機會探測服務，經由網路建立對入連線，再利用已感染的服務建立對外連線來感染其他系統，或執行其他一些非法活動，例如竊取受監視的按鍵動作。目前大部分的蠕蟲和惡意程式碼都是經由一些網路連線方式來感染。
最後，服務經常需要長時間執行，也就是說從系統開機一直執行到關機為止。這正好讓惡意程式碼的作者稱心如意，因為只要系統一直執行，他們就可以不斷探查服務的漏洞，結果讓惡意程式碼有充足的時間來執行心懷不軌的活動。

複製人全面進攻
他可能大獲全勝。如果一切按照計劃進行，他可能很快就掌控全球數十萬個 Windows 系統，並下達任何指令，然後若無其事地看這些系統忠實地執行他的每一道命令。
他用自己的方法不斷狡滑地暗中探查許多個電腦系統，尋找可攻擊進入點。很快就會找到未安裝修補程式的系統，而他完全知道如何利用這種系統上已知的漏洞。
只要他順利找到漏洞，就可以取得完整的管理權限來存取系統，就是這樣讓這種漏洞變成相當危險。他完全掌控任何帳戶：他可以操縱 Windows 中管理權限最高的帳戶。他可以為所欲為，如入無人之地。
才這麼靈光一閃，他就開始在未安裝修補程式和有弱點的機器上測試他的惡意程式碼—結果成功了！就是這麼簡單，他現在對那台電腦擁有至高無上的權限。他利用自己的管理權限來強制機器下載並安裝特洛伊木馬程式、修改登錄，然後重新開機，將已感染的系統轉變成代理者來忠實地執行他的命令。修改登錄的結果，造成每次電腦重新啟動時就會執行惡意軟體。
現在，他的意圖很明顯了。在感染之後，任何已被感染的機器會探查網路上其他所有機器的特定網路連接埠。只要該網路連接埠已開放且機器有漏洞，特洛依木馬程式就會下載並安裝在這台新機器上。一樣也會修改登錄。同樣的過程會反覆地自動發生，形成一發不可收拾的複製人攻擊軍團。直到有一天，全球成千上萬的 Windows 系統都變成他邪惡的複製人軍團，完全無法回應全世界任何人發出的任何命令。
這樣還不夠看，他將焦點轉向 Microsoft Windows Update 網站，在 2003 年 8 月 15 日當天命令所有複製人發動「阻絕服務攻擊」，企圖阻止全球的電腦下載漏洞修正程式，有趣的是修正程式早在數個月以前就出現了。
您可能早就看出，我只是描述 MS 疾風病毒在 2003 年 8 月時侵襲全球每個角落的 Windows 電腦。「疾風病毒」無疑是史上對 Windows 最慘重的攻擊之一，造成數十億美元的損失。雖然疾風病毒在受感染的機器上擁有至高無上的權力，但它在實作上卻相當簡單，很諷刺吧。

疾風病毒的運作方式
疾風病毒及其變種病毒利用 Windows RPC 服務的漏洞來執行緩衝區溢位。順利找到此漏洞的攻擊者可以在受感染的系統上以本機系統權限來執行程式碼，因此可在系統上採取任何動作：安裝程式、檢視、變更或刪除資料，以及建立擁有完整權限的新帳戶。
以疾風病毒來說，蠕蟲會自動掃描網路，尋找已開放 TCP 連接埠 135 的電腦。找到對象之後，疾風病毒就試著探查 RPC 漏洞。順利的話，接著就連接到目標上的連接埠 4444，並命令那台電腦啟動「簡單式檔案傳輸通訊協定」(tfpt)，從受感染的系統下載一份蠕蟲，稱為 MSBLAST.EXE (Tftp 是 Windows 2000、Windows XP 及 Windows Server 2003 作業系統中內建的通訊協定)。發動攻擊的系統接著命令剛剛受感染的電腦啟動 MSBLAST.EXE，結果那台電腦又成為新的攻擊者。疾風病毒還會在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft \Windows\CurrentVersion\Run 登錄機碼中寫入程式，讓自己可以在每次電腦開機時執行。

加強服務
Windows Vista 以四種方式來強化和保護服務的安全：以「最低權限」執行服務、「服務隔離」、「限制網路存取」及「工作階段 0 隔離」。我會詳細討論每一種方式。
以最低權限執行 許多 Windows 服務在以前都是以本機系統帳戶的權限來執行，這是 Windows 中權限最高的帳戶。本機系統帳戶提供的使用者權限包括存取幾乎任何的系統物件或另一位使用者的設定檔、模擬使用者、開啟機密的登錄機碼 (例如：HKLM\SECURITY) 以及將電腦的認證傳給遠端伺服器。因為惡意程式碼的作者很喜歡這個等級的 Windows 控制權，所以任何在本機系統安全範圍下執行的服務一定會成為一隻大肥羊。
事實上，雖然許多 Windows 服務都設定為以本機系統帳戶來執行，但大部分只需要本機系統帳戶特有的一小部分權限而已。很不幸地，Windows XP 和舊版的 Windows 都是以「零合」的方式運作，也就是說沒有機制可挑選所需的權限。因此，許多 Windows 服務最後一定是以過多的安全性權限來執行。
Windows Vista 加強服務在服務設定中引進最低權限的觀念來解決這個問題。最低權限可讓服務以滿足功能所需的最小權限來執行，不強迫以指派給登入帳戶的所有預設權限來執行。
例如，服務可能需要在作業系統中執行，但不需要建立安全性權杖。利用最低權限就可以移除「建立權杖」的權限。一旦服務在未來變成可探查的漏洞時，可藉此降低攻擊者所造成的損害。開發人員可以利用命令行工具，例如 SC.exe (請參閱 [圖 2])，或利用程式設計方法，定義和指定特定服務所需的權限。Microsoft 在出廠時就已在所有預先安裝的 Windows Vista 服務上套用最低權限，藉此降低預設權限。
圖 2 SC 命令選項定義 Windows Vista 服務權限
圖 2 SC 命令選項定義 Windows Vista 服務權限
服務隔離 在 Windows Vista 以前的 Windows 版本中，當服務需要存取需要授權的物件時 (例如機密的登錄機碼或檔案)，服務可透過三種方法來取得權限：利用本機系統帳戶來存取物件；降低登錄機碼或檔案的安全性，讓權限較低的服務帳戶可以取得權限；或特別為服務建立帳戶，只允許該帳戶存取物件。
雖然這些方法都可以使用，但每一個方法仍有一些基本的問題。前兩個方法原本就較危險，最後一個方法則必須手動管理新帳戶的密碼，說起來有些麻煩。
例如，假設防毒程式安裝的服務需要存取幾個機密的系統物件，例如病毒碼檔案和防毒軟體的相關登錄項目。如果防毒服務設為使用本機系統帳戶或為此而使用其他內建的安全帳戶來存取物件，則表示只要其他使用該帳戶的 Windows 服務遭到惡意程式碼感染，該惡意程式碼就可能存取和修改病毒碼檔案、更改會影響防毒軟體運作的登錄設定，或乾脆關閉整個防毒服務。事實上，目前的惡意程式碼就是利用這些技巧來隱身執行。
Windows Vista 利用服務隔離來解決這些安全和管理方面的問題，這種方式利用含有服務安全性識別碼 (SID) 的存取控制項目來保護資源 (例如檔案或登錄機碼)，可讓服務保留物件給自己專用。因此，我們在範例中提到的防毒服務可以用低權限帳戶來執行，但仍可存取機密的簽名檔或登錄機碼。為了開放這種存取權，Windows Vista 必須指派 SID 給防毒服務 (以這種低權限帳戶來執行)。指派 SID 之後，防毒程式就可以修改檔案系統的存取控制清單 (ACL) 和登錄物件，取得防毒服務的專用存取權。
以下是另一個範例。回到 2003 年，那時 Welchia 蠕蟲開始利用 RPC 漏洞將自己寫入 %System%\Wins\Dllhost.exe 中。也在 HKLM\SYSTEM\CurrentControlSet\Services 中加入機碼，以便在受感染的 Windows 系統上安裝自己的服務。不過，現在的 Windows Vista 會限制只有特定的服務才能存取位置，並利用低權限帳戶來授與權限給這些服務，已經可以阻止 Welchia。
有限制的網路存取 Windows Vista 提供一個以 Windows XP SP2 防火牆的功能來打造的新防火牆。主要的新功能包括輸出過濾和 IPsec 整合。新的防火牆也會整合 Windows Vista 加強服務，在被入侵的 Windows 服務內執行的惡意程式碼將更難以執行某些不正當的網路活動。
在 Windows Vista 防火牆內，將指派網路防火牆原則給 Windows 服務，以對服務行為提出限制和約束條件。例如，Plug and Play (隨插即用) 這項服務可能永遠不需要經由網路連接埠來進行通訊，所以可以指派「無網路存取」限制。設好這項限制之後，針對該特定服務的探查活動就一定無法透過一些網路方法來接觸服務。該受限的服務只要試圖對內或對外通訊，就會被防火牆擋掉。其他需要正當存取網路的服務可以設為只使用特定的連接埠。開發人員可以利用這項功能來限制服務的網路存取。
網路限制結合加強服務就形成堅固的防禦保壘，可抵擋潛在的服務型攻擊，這是自先前許多版 Windows 以來的一項重大進步。在以往，Windows 無法決定如何、何處及哪些服務可透過網路來通訊。然而，只要在 RPC 服務上設定 Windows Vista 防火牆網路限制，就可以防止病毒 (例如 Blaster、Sasser 或 Welchia) 利用受感染的服務與其他機器通訊。
工作階段 0 隔離 Windows XP 的快速切換使用者功能將每一位使用者放在不同的 Windows 工作階段中，允許多位使用者同時登入。開機時會建立工作階段 0，然後依需要再增加更多工作階段。服務一律在工作階段 0 執行，在 Windows Vista 以前，使用者應用程式也能夠在工作階段 0 執行。不過，讓使用者應用程式和 Windows 服務在相同的工作階段中執行，確實有安全上的風險，因為服務會提高權限來執行，因此會成為設法提升權限等級的惡意軟體鎖定的目標。
Windows Vista 保留工作階段 0 給服務專用、在其他工作階段中執行應用程式、將工作階段 0 設為非互動區 (這表示服務無法建立供使用者存取的使用者介面，例如對話方塊或命令提示字元)，藉以解決這些安全風險。由於這些改變，「工作階段 0 隔離」勢必影響到 Windows 服務或驅動程式開發人員的應用程式相容性。

總結
Windows Vista 是 Microsoft 第一個完整的「高可信度電腦運算」桌上型作業系統版本，提供明顯的進展，一定可以持久保護 Windows 使用者。當然，電腦安全性是一個不斷演進的領域，惡意程式碼作者也一定會不斷尋找、探查及研究新的方法來破解 Windows。不過，Windows Vista 中新的「加強服務」功能已強化預設的安全設定並縮小可能的攻擊面，確實已提高入侵的門檻。有關這些顯著改善的詳細資訊，請參閱 microsoft.com/whdc/system/vista/Vista_Services.mspx。

Wole Moses 是 Microsoft 地區性 Windows 主管，有八年的 Microsoft 使用經驗。Wole 目前以土耳期伊斯坦堡為主軸，與中東和非洲最大的新興市場客戶一起合作，協助他們規劃和設計 Microsoft 解決方案，希望充分善用他們的 IT 基礎建設來達到最高的安全性。


 桌面檔案: Windows Automated Installation Kit
桌面檔案
Windows Automated Installation Kit
Wes Miller

長久以來，Microsoft 提供了兩個版本的部署工具，都是由 Windows 部署團隊生產的。第一個版本採用的形式是用於部署的 .cab 檔案，多年來都是隨附在 Windows CD 上。其中包括說明文件和一些工具 (比如用來建立自動安裝檔案的安裝管理員)，以及
用來準備桌上型電腦以進行部署的 Sysprep 工具。另一個版本的部署工具是 OEM Preinstallation Kit (OPK)，專門設計來符合 OEM 系統製造商的需求，而且只供他們使用。這是散佈 Windows® PE 的原始方式。有新版的 OPK 可供 Windows Vista™ 使用，但是仍然只供 OEM 使用。
幸好對於大部份其他的 Microsoft 客戶來說 (其中有部份客戶無法在使用 Windows XP 的期間取得 Windows PE)，還是有近似的 OPK 可供他們使用，稱為 Windows Automated Installation Kit (WAIK)。在 Windows Vista 推出後，WAIK 將可免費從 microsoft.com/downloads 下載，其中將包括下列元件：Windows PE 2.0、Windows Deployment Services、ImageX 及 Windows System Image Manager。Windows System Image Manager 是我先前從未提過的工具，可讓您建立 unattend.xml 檔案，以自動執行安裝。也包括所有工具的完整說明文件。
請注意，取得 WAIK 的建議方法是從 microsoft.com/desktopdeployment 下載完整的 Business Desktop Deployment Solution Accelerator (BDD)，它不僅提供 WAIK，還提供 User State Migration Tool (USMT)、Application Compatibility Toolkit (ACT)。BDD 也包括其他工具及指導，可協助您順利部署 Windows Vista。

Windows PE 2.0
我已經在 2006 年 11 月那一期的 TechNet Magazine 深入探討過 Windows PE 2.0，所以我在這裡就不再多言；只說 WAIK 將為 Windows Vista 提供正式版本的新 Windows PE 組建就好。因為 WAIK 中的所有其他工具不是要以某種方式使用 Windows PE，就是要和 Windows PE 搭配使用，所以瞭解 Windows PE 是很重要的事。您可以在這裡找到我為 Windows PE 2.0 撰寫的文章。.

ImageX
在我的上一篇專欄中，我花費了相當長的時間來探討 Windows Imaging (WIM) 檔案格式。(請參閱 microsoft.com/technet/technetmag/issues/2006/12/desktopfiles。)現在我將探討 ImageX，一個很小但功能強大的命令列工具，這個工具讓內建 Windows Vista 映像成為可能。在規劃 ImageX 的時候，我們曾考慮建立 GUI 型的工具，但是最後決定專注於命令列，因為映像處理程序的自動化是關鍵元件。若要查看 ImageX 的命令列選項，請參閱 [圖 1]。
圖 1 [執行] 中的 ImageX 命令列工具
圖 1 [執行] 中的 ImageX 命令列工具
稍後將說明的 Windows Deployment Services (WDS) 確實提供了一個輕量型的 GUI 工具，可以用來輕鬆擷取映像，但它並不會提供 ImageX 的完整功能。很重要的一點是要注意到，ImageX 的設計和測試都是為了擷取映像以在 Windows PE 下部署。它並不是設計來「即時」擷取目前正在執行的 Windows 系統。
如果您熟悉任何其他的系統映像工具，那麼也會對 ImageX 感到某種程度的熟悉。ImageX 設計成簡單易用，可讓您輕鬆擷取並套用映像，而且還提供在它之前出現的常用部署工具中經常遺失或不完整的重要功能。我會短暫提一下一個這樣的例子，就是能夠輕鬆且不漏痕跡地將映像裝載成本機檔案系統的一部份，這樣您就可以檢視、修改或刪除現有映像中的檔案。
ImageX 提供 [圖 2] 中顯示的映像操作參數。我馬上會呼叫幾個特定的命令，深入地說明這些命令。
Capture 命令應該是相當清楚，要記住的要點是每一個 WIM 您只能使用 Capture 一次。因為 WIM 檔案只是檔案擷取，所以您可以擷取整個磁碟區 (C:) 或甚至只擷取目錄 (C:\Test)。應用程式也是一樣，您可以將映像套用至目錄 (即使您是擷取整個磁碟區) 或是磁碟區的根目錄 (比較可能是這樣)。一旦單一磁碟區映像已經在 WIM 之中，您可以使用 append 命令來新增到其中。Apply 也是不解自明，只在您套用多個 WIM 檔案時，才會變得複雜。如果想要移除特定磁碟區映像的參照，delete 命令很好用 - 但是，若要完整地移除該映像中的資料，必須使用 export 建立一個完全沒有資料的新 WIM (亦即，如果想要移除剩餘的資料來減少映像的大小，必須使用 export)。就把 export 想成可以充當磁碟重組工具或合併工具，讓您能夠將磁碟區映像編排成一或多個 WIM 檔案，或將映像匯出到自己本身完全獨立的 WIM 檔案。ImageX 也提供下列映像編輯參數：IMAGEX /MOUNT、IMAGEX /MOUNTRW 及 IMAGEX /UNMOUNT。
如同先前所提到，產品團隊從一開始就已將編輯功能納入映像工具及格式。只要啟用編輯，格式及工具將允許客戶將檔案複製到裡面或複製出來、套用 Service Pack、新增/移除檔案或獨立的應用程式，或視需要新增/移除映像中的其他資料 (即使是裝載及修改登錄)。映像的服務永遠會是關注的焦點。
您可以將裝載映像想成將 WIM 檔案載入為虛擬目錄。如果您熟悉這些東西，適當的類比可能更像是磁碟區裝載點，它可讓您將整個磁碟區裝載到其他磁碟區上的目錄 (例如，使 F: 可以看成 C:\DriveF)。同樣地，您可能用過 Microsoft® Virtual CD 工具或其他 ISO 裝載工具，這些工具可讓您將 ISO (CD) 映像裝載成本機磁碟機。ImageX 可讓您以相同的方式，將 WIM 檔案裝載成目錄上面的附加物。您可以建立目錄，然後使用 mount 命令，將指定的磁碟區映像覆蓋到目錄之上，好像就是在那裡套用的一樣。
不過，和 Virtual CD 工具不同，即使 WIM 映像位於網路共用，或即使位於卸除式媒體，也可以裝載。當然，這樣做可能會限制其編輯功能 - 光碟媒體 (CD 或 DVD) 上的 WIM 通常只能在唯讀模式中編輯。如果是在讀/寫模式中編輯，一次也只能編輯 WIM 中的一個磁碟區映像 - 這是為了在卸載檔案時，能夠有適當的鎖定，以及可以安心更新檔案。
您可以將映像裝載成唯讀 (/mount) 或讀/寫 (/mountrw)。使用讀/寫時，會暫時快取任何您對映像進行的修改 (修改不會立即生效)，而且當您以 /commit 選項執行 /unmount 命令時，這些變更便會永久存留在 WIM 中。如果已進行變更，然後決定真的不想要留著這些變更，也可以在卸載映像時捨棄變更而不是確認變更。不是全部就是完全沒有，您在裝載 WIM 檔案時所進行的所有寫入不是確認就是捨棄。
請注意，這裡有一個重要的警告。正如同使用刪除命令一般，當使用讀/寫功能來編輯 WIM 時，WIM 檔案本身的檔案資料不會完全地消除或清除 - 檔案會附加至 WIM 檔案的尾端，而且會以更新的資料取代磁碟區映像中的早期參照。這表示，如果新增了 5MB 的檔案來取代現有的 5MB 檔案，您的映像將增加 5MB 檔案在壓縮後的大小 (亦即，5MB 或更少，視使用的壓縮類型而定)。若要移除 WIM 中的舊資料 (如果想要縮小映像)，將需要使用 /export，將磁碟區映像匯出至全新的 WIM 檔案。
如果您看過我在 2006 年 11 月那一期的 TechNet Magazine 對 Windows PE 2.0 所作的討論，您就會記住它支援從 WIM 啟動。為了能夠這樣做，會使用驅動程式來讀取 WIM 檔案，類似於 ImageX 的作法。但是，ImageX 支援是設計在設計時期使用，而且 WIM 啟動功能則專門設計成唯讀的，並且只適用於 Windows PE。因此，雖然它們很類似，驅動程式與實作都不同。
除了 ImageX 工具外，Microsoft 還提供正式文件說明的 API (WIMGAPI)，此 API 允許完全支援任何想要能夠擷取、套用或修改 WIM 檔案的映像工具。因此，任何協力廠商若想要新增映像支援或取代現有的映像基礎結構，可以使用 WIMGAPI。此 API 是 WAIK 的一部份，因此會隨其一起散佈。

Windows 映像式安裝
由於已經有了映像格式，就設計了適用於安裝的新引擎。在其核心中，非常類似舊的 [迷你安裝] 或 [Windows 歡迎畫面]，會詢問一些基本的必要問題，以便能夠在獨特地安裝並設定系統的同時，也能在從 Windows 安裝 DVD 上的 install.wim 安裝映像之前處理磁碟組態。新安裝引擎的主要目的就是要允許手動安裝 Windows。我們已預見許多 OEM 及企業客戶將會使用 ImageX 來執行其真正的部署。

遠端安裝服務
此時您可能會問為什麼我沒有討論遠端安裝服務 (RIS)。RIS 是我開始在 Windows 部署團隊工作時就已經有的服務。RIS 最早是隨附於 Windows 2000，然後又隨附於 Windows Server® 2003，它使用預先啟動執行環境 (PXE)，透過網路將電腦啟動至基本精靈可以完成的那一點，因而可以在整個網路進行 Windows 安裝。
RIS 的最大問題就是令人難以忍受的脆弱。Windows Server 2003 版的 RIS 原先只支援 Windows 2000 Professional，現在已擴充支援伺服器版本的 Windows。突然湧現的 Serial ATA (SATA) 存放控制器及 GB 或更快的網路介面卡 (NIC)，使得在 RIS 保持最新的驅動程式總是令人擔心是否會發生危險。此外，RIS 不支援許多 Windows 支援的相同地區設定，這表示，利用當地語系化的鍵盤來安裝當地語系化版本的 Windows 若不是不可能，也是很困難。Windows 部署服務是設計成 Windows 安裝及 RIS 的混合服務 (PXE 起始化的 Windows PE 啟動)，可讓您透過網路部署 WIM 檔案。
WDS 已設計為不僅可在即將到來的 Windows Server (代號為 "Longhorn") 版本上使用，也可作為可在 Windows Server 2003 上安裝的更新。這表示，WDS 將能夠從舊版的 Windows Server 部署 Windows Vista，而且也將能夠部署舊版的 Windows。事實上，WDS 不僅要搭配 RIS 使用，而且還需要安裝 RIS，才能運作。原因是它會更新 RIS 基礎結構以與 WDS 相容來運作，同時也會提供新的 WDS 基礎結構。
除了可從 RIS 升級外 (因而提供了很好的移轉途徑，供客戶在開始部署 Windows Vista 時繼續使用舊版 Windows)，WDS 還提供比過去 RIS 所提供的還要更好的管理工具，可讓您更加容易將新的映像加到伺服器。它也提供可插入的 PXE 架構，表示協力廠商 PXE 伺服器可以整合進來，並指定它回答特定用戶端的 PXE 要求，而不是 WDS。這是我們常收到的和 RIS 有關的要求，當時還無法提供這樣的功能。
WDS 最初是作為 Windows Server 2003 上的可安裝元件來更新 RIS，現在也將以 Windows Server "Longhorn" 產品的整合元件隨附。目前 Microsoft 也計劃將 WDS 功能併入未來的 SMS 版本中 (將稱為 System Center Configuration Manager)。
WDS 會提供 PXE 啟動的 Windows PE 2.0 版本來運作。此映像會包含在 WIM 中 (表示透過網路傳送的資料會減少)，而且透過網路啟動成 RAMDisk。然後，會在 Windows PE 下使用新的用戶端應用程式進行安裝，此應用程式會提供過去 RIS 基本 OSChooser 應用程式所提供的功能。
雖然 WDS 一如往常不支援 Windows XP、Windows 2000 或 Windows Server 2003 的 RIS 映像，但是它確實能夠部署它們的 Sysprep 映像。如同過去的 RIS，WDS 也整合至 Active Directory®，但是需要時，PXE 伺服器也可以在沒有 Active Directory 的情況下執行。若是已從 PXE 以外的物件 (如 CD、DVD 或 USB 快閃磁碟機 (UFD)) 啟動 Windows PE，甚至也可以從中初始化 WDS。這是 RIS 無法提供的有用功能。
實際上，WDS 可以在三種模式中運作，視您目前使用的 RIS 而定：
舊版 WDS 二進位檔案已安裝，但是 OSChooser 是啟動機制。RISetup 及 RIPrep (RIS 的指令檔安裝及映像式安裝工具) 仍能運作。
混合模式 這兩個啟動機制皆可使用，這兩組映像工具皆可運作，而且這兩組管理工具皆可運作。
原生 沒有任何 RIS 功能，只能使用 WIM 功能、Windows PE 啟動及新的管理工具。請注意，這是預定將供 Windows Server "Longhorn" 使用的唯一模式。將不會包括任何 RIS 功能。
WDS 也會實作自訂的主從架構通訊協定，因此，理論上 OEM 或企業客戶也可以建置自己的部署應用程式。
擷取 WIM 映像放入 WDS 伺服器的過程幾乎與之前的 Sysprep 狀況相同。差別在於最後一個步驟將包括啟動至 WDS 擷取映像 (會有一個 Windows PE 映像協助您擷取用戶端系統)，並將其擷取至 WDS 伺服器。
WDS 的核心元件如下：WDS 伺服器服務、PXE 伺服器、映像存放區、通訊協定、具有 Windows PE 映像 (將啟動) 的檔案共用、WIM 映像 (將安裝)，以及其他相關管理檔案。
WDS 是設計成相當輕量型的服務，並設計成提供與傳統利用光碟媒體來安裝 Windows 幾乎相同的經驗 (雖然通常更快)。將 WDS 實作為 RIS 的更新可讓您以輕鬆的步調逐漸取代 RIS，同時輕易在您的組織部署 Windows Vista。它的作法更容易使用，而且比 RIS 過去能夠提供給舊版 Windows 的速度還要快。

Windows System Image Manager
WAIK 的最後一個元件是 Windows System Image Manager (SIM)。如果您熟悉舊版 Windows 的安裝管理員，那麼您應該也對 Windows SIM 的概念感到很熟悉。此工具可讓您利用自動安裝的檔案來完成數個工作。您可以輕易地建立新的自動安裝檔案、編輯現有的自動安裝檔案，或針對特定的 Windows Vista 映像驗證現有檔案中的設定。假定 Windows Vista 位於特定的 WIM 中，此工具也會顯示所有可能的組態選項 - 讓人想起過去在 deploy.cab 隨附的說明檔中描述的傳統自動安裝選項。最後，Windows SIM 可以協助建立發佈共用 (Distribution Share) 及組態集 (Configuration Set)，用來透過自動安裝檔案將驅動程式、應用程式及更新新增至 Windows Vista安裝。
在執行 Windows SIM 的系統上，您必須是本機系統管理員。開啟 Windows SIM 時，將看到五個窗格，如 [圖 3] 所說明的。
圖 3 Windows System Image Manager
圖 3 Windows System Image Manager
[Distribution Share] 窗格位於左上角，可顯示您已透過 SIM 新增的驅動程式及其他套件。依預設，並沒有裝載任何發佈共用，但是您可以輕易開啟或建立一個。
[Windows Image] 窗格位於 [Distribution Share] 下，可以顯示 WIM 中特定 Windows 磁碟區映像的組態選項 (元件及套件)。請注意，一次裝載一個 Windows 磁碟區映像 (Windows Vista DVD 上的一個 SKU)。
[Answer File] 窗格位於中央，可顯示新的或現有的 Windows Vista 自動安裝檔案中的組態選項，以及來自您已裝載的 WIM 磁碟區映像的目錄所定義的預設設定 (可能的設定及組態)。
[Properties] 窗格位於視窗的右上角，可讓您編輯 [Answer File] 窗格中元件的個別內容。
最後一個窗格是 [Messages]，位於底端，可顯示更有深度的意見，包括 Windows Vista 自動安裝檔案 (永遠以 XML 格式表示) 中原始 XML 的檢視，以及與您目前使用的任何組態集相關的驗證輸出和任何訊息 (如果有開啟組態集，[Configuration Set] 索引標籤才會包含資料)。
如同您所看到的，WAIK 提供一組功能強大的工具，來協助您部署 Windows Vista。Windows 部署團隊已成功地建立一套工具集合，您將發現這些工具使得 Windows Vista 比起過去任一個 Windows 版本都還要容易部署。

Wes Miller任職於德州奧斯丁的 Pluck 公司 (pluck.com)，擔任程式開發經理。先前，他曾經在 Winternals Software 及 Microsoft 任職，擔任專案經理及 Windows 產品經理的工作。Wes 想要感謝 Microsoft 的 Scott Dickens 和 John Macintyre 協助此專欄。請以 technet@getwired.com 聯絡 Wes。


 現場筆記: 幫姻親做技術支援
現場筆記
幫姻親做技術支援
James Snell

我結婚了 去年，為了抱得美人歸，我似乎與我太太的家人簽訂了技術支援合約。最近忐忑不安地接到岳母大人來電，她說：「你懂電腦，對不對？」，於是我就去替她處理那台遭受一大堆常見間諜軟體、廣告軟體、工具列等危害的 Windows® XP 電腦。
如果您是一位 IT 專家，就會習慣於維修電腦。但是幫親戚修電腦可不是件容易的事。要處理受病毒感染的電腦，最快的方式是將硬碟格式化，並重新安裝 Windows。很可惜，大部分的人都拒絕這麼做，因為他們不想失去全部資料。這通常表示前面還有很長的清理工作要做。但如果您根本進不去電腦，或上不了網際網路，該怎麼辦？
您必須在 512MB USB 隨身碟上放入一套工具組，包括防毒軟體、防間諜軟體和個人防火牆軟體。請不斷更新此工具組，並放在隨手可得的位置。
您也可以在 USB 磁碟機上加入 Windows XP Service Pack 2 (SP2)。雖然現在 Windows XP 出貨時已內附 SP2，但岳母大人的版本比較舊。您可以從 microsoft.com/technet/prodtechnol/winxppro/maintain/winxpsp2.mspx 下載 Windows XP SP2 安裝軟體。(若有多台電腦請用此版本；單一電腦安裝則請使用 Windows Update)。有 266MB，下載速度想必不會太快，但您只需要做一次就好。
因此，假設您花了一整個下午進行格式化及安裝 OS，或辛苦地移除病毒和間諜軟體，然後又安裝 Windows 必要的軟體更新，還有防火牆、更新防毒軟體定義檔等等。現在該怎麼辦？您當然不希望每個週末都浪費在這上面。你可以採取幾個步驟來改善這種情況。

驅逐垃圾軟體
岳母大人的系統上有很多主要由朋友安裝的軟體，有些有用，有些純粹是垃圾。為防止這種情形重複發生，我用增強式密碼鎖定管理帳戶，並將她設定為標準使用者，她不常需要使用管理帳戶。下次有人要幫她安裝軟體時，必須以管理帳戶登入才能繼續進行，而這通常就足以構成阻礙。此外，再配合一些使用者觀念教育，應該就可以減少垃圾量。(Get Safe Online [getsafeonline.org] 網站上有一些很棒的訣竅可幫助使用者保護個人電腦的安全)。
岳母大人在密碼方面的安全性需求不同。我留下使用者帳戶的密碼，鼓勵她多使用密碼。此外，我猜想對這部電腦不懷好意的人想從房子搬走它的意願可能高於從電腦上拿走資料的念頭。
因此，如果我在電腦前面拉門的內側上貼一張紙條就似乎太愚蠢了。但是我不擔心她在我不知道的情況下取得管理密碼，畢竟那是她的電腦。儘管在企業內，這些都不是最佳作法，但岳母大人沒有儲存任何機密資料，因此，她不擔心別人使用她的電腦。我的目標是要讓身為使用者的她過得更輕鬆，更重要的是，也讓身為其技術支援工程師的我過得更輕鬆一點！

逐退敵軍！
下一步是提供多一點保護。我喜歡將防火牆整合到 Windows 以及在電腦上設置協力廠商防火牆。不過，我並不信任單一防火牆。為了提高安全性，現在岳母大人有一個具備整合式防火牆的 ADSL 路由器。是的，要設定和執行路由器需要額外的費用和配備，但它的確增加了某種程度的保護。此外，它還是一個會閃閃發光的產品，很炫吧？
但是，不要以為路由器的初始組態很安全。我所挑選的耦合預設會在公用端啟用 Web 和 Telnet 介面。現在，花點時間檢查進階選項。
在網路元件啟動之前，軟體防火牆無法載入。在開機初期階段，內建的 Windows 防火牆是唯一的防護 (這是在連上網際網路之前要先安裝 Windows SP2 的另一個原因)。停用 Windows 防火牆後，它仍然有保護作用，直到您選擇的防火牆有機會啟動為止。此外，有了路由器防火牆之後，我就不必再擔心它會被關閉，因為這是獨立的裝置；如果沒有開啟，岳母大人就不能連線。而且，我把它當做重複輸入資料一樣。攻擊若要成功，路由器和軟體防火牆必須同時失效才行。這並非不可能發生，但機會很小。

騷擾與保護
試想如果有完好的備份，整個流程就簡單多了。我最受不了那些說無法備份自己最重要資訊的人。DVD 燒錄機和空白片的價格並不昂貴，而且 Windows 都有附帶備份軟體。問題是許多人就是不去用它。以岳母大人而言，我的解決方案是經常定期備份 [我的文件] 資料夾，並將檔案直接存到 CD 燒錄的資料夾中 (%userprofile%\Local Settings\Application Data\Microsoft\CD Burning)。若要達成此目的，您必須在使用者登入時才執行排定的工作。因此，現在 CD 燒錄精靈會提供定期 (且煩人的) 提示，直到岳母大人插入空白光碟為止，而這就是我的目的。

保持聯絡
設定 Windows Live™ Messenger 之後，您就可以設定桌面共用。這表示您到家後，如果還需要做其他設定，您不必再次造訪 (真是令人慶幸) 就可以了解情況。順便一提，我還可以確認控制遠端電腦 (當然，這需要許可權限) 以及在操控滑鼠的同時保持監控，比路由器上面閃爍的燈號更令人印象深刻！

James Snell 是前任駐英國的 Microsoft 支援專家，他曾經支援過家庭用戶和 Microsoft 的幾個全球最大客戶。James 目前擔任一項新職 － 初為人父。您可以透過電子郵件聯繫他：James.Snell@lineone.net。


 Windows 機密文件: 擺脫 DLL Hell
Windows 機密文件
擺脫 DLL Hell
Raymond Chen

DLL HELL。 如此惡名昭彰，可知是多麼狡猾的問題。當您安裝一個程式之後，其他似乎不相干的程式卻忽然不能運作了。這是因為兩個程式暗地經由一個共用的 DLL 檔而產生關係。可能是這兩個程式對於系統目錄中的 MSVCRT.DLL 檔案版本有各自的要求。或是第一個程式升級 ActiveX® 控制項，而第二個程式也用到此控制項，但升級後的控制項與第二個程式並不完全相容。
如果這兩個程式對於公司的日常營運而言都不可或缺，則怪罪於哪一個程式實在於事無補。當務之急是讓程式趕快正常執行。這時候講「我們賠錢」與「鮑伯害我們賠錢」，都沒什麼差別了。事實上都是公司在賠錢，而您的任務就是馬上解決問題。
通常必須先決定要挽救哪一個程式。從 Windows® 2000 開始，有急救工具可協助您修復這些衝突。但這些急救工具只是暫時的解決辦法，讓系統趕快恢復正常步調，給您時間找出更長久的辦法來解決衝突。
Windows 2000 已實作一種初步的解決方案，也就是現在所謂的「動態連結程式庫重新導向」這個新名詞。若要啟用 DLL 重新導向，請建立檔案並以您要重新導向 DLL 的程式來命名，但在名稱後面加上 .local。例如，若要對 C:\Program Files\Litware Inc\Invoice.exe 套用重新導向，請建立檔案 C:\Program Files\Litware Inc\Invoice .exe.local。檔案的內容無關緊要，重要的是檔案要存在。
當程式啟用重新導向之後，該程式在嘗試載入 DLL 時會先查看本身所在的目錄，然後才會查看平常的搜尋位置。因此，以發生衝突的 MSVCRT.DLL 檔案為例，您可以在每個程式中啟用重新導向，然後在每個程式的安裝目錄中放入一份專用的 MSVCRT.DLL 複本。此後，每個程式就會收到自己的 MSVCRT.DLL 版本，也就是用來測試程式的 DLL 版本。
這項技巧的神奇之處在於就算程式以完整路徑來載入 DLL 也沒有問題。例如，假設程式嘗試載入 C:\Program Files\Common Files\Proseware Inc\taxplugin.dll。在升級到 Proseware 2.0 之後，您發現該軟體的課稅外掛程式和您的發票程式不相容。您能做的就是將一份舊版的課稅外掛程式複製到 C:\Program Files\Litware Inc\taxplugin.dll。雖然程式以完整路徑來載入課稅外掛程式，但 DLL 重新導向仍會查看目前的目錄，並使用本機覆寫來代替 Proseware Inc 目錄中的覆寫。
在 Windows XP 和 Windows Vista™ 中，DLL 重新導向的規則稍微不同，但一般原則還是一樣。除了建立 .local 檔案，您也可以建立 .local 目錄。在此情況下，就會搜尋 .local 目錄，而不是程式的安裝目錄。這可讓您對同一目錄中的多個程式套用重新導向而不會發生衝突。
請注意，您不能對含有應用程式資訊清單的程式套用重新導向，而且所謂的「已知的 DLL」也無法重新導向。(有關詳細資訊，請參閱動態連結程式庫重新導向 (英文)。)
DLL 重新導向無法讓您完全擺脫 DLL Hell，但至少有一些急救技巧可降低傷害程度，讓您有時間找出問題。
圖 1

Raymond Chen 在自己的網站 The Old New Thing 和新書 The Old New Thing (Addison-Wesley, 2007) 中撰寫有關 Windows 歷史和 Win32 程式設計的文章。不過他可沒有養一隻叫做 The Old New Thing 的貓。