 TechNet Magazine January 2008

TechNet Magazine January 2008

System Center: 使用 Virtual Machine Manager 2007 实现真正的控制

通过虚拟化，组织可以整合资源并节省开支。但是，在开始采用越来越多的虚拟机时，您可能希望有一种方便的方法来管理它们。以下是设置 Virtual Machine Manager 以及使用它来从集中式界面执行管理任务的指南。

Edwin Yuen System Center: 使用 Data Protection Manager 2007 更好地进行备份

最新版本的 Data Protection Manager 提供了多种新功能，赋予管理备份功能强大且灵活的解决方案。以下内容概述了 DPM 如何提供全面的保护，从 Exchange 和 SQL Server 到分支机构和 SharePoint 站点皆在其保护范围内。

Calvin Keaton System Center: 在线服务有助于简化软件清单

软件资产管理是每个企业（无论是大型企业还是小型企业）不可或缺的任务。但是，由于各企业现在购买和部署的软件数量如此之大，人们感觉想清楚掌控此类资产变得十分困难。下面将为您介绍 Microsoft 新出品的资产库存服务能给予的帮助。

Paul Bourgeau 组策略: 组策略的 ADM 和 ADMX 模板探密

ADM 文件是必需的，但也经常会令人困惑。不要让它成为您掌握组策略的拦路虎。此指导教程将帮助您更深入地了解 ADM 文件和新的 ADMX 格式、可对其进行处理的工具，以及充分利用这些文件的方式。

Jeremy Moskowitz 组策略: 优化组策略性能

所有组策略都不相同，了解各种类型之间的差异有助于您微调系统的性能。探索整体化和功能化 GP，学习如何处理组策略，并弄清楚当组策略改变时会发生什么情况。

Darren Mar-Elia 组策略: 深入研究高级组策略管理

AGPM 或“高级组策略管理”是一个便捷的工具，可让您以其他工具所不能的方式来处理“组策略对象”。它现在可供“Microsoft 软件担保”计划的成员使用。了解如何使用 AGPM 来脱机编辑 GPO、委派管理、跟踪更改等。

Derek Melber 编辑寄语: 克服愤世嫉俗

Joshua Hoffman 读者来信: 读者心声

工具箱: 面向 IT 专业人员的新产品

Greg Steen Exchange 问题与解答: 添加语音提示、选择 PBX 和更多内容

您是否想询问有关 Exchange 统一消息的问题？这里有您想要的答案。在“Exchange 问题与解答”的这部分内容中，我们将重点关注统一消息，讨论您如何才能够实现电话和传真功能、提供高可用性、设置语音提示和其他更多内容。

Seema Rahman 实用程序特别推荐: Windows Easy Transfer Companion

此免费工具可简化从 Windows XP 到 Windows Vista 的关键应用程序迁移。

Lance Whitney 网络专家: Windows Server 2008 中的 DNS 增强功能

Windows Server 2008 包含多项 DNS 服务器增强功能。让我们进一步了解一下这些更新是如何加快名称解析、改进对 IPv6 的支持并使 DNS 的管理更加灵活的。

Joseph Davies Windows PowerShell: 拦截恶意代码

Windows PowerShell 的设计非常注重安全性。但是，与任何软件一样，Windows PowerShell 仍可能受到恶意代码的威胁。以下是一些针对选择执行策略的建议，有助于提高您系统的安全性。

Don Jones 您好，脚本专家！: 这里没有错误的正则表达式

您是否正在寻找一种避免出错的方法？那么可以从验证来着手。学习如何使用正则表达式在脚本中执行字符模式匹配。

The Microsoft Scripting Guys 安全观察: 跳岛：供应商 Swag 的魅力

安全威胁不仅仅来自电子邮件和恶意网站。让我们来了解一下 U 盘和某些简单的社会交往如何获取对您的整个网络的访问权限，并弄清您怎样使网络更加安全，免受此威胁的侵害。

Jesper M. Johansson 桌面文件: 使用 Windows SteadyState 进行共享计算

新的 Windows SteadyState 工具包是否能够帮助您改善共享使用环境中 Windows XP 系统的安全性并简化管理？请阅读指导教程了解它如何完成这些工作。

Wes Miller 领域备注: 您今天最重要的任务

当您正在做项目时，千万不要低估安排零散时间进行思考、计划和安排优先级的重要性。

Eric N. Bush Windows 机密: 提醒我切勿重蹈覆辙

在出现合适的即插即用设备之前，硬件检测是一件非常可怕的事情。让我们了解一下原因。

Raymond Chen


 System Center: 使用 Virtual Machine Manager 2007 实现真正的控制
System Center Edwin Yuen

使用 Virtual Machine Manager 2007 实现真正的控制
概览:
  • System Center Virtual Machine Manager 2007 的主要功能
  • 如何安装 VMM
  • 将物理机或虚拟机转换为 VM

System Center Virtual Machine Manager 2007 是提供综合界面来管理整个虚拟基础结构的新解决方案。Virtual Machine Manager (VMM)
可管理现有 Microsoft® Virtual Server 2005 安装，还可将 Virtual Server 2005 R2 SP1 安装在新虚拟机 (VM) 主机上。使用 VMM 后，可通过集中式界面更加有效地执行传统 Virtual Server 2005 管理任务，并具有多个 Virtual Server 安装的管理访问权限。
此外，VMM 为 Virtual Server 带来了多种新功能，包括 VMware 虚拟机磁盘格式 (VMDK) 磁盘到 Virtual Server 虚拟硬盘 (VHD) 的物理到虚拟 (P2V) 转换、虚拟到虚拟 (V2V) 转换以及通过集中式虚拟基础结构对象库实现从模板和预配置 VHD 的快速 VM 部署。
在以下篇幅中，我将探讨 VMM 和它向 IT 管理员提供的强大功能组。然后，我将介绍创建 VMM 安装的需求和步骤。最后，我会深入介绍 VMM 的几个更激动人心的功能，并告诉您一些非常有用的入门技巧。

Virtual Machine Manager 2007 简介
System Center Virtual Machine Manager 2007 是一种独立应用程序，它针对在 Microsoft Virtual Server 2005 下运行的虚拟机提供企业级集中式管理。作为 System Center 系列的一部分，Virtual Machine Manager 与其他 System Center 产品相集成以提供端到端物理和虚拟基础结构管理。图 1 显示了 Virtual Machine Manager 的各种组件以及 VMM 如何与 Virtual Server 主机连接。
左侧框代表 VMM 服务器，右侧框代表虚拟机主机。如果愿意，也可将 VMM 组件安装在单独的服务器上以提高性能和可伸缩性。在本文中，我们将使用图 1 中的模型，即核心 VMM 组件均安装在一台计算机上。VMM 产品的核心是 Virtual Machine Manager 服务（左侧中心）。它的上面是进入服务的三个不同界面：Windows PowerShellTM 界面、管理员控制台以及具有委派置备管理的自助门户。起支持作用的 VMM 是一个 Microsoft SQL Server® 2005 数据库（可使用完整安装的 SQL Server 或 SQL Server 2005 Express Edition）和集中式库（它是虚拟基础结构组件的文件共享）。
图 1 System Center Virtual Machine Manager 2007 架构
图 1 System Center Virtual Machine Manager 2007 架构
图 1 右侧代表 VMM 正在管理的 Virtual Server 2005 R2 虚拟机主机。底部为主机操作系统 — 在本例中为 Windows Server® 2003 R2。VMM 将在虚拟机主机上安装一个代理，以方便 VMM 和 Virtual Server 2005 R2 之间的通信。它是在物理主机上的单个安装，未在 VM 或来宾 OS 中安装。如果未在主机上安装 Virtual Server，则在将主机添加到受管服务器列表中时，VMM 可自动执行安装。
作为 System Center 系列产品的一部分，Virtual Machine Manager 将新 System Center（或 Outlook® 样式）界面用作管理员控制台（与传统 MMC 插件相反）。VMM 管理员控制台（参见图 2）采用 Microsoft .NET Framework 2.0 并以 Windows PowerShell 1.0 为基础。实际上，在管理员控制台中执行的所有操作均实际调用相关 Windows PowerShell 命令。因此，在管理员控制台中调用的任何命令或函数也可通过 Windows PowerShell 中的命令行来直接调用。
图 2 显示受管理虚拟机的 VMM 管理界面
图 2 显示受管理虚拟机的 VMM 管理界面
管理员控制台中的每个向导还包含一个 View Script（查看脚本）按钮，用于显示要运行的命令的相关 Windows PowerShell 脚本，从而为学习 Windows PowerShell 提供一个不错的起点，因为它与 VMM 相关。一旦习惯将 Windows PowerShell 与 VMM 配合使用，您将可以通过 VMM 编写大量操作的脚本。
Virtual Machine Manager 旨在向 IT 管理员提供以下三个主要优点：它允许您最大限度地利用资源、具备更好的灵活性并充分利用现有技能。VMM 通过多种特性和功能来提供这些优点。首先，VMM 提供一种方法来将物理服务器转换成虚拟机，即称为 P2V 转换的过程，以此帮助最大限度地使用资源。它使您可将现有物理机器合并成虚拟机，而无需重新安装这些机器。在转换硬件利用率较低的计算机时，这一点尤为重要，因为可将多台此类计算机一起放置在单个物理硬件上。这点对于某些机器可能特别有用，例如，对于具有很少使用但由于每年要运行一次而仍需维护的旧版软件（如监管会计软件）的计算机。在与 System Center Operations Manager 2007 结合使用时，VMM 可有助于生成服务器合并候选对象报告，以查看物理基础结构中的哪些计算机可能是 P2V 的候选对象。
如果虚拟机已为 Vmware 的 VMDK 格式，VMM 可执行 V2V 转换以将现有 VMDK 转换成 VHD 格式。您可因此迅速启用并运行 Virtual Server 2005 环境。
作为任意部署（无论是新的还是已通过转换启动的）的一部分，VMM 均使用名为“智能定位”的过程将 VM 部署到虚拟机主机。通过“智能定位”，VMM 查询所管理的所有虚拟机主机、检索有关这些主机的资源可用性的多个参数，然后返回将 VM 部署到其中的推荐主机加权列表。然后，管理员可选择接受建议、调整算法以满足特殊需求或仅将 VM 部署到所选择的服务器，如图 3 所示。通过使用虚拟基础结构和其主机建议的合并视图，“智能定位”大大减轻了与 VM 部署相关的负担。
图 3 智能定位提供对最佳 Virtual Server 主机的建议
图 3 智能定位提供对最佳 Virtual Server 主机的建议
VMM 其他具备很多优点的功能包括集中式库和用于委派置备的自助门户。图 4 中所示的库可集中存储构建虚拟基础结构所需的所有组件，包括预创建和可付诸部署的 VHD、具有 OS 和硬件配置的模板、ISO 文件、脚本和配置文件。可通过这些组件创建和部署新的 VM，并使用模板和配置文件在各 VM 之间标准化硬件和软件配置。VMM 还支持分布式库，在继续集中管理组件的同时允许将组件存储在远程位置中并在远程位置中保持大的文件传输量。
图 4 VMM 库包含虚拟基础结构的所有构建块
图 4 VMM 库包含虚拟基础结构的所有构建块
自助门户是与 VMM 服务和 IIS 安装集成的网站。门户向 Active Directory® 授权用户和组授予对 VM 的访问权限，具体可用功能取决于针对该用户或组创建的策略。这些功能包括能查看和访问 VM、运行和关闭 VM 及根据具体委派资源新建 VM。
管理员创建自助策略来将特定功能授予 Active Directory 用户和组、特定虚拟机主机或主机组、特定 VM 和模板。自助门户使管理员能安全地将功能委派给最终用户。若无此功能，管理员将需要授予最终用户对管理员控制台的访问权限以管理他们的 VM，或者要求最终用户针对每个功能提交请求，从而带来繁重的电子邮件和电话工作量，而其目的仅是执行如 VM 启动和重置之类的操作。

Virtual Machine Manager 安装
VMM 当前管理 Active Directory 域（或受信任域）中 Window Server 2003 SP1（和更高版本）上安装的 Virtual Server 2005（和更高版本），以及使用 VMM 的外围网络支持的非域主机。不支持在桌面操作系统（如 Windows® XP）上安装 Virtual Server。P2V 操作仅适用于与 VMM 服务器位于同一域（或受信任域）中的物理机器。
尽管我已建议在生产环境中的服务器上分别安装每个 VMM 组件，此处的说明将介绍的是单服务器安装。安装 VMM 服务器的建议硬件是基于 x86 或 x64 的服务器、至少 2GB RAM 且频率为 2.8GHz 或更高。由于它是具有本地 SQL Server 数据库的单服务器安装，因此需要 7GB 的硬盘空间。如果改为使用远程数据库，则 VMM 安装仅需 1GB。本地库安装另外需要 80GB 的硬盘空间。
此外，VMM 要求将 WinRM 1.1 安装在 VMM 服务器、所有虚拟机主机以及 VMM 将管理的任何库服务器上。WinRM 是管理 Web 服务 (WS-Management) 协议的 Microsoft 实现。WinRM 是基于 SOAP 的协议，它不受防火墙的影响，允许不同供应商的硬件和软件相互操作和管理。VMM 使用 WinRM 来在 VMM 服务器、虚拟机主机和库服务器之间执行操作。可从 go.microsoft.com/fwlink/?LinkId=103610 下载 WinRM 1.1。
安装的其他前提条件包括 .NET Framework 2.0 和 3.0、Windows PowerShell 1.0 和 IIS（用于自助门户）。将在 VMM 软件安装过程中检查所有其他软件要求，并提供到正确安装程序的链接。如果任何需求未得到满足，安装将无法继续。
在开始 VMM 安装时，主菜单中提供有三个选项：Virtual Machine Manager Server、管理员控制台和自助门户。我们将在单个计算机上安装全部三个选项，从 Server 开始。设置过程开始后，开始屏幕会检查系统前提条件，您必须确保已满足所有这些条件才能继续安装。
满足前提条件后，应查看安装选项，尤其是与 SQL Server 数据库相关的选项。通过 VMM，可选择 SQL Server 2005 Express Edition 安装或使用现有 SQL Server 2005 数据库。在此示例中，我们将使用 SQL Server 2005 Express Edition。
在 VMM 安装向导的下一步中，您需确定集中式库的位置。该位置可以是 VMM 服务器上的本地目录（并且会针对该目录创建共享），也可使用现有文件共享。默认位置为 C:\Documents and Settings\All Users\Shared Documents\Virtual Machine Manager Library Files。
下一步为端口分配。在此步骤中，您需配置核心 VMM 服务器服务与管理员控制台连接所用的端口（端口 8100）、WinRM 用于执行管理功能的端口（端口 80，它是标准 HTTP 端口）以及后台智能传输服务 (BITS) 用于将文件移动到虚拟机主机的端口（端口 443，它是标准 HTTPS 端口）。收集完所有此类信息后，将显示摘要屏幕且服务器安装到此结束。
现在，我们开始安装管理员控制台。系统前提条件类似于 VMM 服务器，需要 .NET Framework 2.0 和 3.0 以及 Windows PowerShell 1.0。唯一配置选项是确认用于连接核心 VMM 服务器服务的通信端口。该端口应为 8100（在 VMM 服务器安装中所配置的）。安装结束时，会让您选择创建管理员控制台的桌面快捷方式以及在结束安装后打开控制台。建议两者都选。首次打开管理员控制台时，系统会提示您输入服务器连接信息。在单服务器安装情况下，您会连接到端口 8100 上的本地主机并按 Enter 启动控制台。
最后，在此服务器上安装自助门户。它的前提条件是 IIS、.NET Framework 2.0 和 3.0 以及 Windows PowerShell 1.0。在安装期间，唯一配置选项是与自助门户使用的端口相关的选项。第一个端口是连接到核心 VMM 服务的端口（端口 8100，与管理员控制台相同）。第二个端口是用于运行门户的端口。默认端口为端口 80，但是，在许多配置中，该端口可能已占用。必要时，将此端口更改为另一打开的端口（如 81）。
安装程序会创建一个名为“Microsoft System Center Virtual Machine Manager 2007 自助门户”的网站，并且可在 IIS 管理器中更改配置。以下为轻松实现安装的技巧：进入 IIS 管理器，并选择“Microsoft System Center Virtual Machine Manager 2007 自助门户”属性。查看网站的 ASP.NET 配置并确认 ASP.NET 版本已设置为 2.0。自助门户无法与设置为版本 1.1 的 ASP.NET 协同工作，并且由于 IIS 和 .NET Framework 版本安装顺序的不同，这些设置可能有所不同。
完成 IIS 安装后，可通过浏览至 Internet Explorer® 中的 http://localhost:81。如果在打开网站的过程中系统提示您进行身份验证，那是 Internet Explorer 安全设置所导致的。应在 Internet Explorer 的 Intranet 环境中运行自助门户；您可能需将 VMM 服务器添加到本地配置中的 Intranet 站点列表中。完成此类更改后，您将随时可以在 VMM 中创建和使用自助策略。

Virtual Machine Manager 功能
尽管 VMM 中存在许多令人兴奋的功能，但最令人感兴趣的两个功能无疑是“物理到虚拟”以及“虚拟到虚拟”功能。管理员控制台支持这两种功能。由于 VMM 管理员控制台构建于 Windows PowerShell 的基础上，因此也可通过 Windows PowerShell 自身运行所有命令。对我们而言，我们将探讨使用管理员控制台的 P2V 过程以及通过 Windows PowerShell 实现的 V2V 过程。

物理到虚拟转换
为执行 P2V 转换，我们使用 VMM 管理员控制台。对于将转换的物理机器有几个要求。首先，该机器必须为当前域或某个受信任域的成员。VMM 将连接到该机器上以安装 P2V 代理以及转换必要的信息。其次，源机器必须运行支持的操作系统。P2V 的支持操作系统为 Windows Server 2003、Windows 2000 Server 和 Windows XP Professional。如果该源机器运行的是 Windows Server 2003 或 Windows XP，VMM 将使用卷影复制服务 (VSS) 来合并硬盘并将数据以流式传入虚拟硬盘。它可在无任何停机时间的情况下转换机器，因此您不必为此服务器计划停机时间，只需创建 P2V 映像。对于 Windows 2000，会创建一个 Windows PE 引导盘以方便 P2V 映像创建。在此示例中，我将使用 Windows Server 2003 目标。
通过选择管理员控制台右上部分中的 Actions（操作）下的“Convert physical server（转换物理服务器）”选项，启动 P2V 过程。随即出现 P2V 向导（如图 5 所示）。第一个页面是 Select Source（选择源）步骤，即确定要转换的机器。输入该机器的 DNS 名称以及连接并管理机器的适当域凭据。下一步是命名产生的 VM。
图 5 VMM 的 P2V 功能具备向导，并内置于 &#xA;管理界面中
图 5 VMM 的 P2V 功能具备向导，并内置于 &#xA;管理界面中
然后，向导将开始从源机器收集信息。单击 Gather System Information（收集系统信息）后，VMM 将安装 P2V 代理，它将检索有关源机器的操作系统、硬盘和网络适配器的必要信息。单击 Next（下一步）进入验证屏幕，以确认不存在阻碍转换的已知问题。如果有，应显示可能的解决方案。
检索到配置信息后，可选择要转换的硬盘分区。默认情况下，选择引导分区并且存在的任何其他分区均变为可用。可选择在转换中包含哪些分区。P2V 是智能复制过程，即意味着它仅拉动指定分区上的数据，而非固定传输整个硬盘映像和大小。
最后，向导将执行标准 VMM 部署步骤（包括之前所述的 Virtual Server 启动配置和“智能定位”过程）。完成向导后，将弹出 Jobs（作业）窗口以向您展示 P2V 的整个过程和进度。
默认情况下，新转换的 VM 不会自动启动（它们已转换成 Stopped（停止）状态），并且 P2V 过程也不会关闭或更改源机器的运行状态。它是一个非破坏性 P2V 过程。由于新 VM 与原始服务器具有相同的计算机名称、IP 地址甚至 MAC 地址，必须先关闭该机器才能启动 VM。如果希望源机器关闭或新转换的 VM 自动启动，可从 Windows PowerShell 命令行实现。作为此过程的一部分，在测试环境中执行 P2V 然后运行所得 VM 是个不错的主意，这样可以确保成功转换所有数据。

虚拟到虚拟转换
要执行 V2V，需具有 VMWare 虚拟机（VMDK 文件格式）以及在指定目标虚拟机主机上有效安装的 VMM。VMM V2V Windows PowerShell cmdlet new-v2v 支持以下四种 VMDK 文件格式：monolithicSparse、monolithicFlat、twoGbMaxExtentSparse 和 twoGbMaxExtentFlat。大部分现有 VMDK 文件均属于这些类别之一。
V2V 过程仅适用于脱机 VMDK 文件。然而，P2V 过程可用于转换当前正在运行的 VMware 虚拟机。VMware 虚拟机包含两个主要组件 — 作为存储数据的虚拟硬盘的 VMDK 文件以及包含虚拟机配置信息的 VMX 文件。VMDK 文件和相关 VMX 可放置在库位置中，该位置应使您可以访问和转换 VMware 虚拟机，而无需从原始服务器授予文件的访问权限。
在 V2V 过程中，VMDK 文件将转换成 VHD 文件，来宾操作系统将被整理以与 Virtual Server 协同工作，并创建一个新虚拟机以尽可能接近地匹配原始配置，以执行 Virtual Server 支持的虚拟硬件所需的更改。注意：可通过 Windows PowerShell 分别管理转换过程的每个部分，从而可在针对新虚拟机分配主机前实现大量格式转换。在本示例中，我们是希望转换和部署 VHD。
尽管可通过管理员控制台和 Windows PowerShell 执行 V2V，但在本示例中，我们将使用 Windows PowerShell。为启动 V2V 过程，先启动加载 VMM cmdlet 的 Windows PowerShell 窗口。方法是单击 Start（开始）| All Programs（所有程序）| Microsoft System Center | Virtual Machine Manager 2007 | Windows PowerShell—Virtual Machine Manager。
出现的窗口标题应为 Windows PowerShell—Virtual Machine Manager。否则，可能是未加载 VMM cmdlet。Windows PowerShell 打开后，可通过运行以下命令查看 new-v2v 命令：
get-help new-v2v –full | more
它将为您提供如何执行 V2V 的语法和示例。在本文的示例中，VMM 服务器名为 vmmserver.contoso.com，目标虚拟机主机名为 vshost1.contoso.com，并且库服务器 vmmserver.contoso.com 提供 VMDK。
首先，通过 get-vmmserver 命令确定将用于执行 V2V 的 VMM 服务器环境。与所有 Windows PowerShell 命令一样，get-vmmserver 遵循“动词-名词”格式并使用破折号表示参数。下行内容显示了用于确定 VMM 服务器的命令：
get-vmmserver –computername "vmmserver.contoso.com"
它将 vmmserver.contoso.com 设置为执行命令的 VMM 服务器环境。以上命令的结果是有关 vmmserver.contoso.com 的详细信息列表。如果命令不正确或语法有错，会显示一条红色错误消息来描述问题。
下一个步骤是确定目标虚拟机主机，即将转换后的 VMDK/VHD 分配至其中的 Virtual Server 主机。接下来，我们将使用 Windows PowerShell 中的以下命令将虚拟机主机值分配给变量 $vmhost：
$vmhost = get-vmhost –computername
"vshost1.contoso.com"
此命令不会在命令窗口中产生任何反馈，但只需通过在 Windows PowerShell 提示符下键入 $vmhost 然后按 Enter，即可轻松确认是否已正确设置此变量。它应显示 $vmhost 中存储的信息（有关 vshost1.contoso.com 的详细信息，类似于上面针对 VMM 服务器显示的信息）。
除虚拟机主机外，还需确定 VMDK 文件所在的库服务器。命令类似于之前使用的虚拟机主机命令：
$library = get-libraryserver –computername
"vmmserver.contoso.com"
与 $vmhost 一样，在命令行中输入 $library 将显示库服务器信息。
最后，可实际键入命令来执行 V2V 转换。为此，可使用 new-v2v 命令和 get-help 函数。在该命令中，可继续确定 VMX/VMDK 的库服务器、目标主机、生成 VM 的名称以及转换后 VHD 文件的路径。
对于命令行，大部分引用是从目标主机（在本例中，为 vshost1.contoso.com）角度出发完成的，安装路径为对 VSHOST1 的本地引用。VMX 路径是从库服务器角度出发的。Windows PowerShell 中生成的命令行如下：
new-v2v –LibraryServer $library –vmxpath
"\\vmmserver.contoso.com\MSCVMMLibrary\VMDKS\ConvertMe.vmx"
–vmhost $vmhost -name "DemoV2V"
–path "C:\VHDs"
您可以看到，我们将转换库服务器 $library (VMMSERVER) 上的 \\vmmserver.contoso.com\MSCVMMLibrary\VMDKS\ConvertMe.vmx 的 VMX/VMDK，并以名称 DemoV2V 将它部署到变量 $vmhost 中的主机 (VSHOST1)，路径为 VSHOST1 上的 C:\VHDs。
运行命令后，返回 VMM 管理员控制台中的 Jobs（作业）窗口查看进度始终是个不错的主意。VMX/VMDK 将被转换并复制到 VSHOST1，所得 VHD 将在该处作为 DemoV2V 添加到 VM 列表中。完全完成此过程后，您将能够使用 VMM 来启动新虚拟机并查看结果。

总结
您可以看到，System Center Virtual Machine Manager 2007 为虚拟基础结构带来了许多不错的新特性和功能。通过查看 P2V 和 V2V 过程，我应该已清楚表达了 Virtual Machine Manager 操作有多简单。
VMM 旨在简化 IT 管理员在创建、部署和维护 VM 方面的工作。在发布 System Center Virtual Machine Manager 2007 后，我强烈建议 Virtual Server 2005 管理员研究一下使用 Virtual Machine Manager 来维护其虚拟机主机。对于 Windows Server 2008 中新 Windows Server 虚拟化的用户，Microsoft 将在下一版本的 System Center Virtual Machine Manager（它将在最终版 Windows Server 2008 虚拟化发布后可用）中提供针对 Windows Server 虚拟化的支持。
有关 VMM 的其他信息以及下载演示，请访问 microsoft.com/SCVMM。有关所有 Microsoft 虚拟化产品的详细信息，请访问 microsoft.com/virtualization。

Edwin Yuen 是 System Center Virtual Machine Manager 的 Windows 企业管理部门的技术产品经理。Edwin 是在 2006 年 7 月 Microsoft 收购 Softricity 后加入 Microsoft 的。Edwin 还具有 13 年在商业和联邦部门担任技术顾问的经验。他拥有约翰-霍普金斯大学的电气工程学士学位。
© 2007 Microsoft Corporation 与 CMP Media, LLC.保留所有权利；不得对全文或部分内容进行复制.


 System Center: 使用 Data Protection Manager 2007 更好地进行备份
System Center Calvin Keaton

使用 Data Protection Manager 2007 更好地进行备份
概览:
  • 从磁带备份转型
  • 连续数据保护
  • 基于磁盘的备份
  • 使用 DPM 实现更加精细的控制

数据保护市场最近经历了各种各样的复兴。在基于磁带的备份解决方案以及用于夜间备份的通用方法使用多年后，在相对较短的时间内，
涌现了多种新技术和方法。这些新技术包括基于磁盘的备份、连续数据保护 (CDP) 以及貌似数据加密一样简单的技术。由于磁盘存储价格最近有所下降、网络和处理器性能得以改进以及新调整需求的出现，某些新方法已得以实现甚至成为必需。
Microsoft 长期以来在该领域提供基于平台或基于应用程序的解决方案（如 NTBackup、Exchange Server 和 SQL ServerTM 备份工具就是其中的几个例子）。
System Center Data Protection Manager (DPM) 2006 是 Microsoft 进军数据保护市场的首款单机版软件；它是提供基于磁盘的数据保护的首批产品之一，也是考虑完全基于磁盘备份的独有产品之一。大部分其他产品过去且现在仍是基于磁带的方法，而现在的主流是使用磁盘。
DPM 是 System Center 系列产品的一部分。System Center 产品旨在相互协作使复杂 IT 基础结构的日常管理变得更加容易、更加经济高效。System Center 解决方案源自从 Microsoft® Operations Framework (MOF) 和信息技术基础结构库 (ITIL) 派生的自动化和最佳实践，并可用于组织的所有级别。
DPM 只是 System Center 系列的一部分。System Center Configuration Manager 提供配置管理和软件交付。System Center Operations Manager 为您提供前瞻性的系统监视和自动化。System Center Capacity Planner 可用于容量规划和基础结构部署的假设性分析。（有关详细信息，请参阅 microsoft.com/systemcenter。）
System Center Data Protection Manager 2006 对于文件和打印服务器提供基于磁盘的备份，对于分支机构提供基于 WAN 的磁盘备份。它旨在保护数据中心的文件服务器以及使本地磁带备份硬件远离分支机构。但是，它缺乏对 Microsoft 应用程序的本机支持，并且依赖第三方产品来实现到磁带的长期存档。
新版本 DPM (System Center Data Protection Manager 2007) 以此为基础，并且继续向文件和打印服务器以及分支机构提供稳定可靠的基于磁盘的保护，此外还增加了对关键业务 Microsoft 应用程序（如 Exchange、SQL Server 和 SharePoint®）的支持以及对磁带备份的本机支持。在新版本中出现大量变更十分常见，对于 DPM 尤其如此。第二个版本增加了大量新功能以及对现有功能的重大改进。在本文中，我将介绍几种新功能和增强功能，并让您大致了解一下可期待此令人兴奋的新版本实现些什么功能。

应用程序和平台支持
许多备份软件供应商使用“花生酱”方法来实现应用程序支持。他们的工程投资遍及大量应用程序，以试图支持尽可能多的数据源。结果是向大量应用程序提供非常基本的支持。Microsoft 不是向大量应用程序或平台提供有限支持，而是选择重点保护 Windows® 平台上的少数特定应用程序。这样，我们就能将工程投资集中在这些应用程序上，以营造集成的备份和还原体验，包括在其他备份产品中不常见的功能。
Microsoft Exchange 支持是 DPM 2006 用户的首要功能需求。明确这一点后，DPM 2007 引入了对 Exchange Server 2003 和 Exchange Server 2007 的支持。保护发生在存储组级，且单个存储组以对象形式出现在 DPM UI 中，然后在必要时将它们添加到保护组以启用计划好的策略驱动备份。群集存储组显示为单个对象，不必跟踪群集的单个成员并手动同步其保护。还原可发生在存储组级、数据库级或邮箱级。通过自动化实现精细恢复，它使用标准 Exchange 工具来将数据还原到恢复存储组，然后再次通过标准 Exchange 工具提取精细对象，如邮箱（参见图 1）。
图 1 DPM 中的 Exchange 支持
图 1 DPM 中的 Exchange 支持
与某些其他 Exchange 备份解决方案不同，在提取随后还原的对象时，DPM 不依赖于非 Exchange 工具或反向工程 Exchange 数据库。因此，Exchange 完全支持基于 DPM 的邮箱还原。
DPM 2007 是首个完全支持 Exchange 2007 群集连续复制 (CCR) 和本地连续复制 (LCR) 群集的产品，它还支持 Exchange 2003 群集。
DPM 2007 支持 SQL Server 2000 和 SQL Server 2005，且它们的备份和还原均发生在数据库级。还包括支持重定向和重命名还原以及完全支持群集、镜像或日志传送数据库。
与 Exchange 一样，群集数据库在 UI 中显示为单个对象，从而不必在多个群集服务器上单独配置保护（参见图 2）。DPM 中的 SQL Server 支持可用于保护大量依赖于后端 SQL Server 数据库的第三方应用程序，且支持通过文件保护执行应用程序以及通过 DPM 的 SQL Server 支持本机保护 SQL Server 数据库。DPM 中灵活的计划引擎允许将文件备份和 SQL Server 备份添加到相同的保护组，这样它们可同时发生且共享相同的管理和计划界面。
图 2 群集备份
图 2 群集备份
协作工作量受 SharePoint 2007 的保护，且支持 Windows SharePoint Services (WSS) 3.0 和 Microsoft Office SharePoint Server (MOSS) 2007。支持发生在场级，即使该场包含多个服务器。因此，由多个服务器（例如，由三个 Web 前端服务器、两个站点集合服务器以及一个数据库服务器共六个服务器）组成的一个场在 DPM UI 中可显示为单个对象，并由 DPM 还原为单个对象。
尽管支持全场恢复，DPM 还包括对站点、站点集合、单个文档、列表或项目还原的支持。当然，早期版本的 SharePoint 可通过 DPM SQL Server 保护功能作为 SQL Server 数据库保护。
在 DPM 2007 中继续支持文件和打印工作量，且提供开放文件支持（无需额外付费）。增加了对文件和文件夹排除以及系统状态备份的支持。特别要注意，文件支持已进一步扩展到包括 Windows Vista® 和 Windows XP。但是，对这些客户端操作系统的支持相对比较有限，因为支持主要面对用作文件服务器的系统。必要时，允许 DPM 用户保护少量客户端，但是此支持难以扩大到更多的桌面。
对 Exchange Server、SQL Server、SharePoint 服务器和文件服务器的本机支持允许 DPM 支持 Windows 环境中出现的绝大多数工作量。对于不常出现的工作量，DPM 2007 包括对前脚本和后脚本的支持，可在发生备份时自动运行。此功能允许 DPM 支持大量其他应用程序或工作量。此支持的集成度不及对 Exchange、SQL Server 和 SharePoint 提供的支持，但它确实在数据源支持方面提供了很大的灵活性。DPM TechCenter 上有详细介绍如何支持某些关键非 Microsoft 产品（如 Oracle）的白皮书，网址为：technet.microsoft.com/dpm。
DPM 2007 中提供的更加有趣的创新之一是基于主机的虚拟服务器支持。尽管大部分备份产品能支持虚拟服务器来宾作为单个服务器，但是，很少有产品能通过安装单个许可证和代理来在主机级提供此类保护。DPM 利用递归卷影复制服务 (VSS) 编写器，通过主机上部署的单个代理来保护给定虚拟服务器主机上承载的所有来宾。这些递归 VSS 编写器能调用来宾上甚至来宾上运行的应用程序中的 VSS 编写器，无论来宾上安装的是什么应用程序或操作系统。它允许 DPM 保护作为来宾运行的任何平台或应用程序（无论供应商是谁）。此类基于主机的虚拟服务器备份与应用程序相适应，并产生单个虚拟硬盘 (VHD) 映像（必要时，可在现有或新主机上还原此映像）。
这些基于主机的备份映像与通过来宾或独立服务器上安装的 DPM 代理实现的备份提供的还原级别不同，但是它们确实能提供其他效能（包括轻松地将系统恢复到虚拟环境中）。

速度、可靠性和效率
与之前版本相比，除应用程序支持的深度和广度方面的改进外，DPM 2007 在完整备份和增量备份方面也再进一步。尽管 DPM 2006 的同步频率可达每小时一次，新版本 DPM 允许您每 15 分钟进行一次增量备份，每个小时进行一次完整备份。对于服务级别协议 (SLA) 要求不高的客户，可能每周才需执行一次完整备份。因此，这些客户可在让主要服务器执行挑战性保护计划的同时，降低次要服务器上的备份频率。尽管可每 15 分钟使用 DPM 服务器执行一次同步，但在各同步的间隔期间，DPM 代理仍会主动跟踪受保护服务器上的更改。
该新 DPM 代理会在受保护服务器上发生块级更改时持续跟踪它们。此功能是通过针对 DPM 2007 开发的全新卷筛选器来实现的，它由分页池内存中的一张位图组成，并且包括受保护卷上每块的一位。
每在卷中写入一个块，位图中的一位就会发生翻转。该过程产生的处理器和内存影响低于典型防病毒筛选器，并且在更改频率增加时并无磁盘空间需求。实际上，更改频率增加根本不会增加与该筛选器相关的负载。这点非常重要，因为在更改频率增加时，大部分块级更改跟踪方案通常会产生较高的处理器和内存开销以及硬盘空间。因此，更高的更改频率往往带来更大影响，在某些情况下，极高的更改频率可能导致系统磁盘空间不足。使用 DPM 2007 时，无论更改频率是多少，卷筛选器对处理器、内存和磁盘的影响都相同。无论更改频率是 1% 还是 1,000%，它都会使该筛选器的开销保持在较低水平。
然而，跟踪更改后的数据仅是众多功能之一。DPM 2007 还会利用受保护服务器上的 VSS 服务来创建与应用程序相适的备份映像，这样映像能够可靠地恢复。Microsoft 开发 VSS 的目的是提供用于 Windows XP 和 Windows Server® 2003 的备份基础结构，并将其用作创建一致的数据时间点副本（影副本）的机制。通过协调读取和写入与业务应用程序、文件系统服务、备份应用程序、快速恢复解决方案以及存储硬件之间的关系，VSS 可产生一致的影副本。因此，现今市场上用于产生与应用程序相配的备份机制中，VSS 无疑是最合适且最可靠的。Windows Server 2003 中的许多功能均使用 VSS，包括共享文件夹的影副本。
使用 VSS 来实现应用程序备份的大部分产品都会创建一个 VSS 副本，并将它保留在受保护服务器上以跟踪更改并获取与应用程序相配的备份映像。遗憾的是，随时将副本保留在受保护服务器上会产生某些重大性能影响，因为每次应用程序对磁盘执行写操作时，都会写入副本以使 VSS 副本保持最新状态。它会带来 25% 的处理器开销并对写入时间产生重大影响。
由于 DPM 通过卷筛选器跟踪更改，它并不需要随时保留 VSS 副本。相反，DPM 会在完整备份时创建一个 VSS 副本，然后覆盖卷筛选器位图以仅找出副本中更改后的数据。更改后的数据会移动到 DPM 服务器，以用于创建恢复点。然后，删除受保护服务器上的 VSS 副本并重置卷筛选器。接着继续进行块级更改跟踪，但只需要少量开销，且 VSS 副本或相关资源的使用无需任何开销。
此解决方案可保证恢复点会产生可还原的应用程序映像，并且它会减少受保护服务器和 DPM 服务器之间移动的数据量。
通过使用 DPM 2007，完整备份无需将数据的完整副本从受保护服务器移动到 DPM 服务器，而是仅移动更改后的数据。因此，对于一个每天更改频率为 10% 的 100GB Exchange 存储组，它的日常完整备份仅为 10GB。
在创建快照来获取恢复点时，完整备份量的这一缩小将使 DPM 服务器上的存储变得非常有效。每个快照由构成上一完整备份的更改数据组成，并且它会在执行完整备份时自动产生。在处理应用程序时，这些快照还会包括已发生的任何干预增量备份。
增量备份实质上是将备份记录到 DPM 中。因此，每次对应用程序执行完整备份时，更改的数据会移动到 DPM 服务器并与任何干预日志备份绑定以创建包含多个恢复点的单个快照。对于之前介绍的日更改频率为 10% 的 100GB Exchange 存储组，如果假定采用日常完整备份和 15 分钟增量备份，快照可能包括 10GB 的更改数据以及约 5-10GB 的应用程序日志。但是，必须知道此 15 到 20GB 的快照可包含多达 97 个恢复点！
每周必须至少执行一次完整备份，并且快照总量不超过 512 个（对于应用程序服务器）和 64 个（对于文件服务器）。因此，每周执行一次完整备份和每 15 分钟执行一次增量备份会使每个快照产生 673 个恢复点；如果使用全部 512 个快照，则会产生超过 340,000 个恢复点。尽管不可能所有人都需要在磁盘上具有这么多恢复点，但它确实展示了 DPM 在作业调度和时间点恢复方面的灵活性和可伸缩性。
由于完整备份中包括日志备份，DPM 可在非常小的磁盘空间中有效地存储非常多的恢复点。但是，此过程会产生一些相关开销；此外，尽管此过程包含一些数据重复删除操作（即块级更改跟踪），但它并非技术压缩，甚至不是单实例存储 (SIS)。无论有怎样的称谓，DPM 在将少量存储用于创建的每个恢复点方面确实做得不错。更重要的是，由于 DPM 不是使用传统的压缩、单实例存储或重复删除来执行此任务，如果使用压缩、SIS 或重复删除存储平台来向 DPM 服务器提供存储，还有再提高效率的空间。

零数据丢失恢复和 CDP
也许，DPM 2007 中最令人兴奋的更改之一是能执行无损的 Microsoft 应用程序恢复。这一点是通过块级更改跟踪、VSS 体系结构以及与受保护服务器上的现有应用程序日志的深度集成来实现的。
一般来说，当今市场中存在两种用于数据保护和恢复的方法：
基于复制的解决方案 它是大部分客户印象中的传统连续数据保护 (CDP)。基于复制的数据保护将在发生更改的同时将受保护服务器上的更改移动到备份服务器中。它是基于磁盘的解决方案，目的是能恢复到任意时间点而不丢失数据。
尽管这听起来很诱人，但此方法确实存在一些非常实际的缺陷。首先，复制解决方案缺乏应用程序状态概念，并且它完全不了解应用程序中的移动组件。因此，在备份过程中，它不会刷新缓存或考虑内存中或正在传输的数据。这意味着基于复制的恢复点通常不与应用程序相配。您可执行恢复，但应用程序不会实际返回可用状态。此问题非常普遍，以致于有些基于复制的 CDP 供应商已在他们的文档中告知用户：如果当前恢复点不起作用，请尝试应用程序的另一恢复点。
除这些与应用程序相配的问题外，基于复制的 CDP 解决方案通常成本很高、导致大量网络和处理器开销，并且需要相当大的存储空间（而这些空间可能主要位于专有硬件上）。此外，许多客户需要存档或在现场之外的磁带备份，而基于复制的数据保护解决方案对这两种备份方式并不十分理想。
基于快照的解决方案 它是用于数据保护的传统磁带备份方法，即在外部媒体上创建时间点快照，然后使用该媒体来实现时间点恢复。恢复点目标 (RPO) 是由快照频率决定的，因此每日备份会产生 24 小时数据丢失。快照的优点是非常便宜、易于管理、对网络影响更小，并且非常适合于磁盘或磁带存档。由于可先准备应用程序再获取快照，它们还可产生与应用程序相配的映像。因此，在执行备份的过程中丢失应用程序的任何移动部分的风险更小。
快照方法的一个最新趋势是趋近 CDP 的解决方案。在此类快照解决方案中，增加了快照频率以使 RPO 变得非常低。现在，某些产品以分钟为单位测量 RPO，并且由于快照频率非常高，以致于它们完全不认为自己是趋近 CDP，而是自称为 CDP 产品。然而，在还原过程中，它们仍会丢失某些分钟的数据。
DPM 2006 在趋近 CDP 的快照产品竞争中地位牢固，但 DPM 2007 的 CDP 方法却是独一无二的。新版本的 DPM 利用 VSS 和块级更改跟踪技术获取快照，其频率最高为每 15 分钟一次，并且仅从受保护服务器上的 VSS 快照中移动更改的数据。所以，单个时间点快照非常小，因为它们仅包含块级更改。它实质上是一个非常先进的快照方法。DPM 中的新创新是针对 Exchange、SQL 和 SharePoint 的深度应用程序集成。集成度非常深，以致于 DPM 能了解应用程序日志并能在恢复过程中前滚这些日志。只要应用程序日志可用（如果您遵循了最佳实践并将它们放置在单独的驱动器上，它们就应该可用），DPM 将能够从上一时间点快照前滚它们以实现无损恢复（参见图 3）。
Figure 3 在 Data Protection Manager 管理员控制台中恢复选项
Figure 3 在 Data Protection Manager 管理员控制台中恢复选项
在许多方面，此 CDP 混合方法可同时利用两种方法的好处。它为快照解决方案的应用程序相配支持和长期存储支持提供了复制产品的零数据损失功能，同时避免了两种解决方案的多种缺陷。

支持磁盘和磁带备份
讨论 DPM 2007 新功能就不能不提及增加了对产品的磁带支持。DPM 2006 仅支持磁盘到磁盘 (D2D) 备份，即将数据从受保护服务器上的磁盘移动到 DPM 服务器上的磁盘。DPM 2007 同时支持磁盘和磁带媒体。因此，数据可从受保护服务器上的磁盘移动到 DPM 服务器连接的磁盘上 (D2D)、移动到 DPM 服务器连接的磁带上 (D2T)，或者先将受保护数据暂存在 DPM 服务器的磁盘上，然后移动到磁带上进行长期保留 (D2D2T)。
DPM 2007 支持各种磁带库、自动加载器以及多种不同的磁带媒体类型。
DPM 中的磁带支持包括多种先进功能，如基于软件的磁带媒体加密（无需额外付费）以及基本加密密钥管理、磁带保留和位置跟踪。

总结
我已详细介绍了 System Center Data Protection Manger 2007 中的多个新功能和增强功能。这些功能旨在针对 Microsoft 平台和应用程序提供一致、可靠且易于管理的数据保护并在 Windows 应用程序和平台数据保护方面树立新标准。
除了在本文中概述的功能，该产品还包含许多其他增强功能，如 Windows 集成的最终用户恢复、灵活的带宽限制以及高级命令行界面。我鼓励您下载 Data Protection Manager 2007 的 Beta 2 版本，以便在工作时查看这些功能和其他功能。有关更多信息以及 System Center 系列中所有产品的概述，请访问 microsoft.com/systemcenter。在那里，您可以导航到 System Center 系列中的任何解决方案，包括 Data Protection Manager。

Calvin Keaton 现在担任 DPM 产品计划员。之前他负责管理 Microsoft IT 数据保护服务。加入 Microsoft 前，Calvin 拥有六年在数据中心操作和硬件行业工作的经验，包括管理 Compaq 以及之后的 HP Services 的数据中心站点运营团队。


 System Center: 在线服务有助于简化软件清单
System Center Paul Bourgeau

在线服务有助于简化软件清单
概览:
  • 在线服务基本知识
  • 设置清单代理
  • 获取清单报告

CFO 刚发了一封电子邮件给您，请您帮个“小忙”：他需要一份组织内所有计算机的完整清单，它们的位置以及每台计算机上所安装的
软件。截止时间是本周末。他需要这份资料的原因是（选择一个或多个）：
  • 目前正在计划来年预算，他希望了解应分配多少资金来用于软件许可。
  • 他收到了一份软件审核通知，现在他必须证明您的组织已具有足够数量的特定产品合格许可证。
  • 之前 CEO 已要求他降低 IT 运营开销，他认为应用程序标准化是一个行之有效的方法。
您该如何处理这种情况呢？
IT 资产管理已经过了十余年的发展演变，现在各组织已对有效管理其软件资产有了高度重视。其主要原因是现在对于软件的财务投资明显大于从前，并且需要关注的法律、安全以及政策问题也越来越多。如果发生违规，可能要支付大笔调整费用或罚金，因此愈发需要能准确地管理软件资产。
更大型的组织通常使用各种资源和工具来管理软件。这些工具通常为大型多用途解决方案，它们不仅可跟踪硬件和软件清单，还可以管理提供给桌面的软件并监控性能以及其他操作功能。组织得到了什么、此类解决方案在哪些地方不可行以及用于实施和管理此类复杂解决方案的资源和专业知识在哪些地方不可用？
同时满足大型企业和小型企业的需求是软件作为服务 (SaaS) 这一概念背后的推动影响之一。Microsoft 的“软件加服务”策略致力于开发基于服务的解决方案，以帮助客户有效地管理软件资产。这些服务中首当其冲的服务之一为 Microsoft® 资产库存服务，它将在今年晚些时候作为面向软件保障的桌面优化包的一部分发布给软件保障客户。
资产库存服务 (AIS)（如图 1 所示）提供了一个易于部署且易于使用的托管服务，用于收集整个组织中所有计算机上安装软件的相关信息。可通过基于浏览器的报告访问该信息，并且计划未来的服务版本还可分析 Microsoft 批量许可协议的部署。
图 1 Microsoft 资产库存服务
图 1 Microsoft 资产库存服务

在线服务性质
为什么采用在线解决方案？这其中有多种具备说服力的原因，包括更新和新版本的即时可用、易于采用以及降低了部署和管理成本。
在线服务是动态的：与网页类似，服务提供商可不断更新内容和功能，从而增强用户体验并针对技术领域中的变化提供即时响应。它提供了前所未有的灵活性，允许软件供应商提供最新的功能、解决方案和知识，这样管理员将在管理其桌面的过程中更加积极主动。
在线服务具有无处不在的优势。在如今的 IT 环境中，各种不同的情形并存，从直接连接网络资源的完全联网 PC，到在四面八方通过 Internet 访问资源的远程用户和分支机构。由于移动用户除通过基于 Web 的邮件程序外很少连接到网络上，因此非常难以获取 IT 资产的完整清单。它历来都是清单工具的主要挑战，尤其是不支持远程/非联网情形的内部解决方案。
然而，如果大部分（而非全部）PC 具有 Internet 连接，则可使用在线服务来管理它们，而无需采取特殊的方法来确保与内部客户端-服务器解决方案的连接。也可通过安全的 Internet 连接访问服务来执行管理功能，因此，只要所在位置能访问 Internet，就可管理托管帐户的任何 PC。
部署非常简单，只需通过在线系统创建帐户即可开始使用。无需在您的环境中建立服务器，也无需投资构建新的网络基础架构和新的软件平台。这意味着更少的管理和财务投资。持续支持也更加轻松，其原因是服务会更为频繁地将新版本纳入服务协议，组织将不必担心升级途径的维护。

使用服务
形成在线社区
资产库存服务和 System Center Online 服务正在针对可能影响在线服务发展的用户进一步开发功能强大的社区。软件目录是用户社区可针对其提供意见（以真正的 wiki 方式）的极好内容示例，并且服务用户可提供建议、更正以及指导。
将来，在最终用户研究可能需要购买的软件时，目录本身还可能成为非常有价值的信息资源。可从整个服务收集聚合匿名统计数据以确定软件和硬件产品的使用率，并向参与这些活动的最终用户提供非常有用的数据。
社区还可以通过针对应优先哪些领域来满足特定业务需求提供反馈，对服务的总体方向提供指导。

为提供在线桌面管理服务，Microsoft System Center Online 将扩建平台，以使它不仅在短期内支持资产库存服务，还支持未来服务。服务的设计考虑了安全性、可伸缩性和可靠性。AIS 是全托管解决方案，所有服务器均处于 Microsoft 数据中心。要部署解决方案，客户必须在他们希望包括进托管清单的每台客户端 PC 上安装一个小软件。
资产库存服务也由管理 Microsoft.com 的人员管理。它是一个多用户共享式 Web 应用程序，使用 Web 服务来确保每个客户数据的隐私和安全性，并使用客户端和 Web 应用程序的组合来存储客户数据。客户站点上运行的代理将把软件清单上载到 Microsoft IIS Web 服务。相互验证的 SSL 可保护客户数据、客户端与服务之间的通信以及 AIS Web 站点，而该站点使用 SQL Server™ 来实现存储。
通过使用 Windows Live™ ID 帐户来进行身份验证，客户可登录服务以管理他们的帐户并查看报告。客户的 Web 站点还可使用 SSL 来保护客户数据，并使用 SQL Server Reporting Services 来生成报告。SQL Server 数据库被镜像，且平衡 Web 站点的负载以提高可用性。此外，清单数据已拆分成各个标度单位以实现高伸缩性。
可通过在 Microsoft 批量许可协议中购买 Microsoft 桌面优化包许可证来订阅资产库存服务。然后，可通过 Microsoft 批量许可服务站点（网址为 licensing.microsoft.com）激活资产库存服务订阅。要成功地通过身份验证并登录 AIS 服务，您必须拥有一个有效的 Windows Live ID。
激活期间，协议管理员将指定资产库存服务订阅管理员，其方法是指定其 Windows Live ID。订阅管理员使用其 Windows Live ID 登录到 AIS 并完成 AIS 的激活过程。然后，她通过指定其他用户的 Windows Live ID 来将他们添加到服务中。

清单代理
安装在每台 PC 上的客户端是一个小且易于部署的代理，它已打包成一个 Windows® Installer (MSI)。可通过在线服务来下载代理安装程序并管理客户端部署。（图 2 显示了管理和支持界面。）此代理的运行方式类似于 Windows Update 代理，它会定期与 System Center Online 服务器通信。它会根据预定义的频率更新清单配置文件，并在出现新版本的代理时进行自我更新。
图 2 帐户管理和客户端部署
图 2 帐户管理和客户端部署
清单设置为自动运行，无需用户干涉。还提供了选项以便在必要时启动手动清单。当代理首次联系服务时，它使用公钥基础结构 (PKI) 证书凭据来向服务展示客户身份，并为正在运行代理的计算机生成唯一标识。仅在预定时间运行的代理自身旨在不让用户感到唐突，因此它只占用最少的资源并在后台运行。上载的数据文件很小，不会导致网络流量达到峰值。
清单编制流程本身精巧高效。代理会扫描注册表项、MSI 数据库以及其他资源来获取安装信息。它与传统管理系统不同，后者扫描和解析计算机中的所有可执行程序，从而影响了用户的工作效率。此流程返回使用友好名称的软件清单数据和有助于识别和分类项目的元数据，使它们可用于大量软件资产管理活动。

Reporting Services
上载清单数据后，要进行识别和分类，为报告显示做好准备。清单数据与中央软件目录（它是在此目录中进行分类的）相匹配。此服务最重要的功能之一是：每个客户的软件清单数据向中央软件目录提供一个唯一签名。Microsoft 中的一个研究人员团队查看非私有且未分类的软件签名，并利用软件系列和种类的结构化分类法，根据应用程序的性质和作用对其所代表的应用程序进行分类。这些种类使用户能快速将注意力集中到他们感兴趣的特定软件类型（例如，您可能仅想查看防病毒应用程序），以提供更高级别的报告智能。
软件签名还可用于整合显示在报告中的数据。例如，发布者名称可能有各种形式 — 一个应用程序可能将发布者名称报告为 Contoso Software，而另一个可能报告为 Contoso，从而导致在报告中显示为不同发布者。通过整合发布者和应用程序名称，按这些条件进行准确报告以及以有意义的方式显示数据的能力得以增强。
当用户通过过滤和分组得到所需数据集后，可通过使用 SQL Server Reporting Services 以各种支持形式导出报告内容，包括 CSV 文件、Microsoft Word 文档、Microsoft Excel® 电子表格和 PDF 文件（请参阅图 3）。这样，您可执行其他外部分析和操作，或者将其用作其他企业管理系统的输入数据。
图 3 报告库存结果
图 3 报告库存结果
此服务即将新增功能，用于增强 Microsoft 许可证的处理方法，使此过程对用户而言更加轻松。用户将可以上载批量许可协议对，之后会使用这些协议对来从 Microsoft 客户许可位置存储库中检索许可证位置信息。然后，该许可授权数据将填充一条语句，该语句汇总找到的所有已安装可授权 Microsoft 软件以及对应的许可证数量。
通过利用也会在清单编制过程中收集的产品标识符，还可按渠道进一步划分已安装的软件：批量许可、零售和 OEM。计划在下一版本的资产库存服务中发布此功能。

展望
资产库存服务是 System Center Online 的初始产品，但决不会是最后一个产品。如之前所述，System Center Online 的长期目标是提供可完全作为在线服务使用的总体桌面管理服务。
正在考虑中的一些潜在产品包括：用于硬件和软件清单编制和跟踪的 IT 资产管理、软件更新和分发（类似使用 Internet 的 Windows 软件更新服务）以及在线/内部混合服务。还有许多其他桌面管理服务正在调查阶段，考察它们是否适用于此类情形。
要了解有关 Microsoft 资产库存服务的更多信息，请参阅 microsoft.com/windows/products/windowsvista/enterprise/ais.mspx。

Paul Bourgeau 是 System Center Online 团队的一个项目经理（在 Assetmetrix 被收购后加入 Microsoft）。


 组策略: 组策略的 ADM 和 ADMX 模板探密
组策略 Jeremy Moskowitz

组策略的 ADM 和 ADMX 模板探密
概览:
  • 组策略模板类型
  • 正确与不正确的策略密钥
  • 查看 ADM 模板
  • 将 ADM 转换为 ADMX

ADM 文件。您或者喜爱它们，或者憎恨它们，也可能二者兼具。这是因为它们既是必需的，又令人困惑。现在有了 ADMX 文件这一新格式，看起来只是让事情更乱了。好吧，看我为您拨云见日。

我们为什么需要 ADM 文件？
组策略涵盖的范围很广。如果您深入研究“组策略对象编辑器”(GPOE)，会发现多种可处理组策略的“资料”。例如，您将找到“软件限制策略”、“组策略软件安装”、“文件夹限制”，以及我们最常用的“管理模板”。“管理模板”节点出现在“用户”端和“计算机”端。如您所料，用户只能采用用户端策略设置，而计算机只能采用计算机端策略设置。
那么，“管理模板”中所有这些神奇的设置来自何处呢？当新的应用程序“诞生”时，您可以潜在地操控一些设置。ADM 文件即应运而生。它们描述那些已做好准备接受管理员所定义设置的应用程序区域。遗憾的是，ADM 文件会马上受限，因为它们只能在应用程序内处理注册表设置。但是，应用程序可将其设置保存在其他区域，例如 .ini 文件、.js 文件、.xml 文件和数据库。

自带 ADM 文件
计算机配置 | 管理模板和用户配置 | 管理模板的所有这些自带策略设置最初是如何到达此处的？如果您在 GPOE 中右键单击“管理模板”字样，然后选择“用户”端或“计算机”端的“添加/删除模板”，则会看到构成标准配置的默认模板，如图 1 所示。
图 1 默认管理模板
图 1 默认管理模板
这些文件的明细如下：
  • Conf.adm—NetMeeting® 设置。
  • Inetres.adm—Internet Explorer® 设置，包括连接、工具栏和工具栏设置。这些设置与您单击 Internet Explorer 内的“Internet 选项”菜单时可用的选项等效。
  • System.adm—操作系统更改和设置。大多数“计算机管理模板”和“用户管理模板”设置均在此 ADM 模板中。
  • Wmplayer.adm—Windows Media® Player 9 设置。
  • Wuau.adm—控制您的客户端对 Windows® Update 和/或 Windows Server® Update Services 服务器的访问。

添加新的 ADM 模板文件
通过 Microsoft 和第三方工具克服限制
ADM 和 ADMX 文件极其有用。使用它们，可将某些知识打包到您的定义文件中并控制您的目标应用程序。但 ADM 和 ADMX 文件均有限制。尤其是，这些文件无法执行以下操作：
  • 它们无法到达 HKEY_LOCAL_MACHINE 和 HKEY_Current_User 之外的注册表配置单元中。如果您必须在其他注册表配置单元中进行操作，则无法使用 ADM 或 ADMX 文件进行相应操作。
  • 这些文件无法向 REG_Binary 值中做出添加。
  • 它们无法专门设置为 "run only once"。
  • 您也无法将其专门设置为在组策略刷新期间 "always reapply"。
  • 写入不正确键值的 ADM 和 ADMX 文件会在注册表中留下记号。因此，即使用户超出管理范围 (SOM) 或 GPO 已删除，该值仍会存在。
为了克服这些限制，Microsoft 和某些第三方提供了对您有所帮助的解决方案。Microsoft 最近收购了 DesktopStandard，而且刚刚发布了 DesktopStandard Registry Extension 的重命名版本。有了此工具，您可以使用 GPOE 内的向导界面在目标计算机上规定希望管理的特定注册表值。
DesktopStandard PolicyMaker 技术（包括 Registry Extension 工具）现在称为“组策略首选项”，它们包含在 Windows Server 2008 中。使用“组策略首选项”，管理员可以配置那些通常无法通过组策略配置的应用程序或 Windows 组件，并根据一组非常丰富的目标规则将其应用于某些用户或计算机。“组策略首选项”与 Windows Server 2008 中的“组策略管理控制台”和“高级组策略管理”完全集成。
有关“组策略首选项”的详细信息，请阅读本期《TechNet 杂志》中 Derek Melber 所著的文章“Dive into Advanced Group Policy Management”（深入研究高级组策略管理）。

这个问题很简单。首先，获取要使用的 ADM 模板。您可以使用从 GPanswers.com（此处有十多个有趣的模板）下载的模板，或者位于 Microsoft 网站上的针对 Office 2003 或 Office 2007 的 ADM 文件。
只需右键单击“管理模板”字样，然后单击“添加”（如图 1 所示），即可添加模板。默认情况下，Windows 会在 \Windows\inf 目录下寻找模板，但您可根据需要将其存储在任何其他位置。以下事情您可能没有意识到：一旦从原始存储点添加了 ADM 模板，此 ADM 模板还会添加到“组策略对象”(GPO) 本身的内容中。
例如，为编写本文章，我登录 GPanswers.com 并下载了 nopassport.adm。我最初将此模板文件保存在 c:\temp 目录下。此 ADM 模板允许我们隐藏“您是否要添加通行证？”这一消息，该消息在用户第一次登录到运行 Windows XP 的计算机时出现。
我还下载了 Office 2003 ADM 模板并将其存储在 c:\temp 中。但它们不会保留在该目录下。在图 2 中，您可以看到我已经添加了 nopassport.adm 和 Word11.adm。而且，它们已添加到“添加/删除模板”窗口内的默认模板列表中。
图 2 GPO 中其他的 ADM 文件
图 2 GPO 中其他的 ADM 文件
现在，如果您查看 GPO 自身基于文件的部分（具体地说，在 \\domaincontroller\SYSVOL\domainname\Policies\GUID\ADM 目录中），则可看到 nopassport.adm 和 Word11.adm 文件现在是 GPO 的一部分，如图 2 所示。
这些模板为什么会添加到 GPO 中？因为如果您稍后尝试在另一管理工作站上编辑此 GPO，将看到包含在 ADM 文件中的设置。

我为什么看不到刚刚加载的内容？
您有时可以看到您 ADM 文件的添加内容，有时却看不到。许多管理员对此百思不得其解。确实，这是 GPanswers.com 上很常见的问题，因此让我们马上将其解释清楚。
您至少应该可以看到添加两个模板的结果（请参阅图 3）。将出现两个新节点：计算机配置 | Nuisances（出自 nopassport.adm）和用户配置 | Microsoft Office Word 2003（出自 Word11.adm）。如果您深入研究 Microsoft® Word 2003 设置，您将看到相当大的可配置项数组，如图 3 所示。
图 3 可配置的组策略设置
图 3 可配置的组策略设置
但您为什么在新的 Nuisances 节点中看不到这些设置？要明白这一点，必须首先了解 ADM 模板可能影响的“正确”与“不正确”策略键值的理念。

正确与不正确的策略键值
Microsoft 文档声明，要在注册表 hack 外部创建策略，以下四个注册表区域被认为是经批准的位置：
  • HKLM\Software\Policies（计算机设置，首选位置）
  • HKLM\Software\Microsoft\Windows\CurrentVersion\Policies（计算机设置，备用位置）
  • HKCU\Software\Policies（用户设置，首选位置）
  • HKCU\Software\Microsoft\Windows\CurrentVersion\Policies（用户设置，备用位置）
包含在 Word 2003 ADM 文件中的设置写入到这些正确的位置，但 nopassport.adm 文件不是这样操作—nopassport.adm 写入到 HKLM\Software\Microsoft\MessengerService\PassportBalloon。
由于未写入到这四个正确策略键值的设置将在注册表中留下记号，所以 GPOE 在允许您看到这些设置之前建立了一道小安全门。因此，即使您削减 GPO，也没有办法使设置还原。例如，假设您添加了 nopassport.adm 文件，并选择隐藏您域中每个计算机的“您是否要添加通行证？”这一弹出提示框。但后来，您的老板说他实际上喜欢得到此弹出提示框。在此例中，您面临着艰巨的任务，因为所有计算机现在将采纳此设置（基本上永远采纳）除非您明确地还原它们。虽然，您可以仅针对此目的创建一个新的自定义 ADM，但这又将是一个漫长的过程。
相比之下，常规策略设置具有默认值。如果您削减 GPO，这些设置将还原为默认值。例如，如果您选择使用内置 ADM 模板禁止访问“控制面板”，但后来又改变主意，则只需削减 GPO，便又可以访问“控制面板”了。仅默认 ADM（一些古怪的例外）附带的各个设置情况如此。
再次重申，使用自定义通行证隐藏 ADM，策略设置所在的站点不能让组策略引擎在设置删除后将其还原。因此，Microsoft（最初）根本不显示这些标记策略设置，从而为您提供保护，使您不会搬起石头砸自己的脚！

看到 ADM 模板
因此，看到 ADM 模板根本不那么困难。默认情况下，编辑器不为您显示设置，但此问题很容易解决。单击“管理模板”（在“用户”或“计算机”区域），然后选择“视图 | 过滤”。最后，取消选中（一定取消选中）“只显示能完全管理的策略设置”（可在图 4 中看到）。当您执行此操作时，将会看到策略设置“通行证请求”出现在“设置”列下面，同样可在图 4 中看到。
图 4 GPO 过滤
图 4 GPO 过滤

编辑器中的 Windows XP 与 Windows Vista
您是否注意到刚刚弹出的策略设置的细微差别？请看一看现有 ADM 文件附带的策略设置图标，如图 5 所示。现在，请看一下来自 ADM 模板（其中的设置未写入到正确的策略注册表键值）的策略设置图标，如图 6 所示。
图 5 带图标的 ADM 文件
图 5 带图标的 ADM 文件
图 6 键值使用不当的图标
图 6 键值使用不当的图标
蓝色与红色图标差别帮助您确定哪些设置将留下记号，哪些设置不留下记号。但同样，这完全取决于设置实际履行其职责的位置。
顺便说一句，在 Windows Vista® 中，当您在 Windows Vista 管理工作站中使用 ADM 文件时，情况会稍有变化。ADM 文件出现在它们各自的节点下，节点名为 "Classic Administrative Templates (ADM)"，如图 7 所示。红点设置现在显示为滚动图标，并带有一个下拉箭头（但在编辑设置本身时，它有一个小 "No Enter" 记号）。
图 7 典型管理模板节点
图 7 典型管理模板节点
蓝点设置（写入到正确注册表键值的设置）显示为小滚动图标，如图 8 所示。
图 8 显示正确键值的滚动图标
图 8 显示正确键值的滚动图标

关于 ADMX 都有哪些评论？
Windows Vista 和 Windows Server 2003 均附带一个新的内置“组策略管理控制台”(GPMC)。这个新 GPMC 引入了一个新功能，那就是不再使用旧的 ADM 文件，从而为更新的 ADMX 文件腾出空间（如果您希望如此）。我们为什么要摆脱 ADM 格式？
请回想一下，ADM 文件本身被置于 GPO 的“组策略模板”(GPT) 的内部（位于 SYSVOL 中）。这样，每当您创建一个 GPO，就会在每个域控制器 (DC) 上占用大约 4MB 的空间。此外，请再回想一下，ADM 文件本身被置于 GPO 的 GPT 中，因为它对于在另一管理工作站上重新编辑 GPO 是必不可少的。没有此 ADM 文件，您便无法编辑包含在 GPO 内的任何自定义设置。
ADMX 格式帮助我们避免了这些问题。您不必再将任何内容直接存储在 GPO 内部，因此不会出现通常所说的“SYSVOL 膨胀”—即臃肿的 SYSVOL，它要存储装满 ADM 文件的 GPO，且造成将其复制到每个 DC 的负担。要解决此问题，新 ADMX 标准可以利用“中心库”所具备的优势。“中心库”的工作是提供一个放置新 ADMX 文件的位置，这样您就不必将它们复制到每个 GPO 中。这样，就可以向 SYSVOL 膨胀说再见了。“中心库”的另一重要作用是：如果 ADMX 文件具有更新的定义，则所有 Windows Vista 管理工作站将立即使用更新的 ADMX 文件。
如果您希望了解 ADMX 文件的格式，尤其是“中心库”的创建及使用细节，可参考以下两个资源。Darren Mar-Elia 在 2007 年 2 月期的《Technet 杂志》(technetmagazine.com/issues/2007/02/Templates) 中写了一篇关于 ADMX 文件格式内幕的文章，并简要解释了“中心库”。我还有一个可下载的完整章节，来自于我的最新著作《Group Policy:Management, Troubleshooting, and Security》（组策略：管理、疑难解答与安全性），该书在 GPanswers.com 的“书籍资源”中提供。
如前所述，当您使用 Windows Vista 管理工作站时，ADM 模板仍受支持，但 ADM 文件在“中心库”内不受支持。这可能有点令人困惑，因此让我们通过一个示例来进行讲解。
假设我刚从 Windows Vista 管理工作站创建了一个 GPO，然后调整了一些自带设置（如禁止访问“控制面板”）。现在，再假设我想添加一个自定义 ADM 模板。完成此操作后，让我们了解一下 GPO 的 GPT，看看发生了什么以进一步掌握情况。
要添加 ADM 模板，可重复先前所执行的一些步骤。只需打开 GPOE，右键单击包含在“用户”或“计算机”节点内的“管理模板”，然后选择“添加/删除模板”即可。您可以看到添加的模板，如图 9 所示。
图 9 查看已添加的模板
图 9 查看已添加的模板
为了实际看到包含在此 ADM 模板内的设置，您需要按照我们以前在图 4 中的套路来操作。即，单击“视图 | 过滤”。最后，取消选中“只显示能完全管理的策略设置”。然后，关闭 GPOE 并返回 GPMC。图 10 显示了我刚从 Windows Vista 管理工作站创建的 GPO 的“详细信息”选项卡。（请注意 GPO 那个容易记忆的名称。）通过在“详细信息”选项卡中查找，我可以确定 GPO 的 GUID，这将使我能更容易地在 SYSVOL 中探查以找到特定的 GPO。
图 10 默认管理模板
图 10 默认管理模板
追踪到 GPO 的 GPT（通过使用 GPO 的 GUID）后，我可以打开 GPO 的 ADM 目录，并看到此处正好有一个 ADM 模板—我手动导入的模板，如图 11 所示。这是由于 Windows Vista 计算机不再依赖于 ADM 的缘故。由于它们本身并不使用 ADM，因此它们本身并不将任何内容增加到 GPO 自身中。但是，如果您手动导入 ADM（如我刚才所做），则它将继续采用 ADM，方式与 Windows 早期版本所用方式相同。
图 11 手动导入的 ADM 文件
图 11 手动导入的 ADM 文件
这与图 12 中的 GPO 形成了对比，该 GPO 是在运行 Windows XP 或 Windows Server 2003 的计算机上创建的。如果 GPO 是使用 Windows Vista 之前的管理工作站创建的，则原始 ADM 文件会添加到 GPO 中，如我先前所述。此 GPO 创建于 Windows XP 管理工作站上。您可以判定 Windows Vista 不需要或不使用它，因为它装满了 ADM 文件。
图 12 Windows XP 上创建的 GPO
图 12 Windows XP 上创建的 GPO

使用 ADMX Migrator 工具将 ADM 转换为 ADMX
Windows XP 使用 ADM 文件，而 Windows Vista 使用 ADMX 文件，尽管在我们有可用 ADM 文件时 Windows Vista 仍继续支持它们。但是，我们无法将 ADM 文件粘贴到“中心库”中，并期望我们的 Windows Vista 管理工作站能够利用该文件。
为了在“中心库”中利用包含在 ADM 内的设置，您需要将 ADM 文件转换为 ADMX，或手动将 ADM 文件重新创建为 ADMX 文件。幸运的是，有一个可执行这两种功能的下载项。可从 go.microsoft.com/fwlink/?LinkId=103774 下载 ADMX Migrator 工具（它实际上由 ADM 至 ADMX 转换器工具和 ADMX 创建工具组成）。
您可在 Windows Server 2003、Windows XP 或 Windows Vista 上安装 ADMX Migrator 工具的 MSI 文件。安装后，可在 C:\Program Files\FullArmor\ADMX Migrator 目录下找到这些应用程序。我要运行的命令行应用程序名为 faAdmxConv.exe。但由于该目录不在路径中，因此您需要转到此目录中，之后才能运行应用程序。因而在要使用该工具时，我选择将此目录添加到我的 Windows 路径中。www.computerhope.com/issues/ch000549.htm 中的文章解释了如何设置 Windows 路径。
我通常创建一个临时目录，例如 C:\ADMtemp，然后将源 ADM 文件复制到其中。faAdmxConv.exe 有许多可能的参数，但转换 ADM 文件的最简单方法是指定 ADM 文件的名称和输出目录。如果您已经继续并将源 ADM 文件置于 ADMtemp 中，而且已将 faAdmxConv.exe 添加到路径中，则只需运行“faAdmxConv nopassport.adm”。（结尾处的点表示当前目录为输出目录）。如果您未指定点（针对此目录）或另一显式路径，则输出会转至您帐户配置文件的临时目录中。在图 13 中，您可以看到三个命令：
图 13 ADMX Migrator 工具
图 13 ADMX Migrator 工具
  • “dir”命令用于查看 ADM 文件
  • 具有 ADM 名称和 .（点）的“faAdmxConv”命令用于表示当前目录
  • “dir”用于查看已输出的文件：nopassport.admx 和 nopassport.adml
在将生成的文件直接置于“中心库”之前，您最好在脱机运行的计算机上进行测试。使计算机脱机后，将 ADMX 文件复制到 C:\Windows\PolicyDefinitions 目录并将 ADML 文件复制到各语言特定的目录下。在美国，此目录为 C:\Windows\PolicyDefinitions\en-us。复制过程的示例如图 14 中所示。
图 14 将 ADMX 文件复制到中心库
图 14 将 ADMX 文件复制到中心库
ADM 至 ADMX 转换器工具最近已升级到版本 1.2。它更正了许多转换错误并在转换期间增加了有用的警告消息。如果您在过去试用过 ADM 至 ADMX 转换器工具，但由于无法更正错误消息而放弃，我鼓励您再次试用 1.2 版本，现在可以下载该版本。
最后，经过转换的 ADM 文件现在实际上是两个文件：ADMX（与语言无关）文件和 ADML（特定于语言）文件。此时，您可以将生成的文件置于“中心库”内部，或在本地计算机上对其进行测试。但是，再次强调，为了实际看到包含在此 ADMX 模板内的策略设置，您仍需按照我们在图 4 中的套路来操作。也就是说，您仍需单击“视图 | 过滤”，然后取消选中“只显示能完全管理的策略设置”。这是因为包含在此 ADMX 文件内的设置未写入到我先前讨论的一个正确策略键值内。

整理
理想状态是明确地仅使用 ADMX 文件并利用“中心库”。但为了达到此目的，您需要将所有当前的 ADM 文件转换为 ADMX、将所有管理工作站转换为 Windows Vista（或 Windows Server 2008），并承诺停止在 Windows Vista 之前版本的计算机上编辑 GPO。
如果您完成了这三个步骤，则会或多或少地删除 ADM 文件。此时，您 GPO 内的 ADM 文件只是在 DC 的 SYSVOL 中占用空间。一旦有了 ADMX，如果您愿意，只需删除包含在 GPO 的 GPT 内（在 SYSVOL 中）的 ADM 即可。没错：它们就像您身体上的阑尾一样是残留物。它们仅在某一时刻起作用，而在其他时刻便不再有用。您可通过手动执行或使用脚本来实现此操作。但请注意，如果未完成这些步骤就执行此操作，会出现严重错误。因此，请确保仅在已确定可遗留 ADM 文件时执行此操作。
有关 ADM、ADMX 和 ADML 文件的其他信息，请参阅 go.microsoft.com/fwlink/?LinkId=105019 上的“管理组策略 ADMX 文件分步指南”，以及 go.microsoft.com/fwlink/?LinkId=105032 上的“ADMX 技术审核”。此外，请确保在 GPanswers.com/newsletter 上注册 GPanswers.com 新闻稿，并通过 GPanswers.com/blog 上的博客来获悉媒介通告。

Jeremy Moskowitz MCSE 和组策略方面的 MVP，管理着 GPanswers.com，这是一个关于组策略的社区论坛。他还负责一系列有关组策略的深入培训课程。Jeremy 的最新著作是《Group Policy:Management, Troubleshooting, and Security》（组策略：管理、疑难解答与安全性）(Sybex, 2007)。您可通过 www.GPanswers.com 与他联系。


 组策略: 优化组策略性能
组策略 Darren Mar-Elia

优化组策略性能
概览:
  • 整体化与功能化 GPO
  • 如何处理组策略条目
  • 当 GP 改变时会发生什么情况

我经常会被问及“从性能方面考虑，是配置少量较大的 GPO 好还是配置大量较小的 GPO 好”这一问题，本文将集中讨论此问题以及其他与组策略设计和性能相关的问题。同时还会涉及大量常见问题。
我可以先告诉你答案：“视情况而定。”虽然这个答案可能有点含糊其词，但我的目标是阐明组策略的处理机制，这样无论您是正准备开始配置组策略，还是准备优化众多现有的 GPO 环境，都可以对组策略设计做出正确的决策。

整体化与功能化 GPO
让我们首先介绍一下实现 GPO 的不同方法。术语“整体化”和“功能化”是针对您的设计方式而言的。整体化 GPO 包含许多不同方面的设置。例如，整体化 GPO 可能包含来自“管理模板”、“Internet Explorer 维护”以及“软件安装策略”（所有这些都在单个的 GPO 中）的设置。相反，功能化 GPO 通常只包含一个方面。例如，功能化 GPO 可能只进行“软件安装”或只进行强制的“安全”设置。我甚至还见过有的功能化 GPO 只包含一项策略设置！当然这可能只是极端情况。图 1 显示了各种方法的部分优点和缺点。
Figure 1 比较整体化与功能化 GPO (Close Figure 1)

问题 | 整体化 GPO | 功能化 GPO
委派/隔离 | 困难，因为各个 GPO 可能包含来自多个区域的设置，而您只能在 GPO 级别而不是设置级别进行委派。 | 简单，因为每个 GPO 只包含单一的策略区域，您可以将软件安装 GPO 委派给部署管理员，而将安全 GPO 委派给安全官员，诸如此类。
可管理性和复杂性 | 管理起来可能会比较简单容易，因为每个 GPO 都在单独的位置中包含所有设置。 | 可能会比较困难，因为 GPO 越多则意味着需要查找更多的位置来跟踪问题，而且在确定给定用户或计算机的策略结果集时会非常复杂。
性能 | 可能会较慢，因为对于给定的客户端侧扩展而言，如果一个 GPO 发生变化，则所有扩展都需要针对范围内的所有 GPO 加以运行。 | 取决于使用的 GPO 数量以及更改频率。在动态环境中，性能可能会稍好于整体化 GPO。
您可以可看到，对于“哪种方法（整体化还是功能化）在所有情况下都最适合”这样的问题并没有绝对肯定的回答。在您的环境中，可能两者都需要。例如，在为整个域创建安全策略时，可能功能化方法更适合一些。在一个单独的 GPO 中仅包含安全设置可便于将该 GPO 的控制权委派给安全管理员，而其他人均无法对其执行操作。同样道理，如果将 GP 管理委派给 OU 管理员，然后为每个 OU 建立一个整体化 GPO，这将为这些管理员提供一个单一位置，使其能够在其中管理其所有策略设置。这可以降低其复杂性，并使您能够调节为给定 OU 的用户和计算机所创建的 GPO 的数量。
这些高级别设计决策将如何影响组策略处理的性能，如何才能做出明智的 GP 设计决策以最大程度地减小对性能产生的影响？要想最大程度地提高组策略基础结构的性能，首先要了解组策略处理过程的工作原理。

了解组策略处理过程
组策略处理是一组复杂的交互过程，其中涉及 Windows® 和 Active Directory® 基础结构的许多方面。从较高的层次来看，组策略处理过程分为两个部分。第一部分称为“核心”或“组策略基础结构”处理过程。在这一阶段，Windows 组策略客户端向其最近的域控制器进行查询以确定 DC 的链接速度是多少、在 Active Directory 层次结构中处于什么位置（即客户端是哪个站点、域和 OU 的成员），以及哪些 GPO 适用于该计算机或当前登录的用户。（特别要注意，在此上下文环境中，客户端可以是加入到 Active Directory 域的服务器或工作站。）GPO 列表创建完毕后，即开始执行下一阶段 — 客户端扩展 (CSE) 处理过程。在 CSE 阶段，各个注册的 CSE 都会对那些已在其区域内实现了设置的 GPO 的列表进行处理。例如，注册表或管理模板 CSE 始终会先运行并处理应用到给定计算机或用户的所有 GPO，以及已在内部实现了注册策略的 GPO。
下面的列表详细说明了组策略处理循环的执行步骤，包括客户端和域控制器之间的网络交互。务必要记住，组策略既应用到计算机也应用到用户。因此，对于每次策略处理（例如在组策略的后台刷新期间），在给定系统的计算机和当前登录用户帐户中都会重复执行下面列举的循环 I，因为它们所应用的策略集可能互不相同。当出现这种情况时，Windows 实际上为计算机和用户都会执行此处理循环，而各个循环都在组策略引擎进程内的不同线程中运行。（Windows 2000、Windows XP 和 Windows Server® 2003 的 Winlogon 进程，以及 Windows Vista® 和 Windows Server 2008 中的“组策略客户端”服务。）
GP 的处理过程分为 6 个步骤：
  1. 客户端对其站点内的域控制器执行“Internet 控制消息协议”(ICMP) 慢速链接检测以确定链接速度。在 Windows Vista 中，已不再使用 ICMP 进行慢速链接检测，取而代之的是“网络位置感知”(NLA) 服务。
  2. 客户端从其本地注册表中读取 CSE 状态信息，以确定哪些 GPO 是最后处理的。
  3. 客户端使用 LDAP 在它于 Active Directory 层次结构中所处的位置内（首先在 OU 级别（包括所有嵌套的 OU），然后在域中，最后在 Active Directory 站点级别）搜索各个容器对象在 Active Directory 中的 gpLink 属性。然后，根据这一搜索结果，它将建立一个必须进行处理评估的 GPO 的列表。
  4. 每个 GPO 将随后在 Active Directory 中进行搜索以确定该客户端（用户或计算机）是否具有必需的处理权限。同时还将评估其版本号、在 SYSVOL 中 GPO 的“组策略模板”(GPT) 部分的路径以及在该 GPO 中实现了哪些 CSE。
  5. 然后，客户端使用“服务器消息块”(SMB) 协议读取 GPT 的内容，并从 gpt.ini 文件中获取 GPO 的版本号。“组策略容器”(GPC) 和 GPT 中的版本号是用来确定自上个处理循环以来 GPO 是否被更改过的一个依据。
  6. 各个 CSE 都按照在 HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\GPExtensions 中的注册顺序运行，并且如果 GPO 自上个处理循环以来曾被更改过（在核心处理过程期间确定），则会对实现该 CSE 的 GPO 进行处理。各个 CSE 还将在每次刷新期间把“用户策略结果集”(RSOP) 数据记录到“Windows 管理规范”(WMI) 中。
让我们仔细分析一下此过程并看一看它如何影响性能。首先要明确的是前台和后台处理有所不同。前台处理过程发生在计算机的系统重新启动期间以及用户的用户登录期间。默认情况下，工作站和成员服务器的后台刷新频率为 90 分钟加上 30 分钟以内的一个随机值。域控制器上的后台刷新频率默认为 5 分钟。在 Windows Vista 中，您还可以使用基于 NLA 的刷新，它们实质上是属于后台刷新事件，如果由于对域控制器的访问权限不足而导致组策略处理过程失败（例如当后台刷新间隔到期时客户端刚好离线），则会触发这些事件。这些区别为什么非常重要？主要是因为某些 CSE（例如“软件安装”以及“文件夹重定向”CSE）在后台刷新期间不会运行。同样，登录/注销或启动/关机脚本在后台刷新期间也不会运行。
类似地，在此过程的步骤 1 中，我曾提到过慢速链接检测过程。在 Windows Vista 之前的系统中，此过程必须通过客户端使用 ICMP 对域控制器执行 ping 操作来确定其可用性和链接速度。如果计算得出的链接速度低于某个阈值（默认是 500Kb/s），则认为链接过慢，这时，某些 CSE（例如“软件安装”、“文件夹重定向”以及“Internet Explorer 维护”）将不会运行。所有这些条件都可能会对性能以及预期策略交付产生影响。
对性能会产生很大影响的策略处理循环或许是确定应用到计算机或用户的 GPO 是否已发生更改的逻辑。组策略引擎有一个内置的优化原则，即如果自上次 GP 被处理以来计算机或用户未发生任何变化，则不进行处理。这显然会对客户端处理策略所用的时间产生巨大的影响，特别是当您的 GP 环境处于近乎静态的情况下时。让我们来进一步了解一下发生改变的原因。

组策略何时发生改变
那么到底是什么原因导致组策略处理过程发生改变呢？原因有多种，但最明显的是如果对 GPO 进行了改动，则处理该 GPO 的客户端会检测到此改变并因此将重新处理该 GPO。客户端如何知道 GPO 已更改？它是根据 GPO 的版本号和客户端内部的版本号计算得到的。
GPO 由两部分组成：存储在 Active Directory 中的 GPC（在各个域的 CN=Policies、CN=System 容器内），以及存储在 SYSVOL 中 "Policies" 文件夹内的 GPT。GPO 的各个部分都包含一个版本号。对于 GPC，此版本号存储在 GPC 对象的 versionNumber 属性中。对于 GPT，它存储在给定 GPT 的根目录下的 gpt.ini 文件中。客户端还会在其注册表内保留已处理的 GPO 的版本号记录（包括对每台计算机和每位用户的记录）。对于各客户端的计算机，此版本信息位于 HKLM\Software\Microsoft\Windows\Currentversion\Group Policy\History 中；对于用户，此信息位于 HKLM\Software\Microsoft\Windows\Currentversion\Group Policy\<用户的 SID> 中。
当组策略处理过程开始时，其中一部分工作是检查计算机或用户所属的所有 GPO 的版本号，然后将其与注册表中找到的在上次循环中处理过的版本号进行比较。如果当前 GPO 的版本号有任何不同（注意，只要有不同之处即可，无论是差别很大还是只有细微差别），则在当前处理循环中都会处理这些 GPO。否则将不会对其进行处理，除非满足其他某个更改条件。这里所说的其他更改条件包括：
  • 应用到用户或计算机的 GPO 列表发生改变（添加或删除了 GPO）
  • 用户或计算机的安全组成员身份发生改变
  • 关联到 GPO 的 WMI 筛选器发生改变（添加或删除了 WMI 筛选器）
如果满足上述任一更改条件，客户端都将在该循环中重新处理策略。但此过程中有些细微差别需要引起注意，因为它们可能对性能产生重大影响。对于给定的 CSE，如果 10 个 GPO 中有 1 个发生了改变，则必须对该 CSE 中的所有 GPO 进行处理。请记住，过程处理是以各个 CSE 为基础进行的。但是，CSE 必须以控制流程时使用的优先顺序来处理策略（首先是本地 GPO，其次是站点链接的 GPO，接下来是域链接的 GPO，然后是 OU 链接的 GPO）。根据这一要求，我们假定对某个用户应用 10 个 GPO，其中每个都链接到 Active Directory 层次结构的不同级别。此外还假定这 10 个 GPO 每个都实现了某些管理模板策略设置。现在，管理员将介入并更改某个链接到域的 GPO — 添加一个新的管理模板策略设置。随后计算机或用户开始处理策略并发现所更改的 GPO 的版本号大于上次处理的版本号，因此需要再次处理该 GPO。但是，为了维持 GP 处理过程的优先顺序，必须先处理应用到所有 GPO 的全部管理模板设置。所以说，对一个 GPO 的轻微改动就可能会对该客户端造成重大的性能影响。

比较整体化 GPO 与功能化 GPO 的性能
到目前为止我们已经探讨了处理循环以及对组策略环境的更改将对处理过程产生哪些影响，接下来让我们回过头来看一看对整体化与功能化 GPO 性能比较的讨论，以及这两种方法如何影响性能。
鉴于组策略的版本检查方式，整体化 GPO 可能会面临潜在的性能问题。虽然导致这种情况出现的原因错综复杂，但它们都与这一事实有关：即在组策略处理过程中，并没有对各个 CSE 进行版本检查。让我们假定某个用户有三个适用的 GPO。每个 GPO 都是整体化 GPO，其中实现了多个策略区域。例如，假定各个 GPO 都实现了管理模板策略、软件安装策略以及文件夹重定向策略。现在，我们假定管理员对其中一个 GPO 中的管理模板策略进行了更改。这次更改使版本号增加。随后用户介入并处理组策略。管理员模板 CSE 启动并检查到其中一个 GPO 发生了变化，这样它将再次处理这三个 GPO。
当“软件安装”和“文件夹重定向”CSE 运行时，它们也对 GPO 版本号进行了检查并注意到其中一个 GPO 已变为新版本。但由于该版本号无法告诉它们在该 GPO 中哪个策略区域发生了改变，所以为了以防万一，它们不得不重新处理全部三个 GPO。这样做的结果就使得在整体化 GPO 实现中，对其中一个策略区域进行更改可能会导致不得不在其他区域中执行处理过程。
当然，在软件安装或文件夹重定向策略中，这些 CSE 实际上可能并不执行任何工作，例如，如果某个应用程序已经安装完毕，则不会再次进行安装。但我们要指出的是这种行为可能会发生在任何 CSE 中，因此在设计整体化 GPO 时，必须将这一点考虑在内。如果某个策略区域经常发生变化，则可能需要考虑将实现该策略区域的 GPO 与其他策略区域分隔开。
从功能化 GPO 的角度看，这更侧重于性能方面的考虑。如果每个用户或计算机有多个 GPO（因为对给定的一组策略设置，功能化方法通常包含多个 GPO），则意味着在组策略处理过程的核心阶段，组策略引擎需要花费更多的时间来枚举这些 GPO。但是，正如我们将在下一节中看到的一样，这种方法可能并不会对性能造成太大的影响。

度量组策略性能
最后，为了更准确地确定组策略基础结构的性能，您需要能够度量组策略在真实环境中的性能。建模或预测组策略性能几乎是不可能的，因为大量的因素都可能会对既定处理循环产生影响。因此，根据经验进行度量是确定 GP 处理性能是否存在问题的最佳方式。导致性能低下的原因是什么？只要组策略处理过程影响到用户的系统体验，即可视为性能低下。可能每个组织的观点不尽相同，但关键是要知道确实存在这种问题。
那么，如何来度量给定组策略处理循环的持续时间呢？同样，这个问题也不是三言两语就能回答的。如果您运行的是 Windows Vista 或 Windows Server 2008，那么您可以充分利用新的“事件查看器工作日志”。事件查看器中的组策略工作日志位于 Applications and Services Logs\Microsoft\Windows\Group Policy\Operational 下，它提供了组策略处理循环中各个步骤的详细说明，包括各个处理阶段所用的时间（请参阅图 2）。
图 2 显示策略处理时间的组策略操作日志事件
图 2 显示策略处理时间的组策略操作日志事件
但是，如果您不在 Windows Vista 或 Windows Server 2008 环境中工作，那么度量策略处理时间的机制将不会如此直接。这时您可以选择启用 verbose userenv logging（请参阅 Microsoft 支持文章 support.microsoft.com/kb/221833）并查看该文件内针对给定处理循环的时间戳，或使用客户端注册表中保存的值来指出策略处理的起止时间。对于计算机，这些值存储在以下位置：
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\
Group Policy\State\Machine\Extension-List\
{00000000-0000-0000-0000-000000000000}
对于用户，这些值存储在以下位置：
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\
Group Policy\State\<SID of User>\Extension-List\
{00000000-0000-0000-0000-000000000000}
这些值以 FILETIME 格式存储，必须转换为正常的日期和时间。您也可以使用我编写的免费 GPTime.exe 实用工具（在 gpoguy.com/tools.htm#GP_Time_Utility 中提供）得到相同的信息。
如果您没有 Windows Vista 或 Windows Server 2008 环境，但却可以访问 userenv 日志，那么您仍可以获得有关每个策略处理循环需要花费多长时间的有价值信息。例如，图 3 是 userenv 日志的一个片断，它显示了组策略处理过程核心阶段的部分信息。
图 3 userenv 日志的片断
图 3 userenv 日志的片断
请注意，日志文件的每一行都包括一个时间戳。组策略处理循环核心部分的开头内容类似于 "ProcessGPOs:Starting user Group Policy (Background) processing ..."处理循环的 CSE 部分的开头内容类似于"ProcessGPOs:Processing extension Registry."您可以使用此日志和其中的时间戳来确定策略循环的各个部分所花费的时间。

有关性能问题的一般意见
在详细查看 userenv 日志文件后，您会发现一些模式，尽管无法预计策略处理过程需要花费的时间，但您可以就给定处理循环中时间的花费环节提供一些一般性意见。例如，在策略处理事件期间，当进行策略更改并因此导致 CSE 需要做一些额外工作时，花费在 GP 处理过程核心部分的时间通常要远少于花费在 CSE 部分的时间。
对于大多数策略区域来说情况均是如此，因为大多数 CSE 都需要执行比处理过程的核心部分运行起来更耗时的任务，其中最耗时的操作是查询 Active Directory 和 SYSVOL。例如，核心处理过程所花费的时间与运行 Microsoft® Office 安装程序的“软件安装”CSE 所花费的时间就不具有可比性。但是，对于那些自上个循环以来未发生任何变化的正常后台刷新，处理循环的核心部分与 CSE 部分所用的时间基本相同。但注册表策略处理是一个例外，除非给定用户或计算机有成百上千条注册表策略设置，否则其实际处理速度会相当快。
此外，禁用计算机端或用户端未使用的 GPO 对策略处理性能几乎没有影响。如果某个策略端从未使用过，则唯一的开销就是查询 Active Directory 对此进行确认，并且还必须执行一个查询来查看禁用的选项，该查询与确定是否已为该 GPO 端实现 CSE 时使用的查询相同。禁用一端后所产生的效果可以忽略不计。

优化 GP 性能的设计建议
至此我们已经讨论了组策略处理过程性能的许多方面，以下将给出一些对性能有直接影响的设计建议。按四个要点对这些建议进行了总结。
  1. 如果经常要对 GPO 进行更改，则请记住前面所讲的效果（对一个 CSE 所做的更改可能会影响所有 CSE 的处理过程）。因此，以注册表策略为例，如果打算经常对其进行更改的话，最好将注册表策略加入功能化 GPO（只处理注册表策略的 GPO），以便在进行更改时与其他 CSE 处理过程隔离开。
  2. 在考虑究竟多少 GPO 才算是数量过多时，要认识到策略处理过程只发生在更改期间，某些“开销大”的 CSE（例如软件安装、文件夹重定向、处理大量注册表策略或对大型文件或注册表目录设置许可权限）会占用大部分时间。在核心处理过程期间向 Active Directory 查询 GPO 列表所花费的时间在处理循环中通常只占最少的部分。因此，与只应用 5 个 GPO 但却定期运行开销很大的 CSE 所花费的时间相比，对给定用户应用 30 个 GPO 但只偶尔进行少量的注册表策略更改所花费的时间可能要少，因为对于前者而言 GPO 会频繁发生变化。
  3. 应避免采取会明显降低组策略处理性能的行为。例如，您可以设置策略来强制执行 CSE 过程，即使 GPO 尚未发生改变（在 Computer Configuration\Administrative Templates\System\Group Policy 下设置）。但如果这样做，在每个循环期间策略处理过程所花费的时间都会变长。
  4. 请记住，要根据情况决定是否禁用 Windows XP 和 Windows Vista 中的“快速登录优化”（通过在 Computer Configuration\Administrative Templates\System\Logon\Always wait for the network at computer startup and user logon 中启用该策略来设置）。启用此策略后，前台处理过程将从异步切换到同步。这意味着计算机和用户策略必须在用户获得计算机和桌面的控制权之前运行完毕。但是这样也有好处，因为它可以解决“软件安装”和“文件夹重定向”策略需要重新启动或登录两次或更多次才能生效的问题。

总结
尽管组策略处理性能不算是精密科学，但您也可以在设计过程中引入一些深入的技术来缓解性能问题。
了解处理循环的工作方式以及时间的花费环节有助于您对性能问题进行跟踪。使用 Windows Vista 或 Windows Server 2008 的工作日志（对于 Windows 的早期版本，需使用 userenv 日志）获取有关处理循环的指导性信息。要记住 CSE 处理过程的特点以及被 CSE 视为策略更改的条件。还要记住，在变化莫测的动态环境中，功能化 GPO 可能要比整体化 GPO 更适用。但最根本之处在于组策略是一种旨在帮助您更好地管理 Windows 环境的技术。非常重要的一点是要根据您的业务需求来确定组策略设计，而不是反其道而行之。记住本文所讨论的一些性能行为可帮助您实现该目标。

Darren Mar-Elia是 Microsoft 组策略 MVP，他创建了流行的组策略站点 — www.gpoguy.com，并且参与撰写了《Microsoft Windows Group Policy Guide》（Microsoft Windows 组策略指南）（Microsoft Press，2005）。他还是 SDM Software, Inc. 的 CTO 和创始人。您可以通过发送电子邮件到 Darren@gpoguy.com 与他联系。


 组策略: 深入研究高级组策略管理
组策略 Derek Melber

深入研究高级组策略管理
概览:
  • AGPM 安装和体系结构
  • GPO 的脱机编辑
  • 使用 AGPM 更改管理
  • 灾难恢复

Microsoft 刚收购了 DesktopStandard，该公司创造的产品可完整管理“组策略对象”。在我看来，每个使用 Active Directory 的企业都应运行此工具—“高级组策略管理”(AGPM)。
AGPM 可脱机编辑“组策略对象”(GPO)、更改管理、更新策略的工作流、委派以及更多内容。在本文中，我将深入研究该工具的内部工作流，从而让您进一步了解这个既奇妙又极其有用的产品。
首先，我来介绍一点背景知识。AGPM 最初称为 GPOVault。收购 DesktopStandard 之后，Microsoft 将其重命名为 AGPM，并将其添加到 Microsoft® 桌面优化包 (MDOP) 中。目前，仅当您的 Windows Vista® 桌面许可证在 Microsoft 软件担保的范围内时，您才能获得 MDOP。
根据我使用这些所包含工具的经验，我认为到目前为止，MDOP 是 Microsoft 最近推出的产品中最了不起的产品之一。MDOP 附带五个不同的工具，每一工具都令人印象深刻，组合在一起则成为最引人注意且有价值的工具集。要了解有关 MDOP 的更多信息，请登录 MDOP 网站：windowsvista.com/optimizeddesktop。

AGPM 安装和体系结构
AGPM 安装设计得非常小巧、便利—它包含服务器组件和客户端（管理）组件。服务器组件应安装在域中的成员服务器上；它不更改 Active Directory®、架构或任何其他目录服务。需要时，AGPM 可安装在域控制器上。
服务器安装将安装需要基于域的服务帐户的服务，AGPM 就是代表用户从该帐户访问实时生产“组策略对象”。安装还需要有一个 AGPM 管理，它将控制 AGPM 内的所有设置，例如委派和初始 GPO 管理。
客户端必须安装在运行 Windows Vista 且已具备正常管理功能的计算机上，最可能是在网络和 Active Directory 的管理员桌面上。客户端现在需要将 AGPM 设置指向 AGPM 服务器，并建立与存档的连接。AGPM 客户端使用“组策略管理控制台”(GPMC) 界面，并显示为 Change Control（更改控制）节点，如图 1 所示。
Figure 1 AGPM is fully integrated into the GPMC for ease of use
Figure 1 AGPM is fully integrated into the GPMC for ease of use
AGPM 客户端将访问的文件以基本文件格式存储在 AGPM 服务器上。这是存储这些文件的最简单方法，且易于备份整个 AGPM 存档。大多数 AGPM 功能都使用内置的 GPMC API，从而实现了产品的无缝集成和使用。AGPM 不使用数据库，它将 GPO 存储在单个文件夹中，由指令清单控制所有 GPO 与存档内父 GPO 的关联。这会确保所有 GPO 都具有唯一的 GUID，但置入产品时，正确的 GUID 会在部署过程中与 GPO 建立关联。

脱机编辑 AGPM
AGPM 最基本的功能是可以脱机（离开生产环境）编辑 GPO。使用默认 GPMC 来编辑 GPO 会导致错误设置立即被推入到生产环境中，从而可能导致灾难性后果，这一点众所周知。
APGM 通过“控制”GPO 来处理 GPO 的脱机编辑。受控制的 GPO（如图 2 所示）可以脱机编辑，并且不会侵入生产环境。
Figure 2 Controlled GPOs are stored in the AGPM archive and can be edited offline
Figure 2 Controlled GPOs are stored in the AGPM archive and can be edited offline
控制 GPO 非常简单。不受控制的 GPO（如图 3 所示）列出尚未与 AGPM 存档关联的所有 GPO。右键单击上述任一 GPO 都会出现一个菜单，其中包括“控制”。选择“控制”菜单选项将从生产位置（系统卷或 SYSVOL，在域控制器上共享）复制 GPO，并将其置于 AGPM 存档中。可控制多个 GPO；只需在选择 GPO 的同时（获取要控制的 GPO 的正确列表）按住 Shift 或 Ctrl 键，然后右键单击访问“控制”菜单选项即可。您仍可以使用“组策略对象编辑器”(GPOE) 来编辑受控制的 GPO。这只是已将 AGPM 完全集成到 GPMC 中的另一种方法。
Figure 3 Uncontrolled GPOs are placed in the archive by selecting the Control menu option
Figure 3 Uncontrolled GPOs are placed in the archive by selecting the Control menu option

AGPM 管理委派
让我们来看看 AGPM 如何通过首先检查您使用 GPMC 委派 GPO 管理的方式来处理委派。在 GPMC 内，有五个您可以授予给用户的不同委派任务：创建 GPO、链接 GPO、编辑 GPO、管理 GPO 和读取 GPO。
所有这些委派都是在 GPMC 界面内完成的。它们全部由在“委派”选项卡（与 GPMC 内的不同节点关联）上列出的用户和组控制。我们所关注的是那些允许创建新 GPO 的委派，以及编辑和管理现有 GPO 的委派。
GPMC 内 GPO 的创建由与“组策略对象”节点关联的“委派”选项卡处理，如图 4 所示。一旦安装 AGPM，您将能够从有权创建 GPO 的用户和组列表中删除所有用户和组。（无需从“委派”选项卡中删除系统、计算机或计算机组即可创建 GPO。）GPO 的创建现在由控制 AGPM 服务的服务帐户处理。对于所有被委派在 AGPM 内部“创建 GPO”和“部署”的用户和组，此帐户将被委派代表他们创建 GPO。
Figure 4 Creation of GPOs is controlled by the list of accounts on the Delegation tab on the Group Policy Objects node in the GPMC
Figure 4 Creation of GPOs is controlled by the list of accounts on the Delegation tab on the Group Policy Objects node in the GPMC
这个创建 GPO 的新功能允许职责分开，并保护生产网络。理想情况是首先创建、配置和验证 GPO，然后再将其从 AGPM 环境部署到生产环境。如果没有 AGPM，则应该很少有象今天这样的错误配置推出。
对于与 GPO 的编辑或管理相关的委派，情况类似。在 GPMC 内，这些委派在与每个 GPO 关联的“委派”选项卡上配置，如图 5 所示。
Figure 5 Editing and managing GPOs is associated with each GPO individually
Figure 5 Editing and managing GPOs is associated with each GPO individually
一旦安装 AGPM，这些委派便需要从“组策略对象”节点下列出的每个 GPO 中删除。这将禁止所有管理员从 AGPM 外部编辑 GPO。实际上，这会将 GPO 的所有管理员引导至 AGPM，在此处，可以进行脱机编辑、更改管理、灾难恢复等任务。
删除从 AGPM 外部编辑 GPO 的用户和组是一个手动过程。AGPM 的安装和配置不会删除在生产环境下编辑 GPO 的任何用户或组。由于控制 AGPM 服务的服务帐户将代表那些在 AGPM 中修改生产 GPO 的用户执行操作，因此每个 GPO 的“委派”选项卡上不必列出任何用户或组。（计算机和计算机组不应从这些委派选项卡中删除。）
删除在 GPMC 内编辑 GPO 的全部委派后，所有管理员都不能在 GPMC 内编辑 GPO，如图 6 所示。
Figure 6 Admins can't edit GPOs from the GPMC once they are denied delegation for this action
Figure 6 Admins can't edit GPOs from the GPMC once they are denied delegation for this action
要完成配置，需要编辑 GPO 的所有管理员必须被添加到 AGPM 内的适当“访问控制列表”(ACL) 中。如果某个管理员需要编辑存档内的所有 GPO，则应将其用户帐户添加到已被授予在 AGPM 内的域级别进行编辑的组中，如图 7 所示。如果要将某个管理员限制为仅编辑 AGPM 存档内的几个 GPO，则应对每个 GPO 进行此配置（请参阅图 8）。
Figure 7 Domain Delegation tab allows for configuration of editing all GPOs in the archive
Figure 7 Domain Delegation tab allows for configuration of editing all GPOs in the archive
Figure 8 Editing of individual GPOs needs to be configured on the ACL of that GPO
Figure 8 Editing of individual GPOs needs to be configured on the ACL of that GPO

AGPM GPO 更改管理
AGPM 的惊人优势之一是能够跟踪对存档内的 GPO 所做的全部更改。由于这是一个自动过程，不必对其进行设置、配置或管理。当通过“AGPM 客户端”界面来管理 GPO 时，对所有更改的跟踪在后台进行。
对于默认 GPMC 处理 GPO 管理的方式而言，这是一项重大的改进。在默认 GPMC 内，没有自动化或甚至内置功能来跟踪 GPO 的更改。这一直是大多数“组策略”管理员在过去几年内所抱怨的主要问题，但现在该问题已解决。
AGPM 更改管理功能可跟踪 GPO 所发生的所有重大修改。除了对 GPO 更改有所帮助之外，更改管理系统在审计或总体管理跟踪情况方面也将有所帮助。更改管理系统将监控、跟踪以及记录每个 GPO 编辑和更改的下列细节：修改 GPO 的日期和时间、进行更改的用户、原始 GPO 设置以及对 GPO 设置的修改。
由于对所有更改的跟踪均是无缝的，因此了解什么操作会触发自动跟踪非常重要。在“AGPM 客户端”界面内，您可以右键单击 Controlled（受控制）选项卡下的 GPO，然后选择 Check-out（签出）菜单选项，如图 9 所示。
Figure 9 Checking out a GPO will trigger the automated process to track changes
Figure 9 Checking out a GPO will trigger the automated process to track changes
必须遵循此过程来编辑 GPO，我将在下一部分中对其进行讨论。即使 GPO 签出后立即被再次签入而无任何更改，此操作也会生成一个存档。由于 GPO 对企业而言不可缺少，因此工具需具有跟踪功能，甚至能跟踪发生更改的可能性。
签出过程在 AGPM 内强制执行，原因是必须要有一个机制，跟踪特定管理员对 GPO 的更改。两个管理员不能同时签出同一 GPO。如果某个管理员签出 GPO，但无法将其再次签入，则存在一个内置机制，允许 AGPM 管理员再次签入该 GPO。

AGPM GPO 编辑
只要安装 AGPM 客户端，您便可以访问 AGPM 存档。在 AGPM 工具内授予编辑委派或“完全控制”权限后，您将可以编辑存储的 GPO。签出 GPO 之后，可通过右键单击该 GPO 并选择“编辑”菜单选项来编辑它。（注意：如果您只能编辑 AGPM 存档内的某些 GPO，则您可能仅被授予对该存档内的某些 GPO 而非全部 GPO 的委派功能。）
在收购 DesktopStandard 的同时，Microsoft 还获得了 PolicyMaker，现已将其重命名为“组策略首选项”。该“组策略”功能集包含在 Windows Server® 2008 附带的 GPMC 中。“组策略首选项”可让管理员配置那些通常不能使用组策略配置的应用程序或 Windows 组件，并根据一组非常丰富的目标规则将其应用于某些用户或计算机。“组策略首选项”与 Windows Server 2008 中的 GPMC 和 AGPM 完全集成。

AGPM GPO 部署
AGPM 的设计体现了效率和工作流的概念。由于 GPO 管理现在更稳定且使用 AGPM 进行控制，因此可以让管理员只编辑 GPO、但不将其部署到生产中。在 AGPM 内，使用界面、对话框和工作机制非常顺利地控制这一过程。例如，如果具有仅编辑权限的管理员尝试部署 GPO，系统将会拦截它。然后，将为该管理员显示一个对话框，以便其与具有部署委派权限的管理员沟通。此工作流功能可以将电子邮件发送至“收件人：”和“抄送：”收件人，并将 GPO 置于唯一状态中。此唯一状态可在 AGPM 界面的“未决”选项卡下找到。GPO 在那里标记为“未决部署”，以便管理员快速查看已对其执行了操作的每个 GPO 的状态。
要部署未决的 GPO，具有部署委派的 AGPM 管理员只需右键单击该 GPO，然后选择“批准”菜单选项。如果 GPO 需要部署且列在“受控制”而非“未决”选项卡中，则同一管理员只需右键单击该 GPO 并选择“部署”即可。由于已授予此委派权限，因此 GPO 将立即部署到生产中。

AGPM GPO 设置报告和比较
GPMC 界面有一个强大的“设置”对话框，通过同名选项卡可对其进行访问。此“设置”对话框全面描述了在 GPO 中配置的所有设置，从而帮助您搞清楚已配置了大概 3000 个组策略设置中的哪些设置。
由于 AGPM 提供了已修改 GPO 的存档，因此 GPMC 中的“设置”选项卡不允许您查看在已编辑 GPO 中配置的设置。相反，AGPM 界面提供了此功能的替代解决方案以及更多其他功能。
要查看任何 GPO 中的设置，首先查看所有更改的历史列表会大有益处。要获得此视图，请双击 AGPM 中“受控制”选项卡内的任意 GPO。在此界面中，您可以右键单击任意 GPO 版本并选择“设置报告”。这将创建在此版本 GPO 中配置的所有设置的报告。此报告是易于识别的 HTML 文件（尽管它还可以采用 XML 格式创建）。
虽然这个报告很有用，但仍需使用处理程序比较同一 GPO 的两个版本。使用此功能，您可以查看从一个版本到另一版本所更改的内容，或比较同一 GPO 的两个完全不同的版本。（当您具有处于未决部署状态的 GPO 时，这也非常有用，因为它让您看到了未决 GPO 与生产 GPO 之间的差异。）要查看此报告，可突出显示历史视图中的两个不同 GPO，然后右键单击其中之一。
不同报告中的颜色编码极其有用，当您希望在部署之前验证未决 GPO 中发生更改的内容时尤其如此。以红色突出显示的设置已从生产 GPO 中删除，而且在未决 GPO 中不再可用。蓝色设置是已发生的更改，绿色设置是存在于未决 GPO 而非生产 GPO 中的新更改。
AGPM 的此功能可节省大量对 GPO 设置进行费力的手动比较的时间。它还是记录一段时间内的 GPO 的完美方法—每个版本均可报告和打印。

AGPM GPO 灾难恢复
对 GPO 的单一更改可能会导致您网络上的一台或多台计算机严重破坏。使用默认 GPMC，可更正此类型的错误配置—如果在更改生产 GPO 之前及之后采用了正确的手动措施来备份 GPO。如果未进行备份，则从此灾难中恢复并不像想象的那样简单。
AGPM 可轻松地处理此问题。由于有整个 GPO 历史中全部 GPO 的完整备份，因此您可以轻松地展开 GPO 历史，然后选择要重新部署的 GPO 版本。
有了 AGPM，您对“组策略”的管理会变得相当顺畅。多年来，管理员一直希望可以脱机控制和管理 GPO。终于，AGPM 提供了此功能。AGPM 还提供了功能强大的更改管理解决方案，该解决方案不仅可以跟踪已更改 GPO 的关键区域，还提供了简单的 GPO 比较和灾难恢复。在 AGPM 内构建的委派模型允许您将所有管理员引导至 AGPM 中，以在此处进行 GPO 的所有编辑操作，AGPM 可自动备份 GPO 更改并防止出现任何生产 GPO 灾祸。此服务还具有许多功能，在此不再讨论全部功能，但 AGMP 手册中提供了大量有关模板、节点链接恢复、SMTP 配置等的信息。

Derek Melber 是独立的顾问、培训师及作家。Derek 负责讲授和推广 Microsoft 技术，主要是 Active Directory、组策略、安全性以及桌面管理。Derek 定期编著在线及印刷出版物，他已编写了 10 多本技术书籍，其中包括《Microsoft Windows Group Policy Guide》（Microsoft Windows 组策略指南）(Microsoft Press, 2005)。您可以通过 derekm@braincore.net 与 Derek 联系。


 编辑寄语: 克服愤世嫉俗
编辑寄语
克服愤世嫉俗
Joshua Hoffman

我就是愤世嫉俗者。 这千真万确。我知道我们纽约人通常都以自己的信任感和谦逊天真而自豪，但偶尔，我们也有百密一疏而把一切都搞的一团糟的时候。作为愤世嫉俗者，我总有打破沙锅问到底的倾向。想让我服输，很难。
我在雷蒙德的同事可能不爱听，但当 Microsoft 前几年引入 System Center 品牌时我确实就是有那么一点愤世嫉俗。请不要误解我的意思 — 再怎么说，我好歹也是 SMS 用户啊。当我以前做桌面开发和管理专家时，Systems Management Server（版本 2.0 之后）可是我武器库中的重要武器。但随着 System Center 品牌的发展和产品线的增长，我好提问的习惯就落到了它的头上。
这个东西真的有必要吗？它最终能给客户带来好处吗？产品线多样化是不是会对我们所熟知并喜爱的旗舰管理产品造成负面影响？
我得承认，尽管给我的第一印象非常糟，但 System Center 最终让我刮目相看。SMS 和 MOM（现在称为 Configuration Manger 和 Operations Manager）已经发展成世界级的管理产品，每个发布版本都增加了许多强大（甚至令人惊异）的新功能。其品牌价值非但没有被新产品的添加而削弱 — 实际上反而得到了提升。
最近几个月里，我们已经探索了新的 Configuration Manager 和 Operations Manager 产品，以及 System Center 系列产品其他一些早期的插件（如 Capacity Planner、Desired Configuration Monitor 和 Essentials）。您会看到，本月我们深入到了一些非常强大的新增功能。
Edwin Yuen 将首先向您展示 Virtual Machine Manager 2007 如何帮助您集中化虚拟基础架构的管理，同时又能够帮助您扫除一些棘手的迁移障碍，从而使您能够将原有硬件整合至新的虚拟机中。Calvin Keaton 将引导我们学习新版本的 Data Protection Manager，该产品不仅为标准用户数据启用强大的基于磁盘的备份解决方案，而且同样支持备份类似 Exchange Server 中存储的关键信息之类的企业数据。最后，Paul Bourgeau 将介绍第一个承载型 System Center 解决方案 — 资产库存服务。
让我们听听您对 System Center 产品新增功能有哪些想法。请发送电子邮件至 tnmag@microsoft.com。 —Joshua Hoffman

向以下 Microsoft 技术专家致以衷心的感谢：Karandeep Anand、Joseph Dadzie、Ray Hayes、KC Lemson、Bill Scheidel、Jeffrey Snover、Mike Stephens、Kevin Sullivan、Jim Truher 和 Winni Verhoef。


 读者来信: 读者心声
读者来信
读者心声

VMRCplus 问题
我下载了 VMRCplus，如 2007 年 10 月刊的实用工具特别推荐所述 (technetmagazine.com/issues/2007/10/UtilitySpotlight)。但是，如果我尝试连接远程计算机，就会出现 RPC 错误。由于 Virtual Server 管理界面是基于 Web，我认为此应用程序也应使用 Web 界面，只是在现有 Web 技术的基础上增加了更丰富的客户端体验。唉，可惜它使用的是 COM API。
—取自 blogs.technet.com/tnmag。

VMRCPlus 实际使用的是与 Virtual Server 随附的 VMRC 远程控制客户端相同的网络路径（实际是一个客户端应用程序，而非 Web 界面）。这意味着您必须有权访问以下端口：
  • 端口 5900，VMRC 服务器的默认端口
  • 端口 1024，管理网站的默认端口
  • 端口 137 和 138（TCP 和用户数据报协议 (UDP) 端口），用于 Kerberos V5 授权票证权限
  • 端口 135，用于 RPC 终结点映射程序
可在 microsoft.com/technet/prodtechnol/virtualserver/2005/proddocs/vs_operate_using_VMRC_manageVMs.mspx 中找到有关此内容的更多信息。

使用 Windows PE
我阅读了您的文章“Windows PE 入门”（2006 年 9 月刊，technetmagazine.com/issues/2006/09/WindowsPE）。我想尝试启动 Windows® PE 并在具备网络支持的 VMWare 工作站环境中运行，但是我无法使 Windows PE 访问使用 NIC 驱动程序的网络。我通过 Windows PE 映像 ISO 文件来从 VMWare 启动。启动后出现了命令控制台，但是当我键入 ipconfig 时，它并未显示 IP 地址。它也无法解析 DHCP 服务器的地址。
—John C。

出现此问题的原因是 Windows Vista®（它是 Windows PE 2.0 的基础）不支持 VMware 默认安装的 NIC。您需要在虚拟机配置文件（VMX 文件）中指定另一 NIC 类型，具体如下：
ethernet0.virtualDev = "e1000"
此操作必须通过在文本编辑器（如记事本）中编辑 VMX 文件来手动完成，因为您无法通过任何 GUI 来编辑它。此更改将把现有内置虚拟化 NIC 替换为 Windows Vista 支持的 Intel 1GB NIC。最重要的是，用此值替换它后，您将不必添加任何网络驱动程序。

优化 SQL Server 的查询性能
在文章“优化 SQL Server 查询性能”（2007 年 11 月刊，technetmagazine.com/issues/2007/11/SQLQuery）中，作者给出了一个 SQL Server™ 2005 示例，用于找出前 20 个开销最大的运行查询。但是，它无法在 SQL Server 2000 中运行。您能给我一个可用于该旧版本的示例吗？
—Arun N。

非常遗憾，无法在 SQL Server 2000 上获取此信息 — SQL Server 2000 不会在其过程缓存中收集和显示查询的此类信息。仅当一组新动态管理视图引入 SQL Server 2005 后，此信息才变为可用。

MIISWorkflow 应用程序无法运行
阅读“构建单步设置工作流”（2007 年 5 月刊，technetmagazine.com/issues/2007/05/Workflow）后，我有几点疑问。是否支持 MIISWorkflow 应用程序？它是否与 .NET Framework 2.0 兼容？当我尝试在 Visual Studio® 之外打开此应用程序时，出现了“服务不可用”错误。我已在调试模式中成功运行它，但如果在关闭 Visual Studio 后再尝试直接打开应用程序，则会出现错误。导致应用程序停止应用程序池和/或产生“服务不可用”错误的原因可能是什么？
—Cliff C。

MIISWorkflow 应用程序并非 Microsoft 正式支持的产品。它仅是用于教学目的的示例代码。
最好到 TechNet 论坛身份管理站点来讨论身份管理相关问题，网址为：forums.microsoft.com/TechNet/ShowForum.aspx?ForumID=540&SiteID=17。Microsoft 产品组的成员以及社区专家会监控这些论坛，并且是直接支持各种问题（如这一问题）的最佳资源之一。


 工具箱: 面向 IT 专业人员的新产品
工具箱
面向 IT 专业人员的新产品
Greg Steen

掌控 Windows PowerShell
PowerGUI
powergui.org
如果尚未开始使用 Windows PowerShellTM，很可能您很快就会用到它。Windows PowerShell 将成为 Windows Server® 领域的核心管理工具。对于初学者，它已成为 Exchange Server 2007 基于脚本管理的基础。
为以原有格式充分利用 Windows PowerShell，您需要记住大量语法、cmdlet 和通用结构。当然，您可能缺少时间（或精力）来专门做此工作。但如果您能使用集中式图形管理控制台来管理脚本，情况又会怎样呢？向您提供可自定义模板（类似 IntelliSense® 编辑功能）和脚本共享社区库的用户界面，这个想法如何？通过此类环境，可快速编写所需的任务脚本并能始终了解它们的位置以供将来重复使用和参考。
别担心，我可不是和您开玩笑。这个基于 GUI 的环境用于 Windows PowerShell，通过 PowerGUI（Quest Software 赞助的免费软件产品）提供。尽管在撰写本专栏时它仍处于测试阶段，此应用程序提供了一个易于使用且可扩展的管理 GUI（感觉像 steroid 上的 Microsoft® 管理控制台 (MMC) 管理单元）。
在此 GUI 内，可双击提供的任意脚本或自己的某个自定义脚本，以运行此脚本并提供返回数据集的表格视图。可对该数据应用列过滤器和值过滤器以获取所需信息。此外，可添加自己的自定义列以提供满足特定需求的计算值或自定义结果。
在此 GUI 内，可启动 Windows PowerShell 提示符或应用程序的内置脚本编辑器。此脚本编辑器提供了类似 IntelliSense 的基本环境，它显示了可用 cmdlet 的语法以及标准文件和编辑功能（如搜索和替换、打印以及剪切/复制/粘贴）。还可针对步骤创建书签。
此外，PowerGUI 提供了大量能应用到数据集的可自定义和可扩展的操作。例如，可使用本地系统服务脚本来启动、停止、挂起指定服务并设置属性。另一个不错的功能是能在脚本之间添加链接，从而可通过公共元素连接各脚本以获取所需信息。例如，可获取特定组的用户列表，然后将此列表链接到显示其主目录中数据量的脚本。除这些功能外，PowerGUI 还有许多用于报告和查看的内置常见操作脚本，可利用它们来将数据转储到 XML、CSV、HTML 和剪贴板。
可通过添加自己的脚本或自定义其中一个提供的模板来扩展单个脚本操作和常见操作。可通过在脚本上打开属性窗口来编辑现有脚本或仅查看其工作原理。
另一非常有价值的功能是 PowerGUI 网站社区库，用户可在此共享和下载脚本以协助进行系统管理任务。您还可以找到用于 Active Directory® 管理、Exchange 服务器管理、Microsoft Operations Manager 任务、常见 Windows Server 任务等的脚本和操作。PowerGUI 是一个坚实的起点，它提供了基于 GUI 且可扩展的管理工具，与 Windows PowerShell 搭配使用。

价格：免费
使用图形界面简化 Windows PowerShell
使用图形界面简化 Windows PowerShell

采购产品时请考虑环保
电子产品环境评估工具
epeat.net
说到环保，需考虑计算机在其整个生命周期中的总成本，即在制造、使用和处理计算机的过程中消耗的总能源（未涉及其他因素，如使用的原材料和产生的废物）。在这些方面的总成本非常惊人。（如需有关环境和财务成本的概述，请参见 Dave Ohara 为 2007 年 10 月份的《TechNet 杂志》撰写的文章（可从 technetmagazine.com/issues/2007/10/Green 获得。）
幸运的是，越来越多的个人和公司正意识到其基础结构的影响（财务和环境两方面）。因此，他们已开始寻找可降低能源消耗的产品。绿色电子委员会 (greenelectronicscouncil.org ) 为那些尝试帮助公司处理此问题的 IT 专业人员提供了一种工具。
此组织提供的工具称为 EPEAT（电子产品环境评估工具的缩写），可根据 51 种不同的环境条件（其中 23 个为必需条件，28 个为可选条件）评估电子产品。具体等级如下：铜牌（表示产品满足基准必需条件）、银牌（满足必需条件加上 50 % 的可选条件）以及金牌（满足必需条件加上 75% 或更多的可选条件）。
条件涉及产品的整个生命周期，从选择用于制造的原材料到使用期间的电源消耗直到生命周期管理结束。标准的必需条件主要包括产品影响的声明，如声明产品中有多少成份由再生塑料制成、确定产品中包含的哪些材料需要特殊处理以及声明产品包装中有多少成份为再生材料。（所有 EPEAT 注册的产品当前均满足 ENERGYSTAR 3.0 标准，并且到 2008 年 1 月末，所有产品均将遵循新的 ENERGYSTAR 4.0 标准。）
此外，认证产品必须具有针对产品和充电电池的“回收”服务（如果适用）。另一有趣的需求是三年保修或维修协议的可用性，理论上它应有助于延长设备寿命，因而降低高周转率的整体影响。
某些可选标准包含消除特定重金属（如镉）、模块化设计、公司环境实践和策略的第三方认证以及各种可再生百分比等级。
现在存在以下四类产品：台式计算机、集成式系统、显示器和笔记本电脑。产品类别会继续扩大，且定于在 2009 年某个时间发布服务器标准。
此外，大部分主要制造商均会参加。它受到了 2007 年 1 月的行政命令 13423 的支持，此命令规定：任何联邦机构采购的电子产品均应满足电子产品环境评估工具 (EPEAT) 注册电子产品至少 95% 的此类需求 (whitehouse.gov/news/releases/2007/01/20070124-2.html)。
因此，如果尚未关注所购买产品的环境影响，您应花时间了解一下 EPEAT 评估工具，以便开始考虑可从下一次产品采购中获得的环境（和财务）收益。

价格：免费
使用 EPEAT 评估您所购硬件对环境的影响
使用 EPEAT 评估您所购硬件对环境的影响

书评
Windows Vista 管理员的随身顾问
microsoft.com/MSPress/books/9588.aspx
如果准备在组织中部署 Windows Vista®，William Stanek 撰写的《Windows Vista 管理员的随身顾问》（Microsoft Press，2006 年）可帮助您迅速熟悉新特性和功能。如果读过“管理员的随身顾问”系列中的其他书籍，您会发现此书的格式非常熟悉并且其内容深度与此系列中的其他书籍类似。它没有提供每个细节，但很好地概括了特性和功能、特定管理任务的执行以及工作原理的最新内容。其内容无疑是面向系统管理员而非普通最终用户。
此书首先介绍了 Windows Preinstallation Environment 2.0，并简要概述了可在自动化或交互式安装过程中选用的各种实用程序。然后，它介绍了管理 Windows Vista 系统，向您展示如何使用各种工具（如 msconfig）排除故障或量身定制安装，并展示了各种新功能，如 Previous Versions（早期版本），该功能允许您将某个文件夹或文件还原到之前的状态。此外，还简单介绍了帮助您管理目标系统上的硬件和设备的各种工具。
然后，它将介绍如何通过自定义界面和桌面来为最终用户量身定制 Windows® 体验。例如，它将展示如何降低屏幕保护程序资源使用率、定制启动和开始菜单程序以及配置 Windows 侧栏。并且，它还展示了如何创建个人工具栏来让最终用户可通过该工具栏快速访问共享文件夹和文件。
有关 Windows Vista 程序和功能的安装和维护的章节介绍了各种工具（如 Software Explorer，它允许您快速查看系统的启动程序、当前运行的程序、Winsock 服务提供商以及连接网络的程序）。然后，它介绍了管理用户、配置文件、移动性问题以及计算机和用户策略，还有磁盘管理、文件安全性以及资源共享。更具体地讲，它解释了如何创建用户、通过组策略管理 Windows 登录以及创建使用户可更加轻松地访问受密码保护资源的关键条目。
有关移动性的章节介绍了如何使用新的备用网络配置来同时指定“办公室”配置和“途中”配置。用户可在这两个模式之间轻松切换。
在“管理文件安全性和资源共享”一章中，您将了解到有关如何配置 NTFS 文件和文件夹的权限以及 Windows Vista 特殊权限工作原理（和如何控制它们）的基础知识。在此处，您还会了解到如何创建、连接以及保持到共享资源的连接。
在磁盘管理方面，本书包含有配置硬盘配额的简介，它不仅教您如何创建、查看、更新以及删除磁盘配额，还教您如何导入和导出这些设置以便重复使用。
它非常详尽地介绍了 Windows Vista 中双 IPv4/IPv6 网络堆栈的工作原理。在此处，您还会了解到如何配置所在环境的网络适配器。
本书最后一节介绍了如何优化 Windows Vista 以确保用户获得最佳体验，之后是有关常规故障排除技术的一个小章节。在此处，您可了解到如何设置远程协助、通过定期磁盘检查和磁盘整理保持系统正常运行以及如何创建备份。总之，它是一个针对 Windows Vista 管理的快速参考，十分易于掌握。

价格：直销价 29.99 美元。

监视网站
Pingdom.com
pingdom.com
我之前已说过且特别强调：采取主动的方法来实现系统管理可减轻压力并有助于您避免尴尬（如老板给您发了封电子邮件，说“你知道网站不能使用了吗？”）。
一个好的网络监视工具对于此方法而言至关重要。大多数（即使不是全部）管理员可能均已使用某种内部网络监视服务器。但是，如果管理员侧重的是全球性网络，并需要确保面向 Internet 的服务随时可用，又该怎么办呢？
Pingdom.com 是一个应用程序服务提供商 (ASP)，它提供了一个简单却有效的自动化监控服务。ASP 的服务器分布在全球的多个位置，使您可更好地了解用户的实际体验，而非依赖于单一来源的外部服务监视器。
为此，需注册帐户并设置位置，同时定义时区、国家、日期格式以及满足具体需求的数字格式。然后设置联系人，即提供姓名、SMS 电话号码以及电子邮件地址以便于通知。接下来，创建监视检查，即定义名称、检查频率、以此频率执行的监视检查类型以及检查通知的类型、联系人和定期时间间隔。
默认帐户包提供从 1 分钟到 60 分钟的检查频率，从而使您可量身定制对监视服务的请求。可通过电子邮件或 SMS 将通知发送给联系人。并且，可定义发送通知之前服务 ping 可失败的次数以及在重新向您发送通知之前必须经过的失败周期数（最多四次提醒）。此外，还可让 pingdom 在服务重新正常运行后通知您 — 它非常适合于网站或服务维护窗口检查。对于维护，还可暂停或停止检查以避免在定期执行任务期间出现误报。
此服务为用户提供了四种基本的检查类型：HTTP 传感器、TCP 端口传感器、ping 传感器以及 UDP 传感器。HTTP 传感器可让您设置 URL/IP、请求是否是通过 SSL、端口、基本身份验证用户名称和密码组合或基本包括/排除内容检查字符串。TCP 端口传感器可让您定义要检查的服务端口和 IP/域。ping 传感器可让您设置要通过 ICMP 检查的 IP 或域。并且 UDP 传感器是由 IP/域、端口、发送到该组合的字符串以及预期响应字符串决定的。 实际上，您可在全球各地检查自己的网站、FTP 服务器、SMTP 服务器和其他项目的可用性。
此服务还提供了多种报告来帮助您形象地显示历史数据。通过这些报告，可查看指定月份的正常运行时间百分比以及该时段的平均响应时间。还可获取每个检查实例的详细视图，显示时间戳、状态、响应时间以及对其执行检查的服务器。此外，可获取通知视图，显示在指定时段内发送通知的时间、数量、目标以及采用的方式。可公开这些报告，以便组织中的其他成员查看服务统计数据。如果具有自己定制的 NOC，pingdom.com 还提供可查询此信息的 Web 服务 API，从而允许您将此服务集成到当前仪表盘视图中。

价格：每月 9.95 美元。
Pingdom.com 从全局角度监控您的 Web 服务
Pingdom.com 从全局角度监控您的 Web 服务

Greg Steen 是一位技术专家和企业家，酷爱钻研技术。他总是在寻找各种新工具，以帮助 IT 专业人员更轻松地进行操作、问答和开发。


 Exchange 问题与解答: 添加语音提示、选择 PBX 和更多内容
Exchange 问题与解答
添加语音提示、选择 PBX 和更多内容
Seema Rahman

问：我听说 Exchange 统一消息不提供高可用性或群集。事实果真如此吗？
答：虽然在群集或网络负载平衡配置中不支持统一消息，但您完全可以从某些网关获得高可用性解决方案。关键在于指定多台统一消息服务器来轮询流量。如果网关具备所需的高级路由功能，您还可以安排将特定流量路由至特定的统一消息服务器。例如，您可以指定一台统一消息服务器用于订阅者访问，并指定另一台用于所有自动应答电话。这样，您就能够根据您所在环境中的基础结构和趋势平衡统一消息流量。

问：我是否能够通过 Exchange 统一消息来为公司公共电话号码设置语音提示？
答：当然可以，您还可以设置自动应答。technet.microsoft.com/aa998818 中的文章“管理自定义音频提示”提供了配置该功能的详细步骤。

问：我如何了解我的专用交换分机 (PBX) 与 Exchange 统一消息是否兼容？
答：Microsoft 已经测试了某些网关，推荐使用这些经过测试的网关与 Exchange 统一消息搭配使用。生产这些网关的供应商提供了与其网关配用的 PBX 列表。如果其中任何一家供应商列出了您的 PBX，它就与 Exchange 统一消息兼容。
可以阅读位于 microsoft.com/technet/prodtechnol/exchange/telephony-advisor.mspx 的文章“适用于 Exchange Server 2007 的电话顾问”，它提供了支持的网关列表和许多其他相关信息。

问：我是否需要为我的电话系统添加任何特殊硬件才能使用 Exchange 统一消息？
答：Exchange 统一消息服务器的作用是为您提供语音邮件。为了与您当前的电话系统配合，可能需要一些您尚未具备的硬件。
如果您正使用的是受支持的 IP-PBX，那您不需要再添置硬件；但您可能需要在 IP-PBX 上配置一些特定的设置才能使用统一消息。
如果您使用的是不受支持的 IP-PBX，那您必须首先确定该硬件是否与某种受支持的网关兼容。您还需要一个受支持的 VoIP 网关。
microsoft.com/technet/prodtechnol/exchange/telephony-advisor.mspx 中的信息包含受支持的硬件列表，特别是 IP-PBX 和网关。请记得经常复查该列表，因为随着 Microsoft 认证新的硬件，该列表会经常更新。您还可以咨询当地的统一消息专家，确定您的环境的硬件需求。

问：统一消息如何提供传真支持？
答：目前统一消息提供传入传真功能，发送到启用了统一消息的用户分机的传真将以电子邮件消息的形式发送到用户的收件箱中，传真消息以 TIFF 格式附加在电子邮件中。可以从 technet.microsoft.com/ bb232022 获得详细的概述。

问：我有一台 Nortel CS1000 IP/PBX 并想在 Exchange Server 2007 上使用统一消息。但我不知道该如何将这两个系统结合在一起。我是否可以使用 Nortel CS1000 IP/PBX 作为网关，或者只有 Intel 和 AudioCodes 支持的设备才能作为网关？我还需要 Exchange 系统在 CS1000 Server 上进行身份验证。
答：只要您的 IP/PBX 运行的是 5.0 版本的固件，Nortel CS1000 就是受支持的 IP/PBX。无需再添置硬件即可使其工作。Nortel 网站上提供了有关配置 IP-PBX 的配置说明，网址是 support.nortel.com/go/main.jsp?cscat=docdetail&id=626197&poid=14261。受支持的网关、PBX 和受支持的固件版本可以从 microsoft.com/technet/prodtechnol/exchange/pbx-partners.mspx 获得。

Seema Rahman 已经在 Microsoft 工作了六年。作为一名支持升级工程师，她帮助客户们解决与 Exchange Server 相关的复杂问题。Seema 特别怀念在 Exchange 2007 Beta 团队时度过的美好时光，那时她所关注的重点是统一消息。


 实用程序特别推荐: Windows Easy Transfer Companion
实用程序特别推荐
Windows Easy Transfer Companion
Lance Whitney
本文基于 Windows Easy Transfer Companion 的预发布版。文中包含的所有信息均有可能变更。

现在，应将 用户从旧版 Windows® XP 计算机迁移到新的 Windows Vista® 计算机。任何迁移过程中最烦杂的事情是在用户的新 PC 上重新安装应用程序，并确保这些应用程序均能正常工作。现在，Microsoft 提供了一个免费工具来将您从这些数不胜数的重新安装中解脱出来。Windows Easy Transfer Companion (WETC) 可将关键软件程序从 Windows XP 复制到 Windows Vista。
在当前的试用版中，WETC 不同于 Windows Vista 中的 Windows Easy Transfer 向导。该向导会复制数据文件、程序设置和用户配置文件，但 WETC 会复制整个应用程序，尽管仅是从 Windows XP SP2 到 Windows Vista。必须使用管理员帐户运行转移。
将 WETC 同时安装在源计算机和目标计算机上。各个 PC 可通过网络或通过 Easy Transfer USB 电缆彼此通信。Easy Transfer 电缆的驱动程序已包含在 Windows Vista 中；对于 Windows XP，您需要从产品 CD 安装驱动程序。
WETC 提供了可转换应用程序的分类列表
连接电缆后，启动 Windows XP 计算机上的 WETC。此实用程序将扫描硬盘、收集基本系统信息并分析所有已安装的软件。该过程完成后，运行 Windows Vista 计算机上的 WETC。此实用程序将与 Windows XP 计算机通信以显示所有已发现应用程序的列表，分为三个类别（参见以上屏幕快照）：
  1. 转移良好的程序 — 能顺利转移且在 Windows Vista PC 上运行的软件。
  2. 转移可能存在限制的程序 — 能转移但可能无法正常运行的软件。
  3. 无法转移的程序 — 无法在 Windows Vista 上运行且未包括在转移中的软件。
对于每个无法成功转移的程序，WETC 都会简要解释原因。通常情况下，应用程序无法复制的原因是缺少安装程序信息或其他关键数据、与 Windows Vista 不兼容或已存在于 Windows Vista 计算机上。此外，WETC 不会复制特定类型的应用程序（如防病毒实用程序和系统实用程序）。它也不会传输 OS 架构（如 Microsoft .NET），您需要先在 Windows Vista 中安装它们，再复制任何需要它们的应用程序。
在程序列表中，核对要复制的程序。帮助屏幕可帮助您做出决策并提供任何问题的解决方案。还可保存一个预转移报告，它列出会转移和不会转移的所有程序。
然后继续执行转移，复制与每个程序相关的数据。最后，状态消息会告知您复制了哪些程序以及是否发生错误。可保存详细的转移后报告。退出 WETC 后，重启 Windows Vista PC，登录并运行转移的程序以确保它们能正常运行。
还有问题？Windows Vista 中的 WETC Programs 文件夹包含有 Resources（资源）工具的快捷方式，此工具拥有“撤消”功能，可删除复制到 Windows Vista 计算机上的所有应用程序，但此信息会在三天后失效。可通过以下网址了解有关 Windows Easy Transfer Companion 的更多信息并下载最新的版本：support.microsoft.com/kb/931696。

Lance Whitney 是一位 IT 顾问、培训师和技术撰稿人。他投入了很多的时间和精力来改进 Windows 工作站和服务器。15 年前，当他还是一名记者时，就开始涉足 IT 世界。


 网络专家: Windows Server 2008 中的 DNS 增强功能
网络专家
Windows Server 2008 中的 DNS 增强功能
Joseph Davies
这篇文章基于 Windows Server 2008 的预发布版。文中的所有信息均可能发生变更。

自 Windows NT 4.0 起，Microsoft 就已将域名系统 (DNS) 服务器服务包括进各种版本的 Windows Server 中。DNS 是一种分层结构的分布式数据库，其中包含 DNS 域名到各种类型数据（如 IP 地址）的映射。随着 Windows Server 2008 的发布，DNS 服务器服务将包含新的
后台区域加载、增强对 IPv6 的支持、支持只读域控制器 (RODC) 以及能承载全局单标签名称。

后台区域加载
Windows Server® 2008 中的 DNS 服务器服务通过执行后台区域加载提高了数据检索的速度。过去，当 Windows Server 2003 中的 DNS 服务器服务在重新启动后尝试从 Active Directory 中检索 DNS 数据时，具有在 Active Directory® 中包含大量记录的区域的企业曾经历长达一个小时甚至更长时间的延迟。在此类延迟期间，DNS 服务器对于其任何托管区域的服务 DNS 客户端请求均不可用。
为解决此问题，Windows Server 2008 中的 DNS 服务器服务在启动后将在后台从 Active Directory 检索区域数据，以便对其他区域的数据请求做出响应。在服务启动时，它会创建一个或多个执行线程来加载存储在 Active Directory 中的区域。由于有单独的线程分别加载基于 Active Directory 的区域，因此在进行区域加载的同时，DNS 服务器服务可响应查询。如果 DNS 客户端请求已加载区域中的数据，DNS 服务器会做出适当响应。如果请求的数据位于一个尚未完全检索的区域中，DNS 服务器将改为从 Active Directory 中检索特定数据。
对于在文件中存储区域信息，这种在区域加载期间从 Active Directory 检索特定数据的功能还提供了额外的好处 — 即 DNS 服务器服务能立即响应请求。当区域存储到文件中后，服务必须按顺序通读文件，直到找到数据。

增强对 IPv6 的支持
我们已在本专栏之前的版本中介绍过 IPv6，它是一组新的 Internet 标准协议组件。IPv6 旨在解决当前版本 (IPv4) 存在的多种问题，如地址耗尽、安全性、自动配置和可扩展性需求。
IPv6 的一个不同之处是它的地址长为 128 位，而 IPv4 地址仅为 32 位。IPv6 地址采用冒号十六进制表示法。每个十六进制数字即为 4 位 IPv6 地址。完整表示的 IPv6 地址是分为 8 块的 32 个十六进制数字，用冒号分隔。完整表示的 IPv6 地址的一个示例为 FD91:2ADD:715A:2111:DD48:AB34:D07C:3914。
IPv6 地址的正向名称解析使用 IPv6 主机 DNS 记录，称为 AAAA 记录（发音为“quad-A”）。对于反向名称解析，IPv6 使用 IP6.ARPA 域，由 32 个数字组成的 IPv6 地址中的每个十六进制数字均以相反的顺序变成反向域层次结构中单独的一层。例如，地址 FD91:2ADD:715A:2111:DD48:AB34:D07C:3914 的反向查找域名为 4.1.9.3.C.7.0.D.4.3.B.A.8.4.D.D.1.1.1.2.A.5.1.7.D.D.A.2.1.9.D.F.IP6.ARPA。
Windows Server 2003 中的 DNS 服务器服务支持 IPv6 的正向和反向名称解析；然而，并未完全集成此支持。例如，要在 Windows Server 2003 DNS 管理器插件中创建 IPv6 地址记录（刚讨论过的 AAAA 记录），必须右键单击区域，单击 Other New Records（其他新记录），然后双击 IPv6 Host (AAAA) 作为资源记录类型。要在 Windows Server 2008 的 DNS 管理器插件中添加一条 AAAA 记录，需要右键单击区域名称，然后单击 New Host（新主机）（A 或 AAAA）。在 New Host（新主机）对话框中，可键入 IPv4 或 IPv6 地址。图 1 就是一个示例。
图 1 新主机对话框
图 1 新主机对话框
更好地支持 IPv6 的另一示例是针对反向 IPv6 区域的。要在 Windows Server 2003 的 DNS 管理器插件中创建反向查找区域，必须在 New Zone Wizard（新区域向导）的 Reverse Lookup Zone Name（反向查找区域名称）页面中手动键入反向区域名称。DNS 反向区域名称的一个示例是 1.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa（对于 IPv6 子网前缀 2001:db8:0:1::/64，完整表示为 2001:0db8:0000:0001::/64）。
Windows Server 2008 的 DNS 管理器插件中的 IPv6 反向区域现已完全集成到 New Zone wizard（新区域向导）中。此向导有一个新页面，它会提示您选择 IPv4 反向查找区域还是 IPv6 反向查找区域。对于 IPv6 反向查找区域，只需键入 IPv6 子网前缀，向导会自动为您创建区域。图 2 就是一个示例。
图 2 命名 IPv6 反向查询区域
图 2 命名 IPv6 反向查询区域
针对反向区域的另一增强功能是 DNS 管理器插件显示 IPv6 指针 (PTR) 记录的方法。图 3 说明了 Windows Server 2003 的 DNS 管理器插件如何显示 PTR 记录。
图 3 Windows Server 2003 中 IPv6 的 PTR 记录
图 3 Windows Server 2003 中 IPv6 的 PTR 记录
尽管此显示准确地反映了 IPv6 反向域名的 DNS 命名空间结构，但是它使得 IPv6 地址的 PTR 记录管理更加困难。图 4 说明了 Windows Server 2008 的 DNS 管理器插件如何显示 PTR 记录。
图 4 Windows Server 2008 中 IPv6 的 PTR 记录
图 4 Windows Server 2008 中 IPv6 的 PTR 记录
Windows Server 2003 中的 DNS 服务器服务支持对 IPv6 的操作，但必须通过 dnscmd /config /EnableIPv6 1 命令来手动启动它。Windows Server 2008 则默认支持对 IPv6 的操作。Dnscmd.exe 命令行工具已更新为在命令行选项中接受 IPv6 地址。此外，DNS 服务器服务现在可向仅面向 IPv6 的服务器发送递归查询，并且服务器转发器列表可包含 IPv4 和 IPv6 两种地址。
有关 IPv6 和 Windows® 如何对其提供支持的详细信息，请参阅 microsoft.com/ipv6。

只读域控制器支持
Windows Server 2008 还引入了 RODC，它是一种新型域控制器，包含 Active Directory 信息的只读副本并可执行 Active Directory 功能，但无法直接进行配置。RODC 不易受到攻击，可放置在域控制器的物理安全性无法得到保证或网络包含潜在恶意主机的位置。
对于 RODC，Windows Server 2008 中的 DNS 服务器服务支持新的主要只读区域类型。当计算机变为 RODC 后，它会将 DNS 使用的所有应用程序目录分区复制一份完整的只读副本，包括域分区、ForestDNSZone 和 DomainDNSZone。这样可以确保 RODC 上运行的 DNS 服务器服务具有存储在非 RODC 域控制器的目录分区中的任意 DNS 区域的完整只读副本。可查看但无法更改 RODC 上主要只读区域的内容。必须在非 RODC 域控制器上更改区域的内容。

GlobalNames 区域
使用 GlobalNames 区域解析名称
在部署 GlobalNames 区域后，如果基于 Windows Vista 的 DNS 客户端尝试解析单标签名称，它会向单标签名称附加主 DNS 后缀，然后向 DNS 服务器提交名称查询请求。
如果找不到名称，DNS 客户端会针对单标签名称与 DNS 后缀搜索列表（若已配置）中的后缀的组合发送其他名称查询请求。如果这些名称均未解析成功，客户端会请求使用单标签名称进行解析。
DNS 服务器将在 GlobalNames 区域中搜索单标签名称。如果它出现在该处，则 DNS 服务器将把解析后的 IPv4 地址或 FQDN 发回 DNS 客户端。否则，DNS 客户端计算机将把名称转换为 NetBIOS 名称，并利用 NetBIOS 名称解析技术（包括 WINS）。要在 GlobalNames 区域中实现单标签名称解析，DNS 客户端服务不需有任何更改。

Windows Server 2008 和 Windows Vista® 支持基于 TCP/IP 协议的 NetBIOS (NetBT)。NetBT 使用 NetBIOS 名称来识别会话层的 NetBIOS 应用程序。当前版本的 Windows 依赖基于 Windows 套接字的网络应用程序和 DNS 来实现名称解析，尽管它们已不再需要使用 WINS 来实现 NetBIOS 名称解析，但许多 Microsoft 客户仍在他们的网络中部署 WINS，以支持旧版 NetBT 应用程序并在整个组织提供单标签名称的名称解析。单标签名称通常指组织中重要、众所周知且广泛使用的服务器（如电子邮件服务器、中央 Web 服务器或用于业务线应用程序的服务器）。
为允许仅使用 DNS 来在整个组织解析这些单标签名称，必需向组织的多个 DNS 域添加 A 记录，这样基于 Windows 的 DNS 客户端可直接解析名称，而不必考虑分配的 DNS 域后缀或后缀搜索列表。
例如，假定 contoso.com 或组织拥有一个名为 CWEB 的中央 Web 服务器，它是 central.contoso.com 域的一个成员。要在可向 DNS 客户端分配 DNS 域后缀 wcoast.contoso.com、central.contoso.com 或 ecoast.contoso.com 时实现服务器 CWEB 的单标签名称，网络管理员必须为 cweb.wcoast.contoso.com 和 cweb.ecoast.contoso.com 分别创建两个附加 A 记录。但是，切记必须在 IPv4 地址分配发生更改时或出现新名称时维护为单标签名称手动创建的 A 记录。
如果 contoso.com 已将 WINS 用于旧版 NetBT 应用程序，网络管理员可通过将单静态 WINS 记录添加到 WINS 基础结构来执行单标签名称 CWEB 的名称解析。若 IPv4 地址发生变化，仅需更改单静态 WINS 记录。由于单标签名称在 WINS 上更易于管理，许多基于 Windows 的网络都将静态 WINS 记录用于单标签名称。
为在 DNS 上提供单标签名称解决方案，让它的管理象静态 WINS 记录一样容易，Windows Server 2008 中的 DNS 服务器服务支持名为 GlobalNames 的新区域来存储单标签名称。此区域的复制范围通常是林，它在整个 Active Directory 林中提供单标签名称解析。此外，如果使用服务位置 (SRV) 资源记录来发布 GlobalNames 区域的位置，GlobalNames 区域可在包含多个林的组织内支持单标签名称解析。
与 WINS 不同，GlobalNames 区域旨在为有限的一组主机名称（通常是组织内由其 IT 部门管理的中央服务器和关键服务器）提供单标签名称解析。GlobalNames 区域的目的不是用于存储 IPv4 地址可能发生变化的台式计算机或其他服务器的名称，并且它根本不支持 DNS 动态更新。它最常用于存储别名 (CNAME) 资源记录，以将单标签名称映射为完全限定域名 (FQDN)。对于当前使用 WINS 的网络，GlobalNames 区域通常包含已在 WINS 中静态配置的 IT 管理名称的资源记录。
GlobalNames 区域仅在所有主管 DNS 服务器均运行 Windows Server 2008 时才提供单标签名称解析。但是，对于任意区域均非主管的其他 DNS 服务器，可运行旧版本 Windows 或其他操作系统。GlobalNames 区域在林中必须是唯一的。
要提供最佳性能和可扩展性，将应 GlobalNames 区域与 Active Directory 集成，并且应使用它的本地副本来配置每个主管 DNS 服务器。必须完成此操作，才能支持在多个林部署 GlobalNames 区域。
有关 Windows 中的 DNS 支持以及有关部署 GlobalNames 区域的更多信息，请参阅 Microsoft DNS 网页，网址为：microsoft.com/dns。

Joseph Davies 是 Microsoft 的一位技术撰稿人，从 1992 年起一直从事 Windows 网络主题的培训和编写工作。他曾为 Microsoft Press 编写了五本著作，是每月在线 TechNet 网络专家专栏的作者。


 Windows PowerShell: 拦截恶意代码
Windows PowerShell
拦截恶意代码
Don Jones

是否记得在 Windows Vista 尚处于测试阶段时，对于很早版本的新命令行 shell（代号为“Monad”）存在着许多争论？（它的最终名称是 Windows PowerShell。）当时，许多主流媒体报导了“首个 Windows Vista 病毒。”实际上，
这个“病毒”只是一个以“Monad”为目标的概念证明恶意软件脚本。为运行脚本，必须专门配置“Monad”本身 — 脚本在默认设置情况下无法运行。并且，在这些报导出现时，Microsoft 已宣布不会将“Monad”作为 Windows Vista® 的一部分发布。简而言之，整个情形是无事生非（或者至少是非常夸大其辞）。
随着 Windows PowerShellTM 的日渐普及（它的下载次数已超过一百万次），有人使用它来创建恶意脚本的几率也增加了。在 Windows PowerShell 中编写潜在破坏性脚本的能力是前提；任何管理工具（包括 Windows PowerShell、cmd.exe 和 VBScript）都可被恶意使用。因此，不能假定给定的 PS1 文件没有危害。
幸运的是，Windows PowerShell 已默认配置为不运行任何脚本，因此，恶意脚本必须在您的帮助下才会运行。本月，我要预测它可能发生的方式。这并不会影响 Windows PowerShell 的形象 — 我认为 Microsoft 在设计能避免各种风险的脚本 shell 方面已做得非常不错。但是，还是应对其进行讨论，以帮助您做好拦截该潜在攻击的准备。

默认安全
值得注意的是，Windows PowerShell 是实施著名的高信度计算计划后由 Microsoft 设计的首款语言。安全专家 Michael Howard（Writing Secure Code 一书的作者）是 Windows PowerShell 团队的“安全使者”。他帮助确保代码编写得尽可能安全，最为重要的，确保 shell 的出厂配置尽可能安全。
首先，让我们快速查看一下初始 Windows PowerShell 安全设置。默认情况下，shell 不会在您双击具有 PS1 文件扩展名的文件时运行这些文件。该扩展名针对的是记事本。实际上，在默认情况下，由于名为执行策略的内置功能描述了运行脚本的条件，shell 根本不会运行脚本。它出厂设置为 Restricted，从而禁止运行所有脚本并仅在交互使用时启用 shell。可使用 Set-ExecutionPolicy cmdlet 或通过 Microsoft 提供的组策略管理模块（ADM 文件）更改执行策略。（可在以下地址获取 ADM 文件：go.microsoft.com/fwlink/?LinkId=102940。）图 1 显示了可设置的执行策略。
图 1 选择安全执行策略
图 1 选择安全执行策略
执行策略具有少量例外情况。具体来说，即使在设置为 Restricted 时，它也会允许 shell 导入 Microsoft 提供且随 shell 安装的少数特殊 XML 配置文件。这些文件用于提供特定功能，如扩展为 Microsoft® .NET Framework 类型和大部分 .NET 对象类型的默认格式布局。因此，它们绝对是您希望 shell 在启动时加载的文件。
尽管这些文件可能且确实包含可执行代码，但它们已经由 Microsoft 进行数字签名。任何方式的篡改都将致使签名无效，并且在发生该情况后，shell 将不会在启动时导入文件。此设计使文件非常安全，不受可能试图将恶意代码插入其中的恶意软件的侵害。
当然，即使保留在 Restricted 状态，执行策略也可防止在启动时执行自身的 Windows PowerShell 配置文件脚本。Windows PowerShell 不会默认创建配置文件脚本，但是它会在四个特定位置搜索特定文件名称，如果找到这些名称，就会尝试每次在 shell 启动时执行这些脚本。（随 Windows PowerShell 安装的文档提供了有关用于配置文件脚本的文件夹和文件名称的详细信息。）配置文件是我要讨论的关键利用点。

修改执行策略
本月 Cmdlet
与 Set-AuthenticodeSignature 搭配的是 Get-AuthenticodeSignature。该 cmdlet 旨在检查数字签名脚本并向您提供签名的详细信息。只需将它指向存在问题的文件，您将不仅可看到文件是否已签署，还可看到签名是否完整、使用何种证书来签署文件等等。除可用于 Windows PowerShell 脚本外，该 cmdlet 还可用于已签名的可执行程序，如：
PS C:\Program Files\Microsoft Office\Office12>
Get-AuthenticodeSignature excel.exe | Format-List *
通过运行该命令，可看到可执行程序已由 Microsoft Corp. 使用 Microsoft 代码签名 CA 颁发的证书进行签名。
命令结果

强调一下，在默认情况下，很难 — 如果并非不可能 — 让 Windows PowerShell 执行任何代码，更别提恶意代码。仅当修改了执行策略后，恶意脚本才可能变为可能执行。清楚点讲，本专栏并非有关 Windows PowerShell 安全漏洞的警钟；相反，它旨在共享可强化您系统的一些最佳实践。
最低级执行策略为 Unrestricted，它允许运行所有脚本，而不进行限制或质疑 — 就像多年来使用 VBScript 和批处理文件出现的情况一样，这是不尽人意的。如果将 shell 设置为 Unrestricted，只会招致恶意脚本的出现并导致损坏。如果选择了 Unrestricted 设置，且出现脚本并攻击了您，请确保您能解释清楚选择 Unrestricted 设置的原因，并做好在解释病毒如何破坏您的环境时坦白您决策的准备！
公平地讲，即使设置为 Unrestricted，Windows PowerShell 仍会尝试检测从 Internet 下载的脚本并在运行前向您提出警告。但是，关键在于将执行策略设置为 Unrestricted 不是个好主意。

签名脚本
允许执行脚本的最安全执行策略是 AllSigned。顾名思义，此设置仅执行具有使用受信任证书创建的完整数字签名的脚本（不象任何旧签名）。签名脚本需要您获取 III 类数字证书 — 更具体点讲，Microsoft Authenticode 代码签名的证书。此类证书可从公司的内部公钥基础结构 (PKI)（如果有）获取或从商业证书颁发机构 (CA)（如 CyberTrust、Thawte 和 VeriSign）处购买。
如果要了解您的计算机上是否安装了任何可用于签名脚本的证书，请使用以下 cmdlet：
Get-ChildItem CERT: -recurse –codeSigningCert
在 Windows® 计算机上安装证书后，使用 Set-AuthenticodeSignature cmdlet 来创建并应用数字签名，它会在脚本结尾处显示为一系列乱码形式的注释行。某些脚本编辑器可提供选项来将签名应用到脚本文件（包括在保存脚本时自动对其进行签名），这样将非常便利。
AllSigned 是用于生产环境的最佳执行策略。尽管它无法完全杜绝恶意脚本，但是它却可确保恶意脚本已经过签名，因此可跟踪脚本的作者（假定您的 Windows 计算机已配置为仅信任可靠 CA，但这不在本专栏的讨论范围内）。有趣的是，Windows Script Host (WSH) 5.6 和更高版本可用类似的 TrustPolicy 设置（也需要数字签名）配置，但是，我很少遇到管理员实际使用此设置。
以下为迄今为止的快速回顾。通过将执行策略设置为 Restricted，您将不再需要担心恶意脚本，但是您也无法运行有益的脚本。通过将执行策略配置为 AllSigned，shell 允许经过签名的脚本，它非常安全，因为极少恶意脚本作者希望将经确认且可追踪的身份应用到其作品中。相反，Unrestricted 设置极不安全，如果使用它，可能最终会受到某些恶意脚本的攻击。（请注意，我并不认为 Unrestricted 设置是一种特殊漏洞，因为它并不假装为任何事物，仅是不安全。如果要使用此设置，您大概也知道会得到什么结果。）

从侧门偷袭
还有一个执行策略设置：RemoteSigned。我想这个设置是大部分管理员正在使用的设置，其原因仅是感觉它比 Unrestricted 更安全且没有 AllSigned 麻烦。RemoteSigned 不需要本地脚本的签名。驻留在本地驱动器上的 PS1 文件无需签名即可运行。除非经过签名，否则不会运行远程脚本 — 主要是通过 Internet Explorer® 或 Outlook®（这些应用程序使用特殊的标志来标记下载的文件）从 Internet 下载的脚本。
但是，RemoteSigned 设置可能给您一种安全的错觉。首先，很容易下载到没有应用特殊标志的远程脚本。例如，非 Microsoft 浏览器以及大部分非 Microsoft 电子邮件客户端通常不会设置此标志。必须注意：缺少该标志，Windows PowerShell 会将下载的脚本视为本地脚本，即表示不需要签名。同样，我也不认为它是一个重大漏洞。必须实际下载脚本，打开 Windows PowerShell，然后手动执行脚本才能运行它。很难欺骗某人执行所有这些步骤，并且管理员通常是网络中唯一安装 Windows PowerShell 的人员，应更加清楚这点。
然而，RemoteSigned 确实提供了一个恶意软件可偷袭的重大“侧门”。还记得那些 Windows PowerShell 配置文件脚本吗？只要它们存在（无论是您还是某个恶意软件创建的），每运行一次 Windows PowerShell，它们就会执行一次。并且，在使用 RemoteSigned 执行策略时，您的配置文件脚本（它为本地脚本）无需签名。
它的具体情形是这样的：
  1. 某些恶意软件进入您的系统，然后创建一个 shell 配置文件脚本或将恶意代码插入现有配置文件脚本中。恶意软件通常以登录的用户帐户名义运行，而该帐户一般都具有修改配置文件脚本的权限。
  2. 在打开 Windows PowerShell 时，您并未意识到配置文件脚本已被创建或修改为包含恶意代码。然而代码开始执行并造成损害。如果您习惯以管理员凭据打开 Windows PowerShell，则损害将更加严重。这种情形却非常普遍，因为在使用 shell 时，需要使用管理员权限来执行要用 shell 实现的所有任务。
然后，配置文件允许任意的恶意代码在您不知情的情况下执行，且 RemoteSigned 执行策略也允许此种情形发生。

保护配置文件
保护配置文件的唯一好方法是：使用 AllSigned 执行策略。使用 AllSigned 时，您的配置文件脚本也必须经过数字签名；否则，Windows PowerShell 在启动时不会执行它们。并且，如果您已签名配置文件脚本，对它们的恶意修改会破坏其数字签名，使它们无法运行 — 实际上，在启动时，Windows PowerShell 会提示出现问题。AllSigned 实际是用于需允许执行脚本的生产环境的唯一安全执行策略设置。
也有其他方法，但更加复杂且可靠度更差。可针对 Windows PowerShell 查找的四个文件创建空白配置文件脚本文件。使用新用户帐户（我将称它为“Profile Editor”）来创建这些文件并设置文件的 NTFS 权限，这样，只有 Profile Editor 帐户才能修改它们。其他帐户仅拥有只读访问权限。
现在，除非要编辑配置文件，否则切勿使用 Profile Editor 帐户来登录计算机。通过这种方法，您的普通用户帐户将无法修改配置文件脚本。并且，在您使用普通帐户登录时运行的任何恶意脚本也无法修改脚本。如果恶意软件恰好在您以 Profile Editor 帐户登录时运行，会发生什么情况？当然，总有需要您以 Profile Editor 帐户登录来编辑配置文件脚本的时候，您应注意到发生的变化。
也可启动自己的安全系统，方法是创建使用由严格文件权限控制的所有用户配置文件脚本（如刚才所述）。在该脚本中，编写代码，让代码使用 Get-AuthenticodeSignature cmdlet 检查 shell 查找的其他配置文件上的数字签名。这实质上是让您要求配置文件脚本有签名，而无需其他脚本有签名。
然而，AllSigned 执行策略是一种用于保护配置文件的更加彻底的方法。我的建议是连接到网络的所有计算机均使用 Restricted 执行策略（最好采用组策略）。它将覆盖任何本地设置，并确保新的域计算机自动设置为不允许有脚本。必须允许有脚本的计算机应具有设置 AllSigned 执行策略的备用组策略。必须对所有脚本执行数字签名，但是由于知道只有来自可识别作者的受信任脚本才能在您的环境中执行，因此大可高枕无忧。

Don Jones 是 SAPIEN Technologies 的首席脚本权威和《Windows PowerShell: TFM (SAPIEN Press, 2007) 的合著者。可通过 www.ScriptingAnswers.com 与他联系。


 您好，脚本专家！: 这里没有错误的正则表达式
您好，脚本专家！
这里没有错误的正则表达式
The Microsoft Scripting Guys
下载这篇文章的代码: HeyScriptingGuy2008_01.exe (150KB)

人非圣贤， 孰能无错。（什么，您以为脚本专家团队是在无中生有的吗？）如果说错误也有什么好处的话，那它的好处到底是什么呢？您肯定以为我们会说错误的唯一好处是可以从中吸取教训，对不对？喔，那您可就错啦：您能够从错误中学到的唯一知识就是最好在一开始的时候就不犯错误。
注意：不好意思，我们不会再拿 Microsoft Bob 开玩笑了，至少今天不会。我们以前就因取笑 Microsoft Bob 犯过错误，在当时我们确实从中吸取了教训。以至于每次再谈起 Microsoft Bob 的时候，我们都三缄其口。
老实说，脚本专家们不能去考虑犯错误会带来哪些好处，因为我们毕生都致力于减少我们所犯的错误。（不可否认，减少犯错误机会的唯一方法就是减少我们实际要做的工作。但那又是另外一回事了。）
现在，令人满意的是我们已经在尽力减少我们的错误了；但是如果和我们共事的人仍然继续犯错，那对我们来说可就不太妙了。（又来了，我们不是已经告诉过您：不要再开 Microsoft Bob 的玩笑了！）如果您曾经编写过前端应用程序，比如数据库程序或 Active Directory® 程序（我知道你们大多数人都编过），那您肯定清楚我们在说什么：您的前端数据输入程序实际上就是用户在进行数据输入。
假设您希望用户输入姓氏：Ken，其中第一个字母大写，其余字母小写。那么如果用户输入：KEN，会发生什么情况？假设您希望用户以下列格式输入日期：01/23/2007。那么如果用户输入January 23, 2007，会发生什么情况？假设 — 呃，您可能已经明白我的意思了吧。正如我们所说的，您的前端数据输入程序实际上就是用户在进行数据输入。而且，不管您承不承认，那些输入数据的伙计们总是免不了出错。当然，除非您能采取一些措施来帮助他们避免错误。

确保数据有效
让这场游戏结束吧
您是否想知道脚本专家们整年都在盼望着哪项活动？如果在过去两年中您曾在二月份来过脚本中心，那您可能会猜想这项活动是“冬季脚本编写比赛”。呵呵，您这样想可就错了。脚本专家们盼望的是脚本编写比赛的结束，在经过了两周无休止的兴奋和激动之后，脚本专家们将沐浴在又一次脚本编写比赛成功举行的光环里，然后在接下来的一个月里好好地休息休息。
所以，为了迎接最值得我们期待的年度盛事 — 脚本编写比赛的结束 — 现在该开始 2008 年冬季脚本编写比赛了！欢迎加入脚本中心，从 2008 年 2 月 15 日到 3 月 3 日这两周多的时间里，我们将体验编写脚本的快乐和时下最高水平的脚本编写比赛。
“脚本编写比赛”是测试和提高您脚本编写能力的最佳方式。而且，由于今年脚本专家们希望在比赛后能多睡几天，我们打算把今年的比赛办得比往年更盛大、更出色！再次重申，届时我们将分为两组：初学者组和专家组。这意味着无论您是脚本编写的新手，还是经验丰富的专家，或者介于两者之间，都可以来参加比赛。
今年都有哪些新内容呢？我们将新增一种脚本语言。参赛者可以使用 VBScript、Windows PowerShell，或者新增加的脚本语言 — Perl。（我们知道 Perl 不是新语言，但它是第一次在比赛中使用。）实际比赛时很可能会更加有趣，但由于我们现在是提前几个月做零星的推测，所以将来的情况还得拭目以待。届时您可以到脚本中心来看一看具体情况。
不用猜，肯定会有奖品！什么奖品？呵呵，这可不能事先告诉您 — 到时候来脚本中心寻找答案吧！microsoft.com/technet/scriptcenter/funzone/games/default.mspx。

大多数人可能对输入数据的有效性进行了基本的检查。在大多数情况下，这种简单的数据输入验证的确非常有效。怎么？想要使字符串值 strName 的长度小于或等于 20 个字符？下面这一小段代码块可以实现这个功能：
If Len(strName) > 20 Then
    Wscript.Echo "Invalid name; a " & _
    "name must have 20 or fewer characters."
End If
但假设 strName 是新的部件编号，而且部件编号必须符合特定的格式：四位数字加两个大写字母（类似 1234AB）。如果只使用传统的 VBScript，您能验证 strName 是否符合上述部件编号的格式要求吗？是的，当然能。但您肯定不会这样做。相反，您会考虑使用正则表达式。

确保值中只出现数字
正则表达式在 20 世纪 50 年代被提出，最初是用数学符号的形式来描述的。20 世纪 60 年代，此数学模型被引入 QED 文本编辑器，作为在文本文件中搜索字符模式的一种方法。后来 — 后来怎么样了？噢。很明显，并不是每个人都像我们这样沉迷于探究正则表达式的历史。那好吧。言归正传，让我们回到正题。
是否想确保某个变量（这里以变量 strSearchString 为例）仅包含数字？图 1 显示了一种实现方法。
Figure 1 请仅用数字 (Close Figure 1)
Set objRegEx = _
  CreateObject("VBScript.RegExp")

objRegEx.Global = True
objRegEx.Pattern = "\D"

strSearchString = "353627"

Set colMatches = _
  objRegEx.Execute(strSearchString)

If colMatches.Count > 0 Then
    Wscript.Echo "Invalid: a " & _
      "non-numeric character was found."
Else
    Wscript.Echo "This is a valid entry."
End If
您可以看到，该脚本首先创建一个 VBScript.RegExp 对象实例，该对象使我们能够在脚本中使用正则表达式。（噢，不！我们才是主讲人！）然后，我们为正则表达式对象的两个关键属性赋值：Global 和 Pattern。
Global 属性决定该脚本是应该匹配所有匹配的模式项，还是找到第一个匹配模式项后就停止。通常，最好把这个值设为 True，即搜索所有匹配的模式项。（默认设置为 False。）在大多数情况下，需要找出所有匹配的模式项。即使不需要搜索出所有项，仅搜索第一个匹配模式项的唯一优势只在于脚本的运行速度更快，因为它在搜索到所需的字符串时就会停止，而不会一直搜索到文件结尾。理论上说，这听起来不错。但实际上，搜索通常很快就会完成，所以您不会注意到有多大的差别。
下面要介绍实质部分：Pattern 是指定我们要查找的字符（以及字符方案）的地方。在示例脚本中，我们要搜索数字 0 到 9 以外的任何字符。如果发现这样的字符（字母、标点符号或任何其他字符），那我们就会知道赋给 strSearchString 的值不是有效值。在正则表达式中，语法 \D 用于匹配任何非数字字符；因此我们为 Pattern 属性赋值 \D。
注意：我们是如何知道 \D 会匹配任何非数字字符的呢？嗯，这可就说来话长了。知道吗？几年前 — 哦，对了。我们可以在 MSDN® 上的 VBScript 语言参考中查一查，网址是：msdn2.microsoft.com/1400241x。
在为 Global 和 Pattern 属性赋值之后，我们的下一步工作是为变量 strSearchString 赋值：
strSearchString = "353627"
我们如何才能知道此字符串中是否有非数字字符呢？很简单。只要调用 Execute 方法就可以了，它会搜索变量中的任何非数字字符：
Set colMatches = _
objRegEx.Execute(strSearchString)
当调用 Execute 方法时，任何搜索到的匹配项 — 即 Pattern 的实例 — 都会自动存储在 Matches 集合中。（在我们的示例脚本中，我们将此集合命名为 colMatches。）如果我们想知道我们的变量中是否包含非数字字符（我们确实想知道），则只需检查一下该集合的 Count 属性值，它会告诉我们集合中有多少个项目：
If colMatches.Count > 0 Then
    Wscript.Echo "Invalid: a " & _
      "non-numeric character was found."
Else
    Wscript.Echo "This is a valid entry."
End If
如果 Count 值大于 0，那只能表明一件事：在变量值的某处发现了非数字字符。（如果变量值中的所有字符都是数字，则该集合将为空集，Count 应该等于 0。）在示例脚本中，我们得到的结果是在其中发现了非数字字符。在实际脚本或数据库前端程序中，您很可能得到类似的消息，但程序会回退以便用户再次输入。但我们提醒您一定要重视这种情况；作为脚本专家，我们应该方方面面都要考虑到。
举个例子？就像某天在 TechNet 杂志工作的人可能会真的开始阅读我们每月发给他们的文章。我们情愿他们不要从错误中吸取教训。
噢，问得好：我们为什么不能只用 IsNumeric 函数来确定 strSearchString 是否包含数字呢？当然能，前提是 strSearchString 可以是任何数字。但如果要求 strSearchString 必须是正整数该怎么办？这可能就会出现问题；IsNumeric 将下面两个数字都视为有效数字：
-45
672.69
为什么它们都会被视为有效数字呢？因为它们确实是有效数字；只不过不是正整数而已。但正则表达式会把这些值标记为无效条目，因为正则表达式把减号 (–) 和小数点 (.) 都视为非数字字符。如果您一直在阅读本专栏并纳闷“为什么我要阅读这个专栏呢？”，那好，这里有个绝好的原因。
您说什么？这还不够好？哇，这个月大家怎么这么挑剔啊！那好，让我们看一看可以使用正则表达式完成的其他一些类型的数据输入验证。

确保在值中不出现数字
我们刚才介绍了怎样确保在值中只出现数字。如果反其道而行之，我们想确保在值中不出现数字该怎么办呢？嗯，可以使用这个搜索模式：
objRegEx.Pattern = "[0-9]"
它起什么作用？嗯，在正则表达式这个奇妙古怪的世界中，方括号（[ 和 ]）能够指定一组字符或特定的字符范围。Pattern [0-9] 是什么意思？它表示我们要搜索的是 0 到 9 内的任意字符 — 换句话说，也就是所有数字。如果我们只想搜索偶数（即确保值中不包括 1、3、5、7 或 9 中的任何一个数字），我们可以使用下面这个模式：
objRegEx.Pattern = "[13579]"
请注意因为没有使用连字符，所以我们不是搜索字符范围。事实上，我们是在精确搜索字符 1、3、5、7 和 9。
当然，模式 [0-9] 只搜索数字，它不会搜索标点符号或其他既非字母也非数字的字符。您觉得我们是否能创建一种可搜索任意非字母字符的模式？当然能。使用正则表达式几乎可以完成您想到的任何事情：
objRegEx.Pattern = "[^A-Z][^a-z]"
在这个例子中，我们实际上在模式中组合了两个标准：我们要搜索 [^A-Z] 和 [^a-z]。您可能已经看出来了，A-Z 表示从大写 A 到大写 Z 的字符范围。那符号 ^ 表示什么意思呢？当包含在一对方括号中时，^ 表示“搜索任何不在此字符集中的字符”。因此，[^A-Z] 表示“搜索任何非大写字母字符。”同理，[^a-z] 表示“搜索任何非小写字母字符。”最终的结果是：此模式表示我们要搜索既不是大写字母也不是小写字母的任意字符。这包括数字、标点符号和任何其他可从键盘上找到的怪异字符。
或者，我们也可以将 IgnoreCase 属性设置为 True：
objRegEx.IgnoreCase = True
这样我们的搜索将不区分字符的大小写。然后我们就可以使用此模式 — 与 IgnoreCase 属性组合 — 搜索既不是大写字母也不是小写字母的任意字符了：
objRegEx.Pattern = "[^A-Z]"

确保部件编号有效
现在，让我们展开想像的翅膀。（相信我们，您会发现正则表达式真的很让人着迷；欢迎来网站 regexlib.com 浏览一些示例。）在上文中曾提到过这样的情况：假设 strName 是新的部件编号，而且部件编号必须符合特定的格式：四位数字加两个大写字母（例如 1234AB）。如何来验证某个变量是否符合此模式要求呢？当然，我们可以这样做：
objRegEx.Pattern = "^\d{4}[A-Z]{2}"
此模式有什么含义呢？太巧了：我们正要对此模式进行解释。在这个例子中，我们有三个搜索标准：
^\d{4}
\d 表示我们正在搜索数字（范围 0 到 9 内的字符）。那 {4} 是什么意思呢？它表示只精确匹配四个字符（即精确匹配四个数字）。因此，我们要搜索的是连续四个数字。
字符 ^ 又是什么意思呢？嗯，如果用在一对方括号外部，^ 表示该值必须以 ^ 后面的模式开头，也就是说 AA1234AB 不被视为匹配项。（为什么？因为该值实际上是以 AA 开头，而不是以连续四个数字开头。）如果需要，可以使用字符 $ 来指定必须在字符串尾部进行匹配。但这次我们不打算这样做。（嗯，至少在这个示例中不会。）
[A-Z]{2}
您已经知道了 [A-Z] 这一部分的含义；它表示任意大写字母。那 {2} 呢？答对了：四个数字后面必须跟两个大写字母。
是不是很简单？在这个示例中，通过这种方法，如果 Count 等于 0，则表示有无效值。为什么呢？因为这次我们搜索的不是会使字符串无效的单个字符；相反，我们搜索的是精确的模式匹配。如果没有得到这样的匹配，那就表示有无效值。它还意味着集合的 Count 属性将为 0。
注意：另外两个很有用的结构是：{3,} 和 {3,7}。{3,} 表示必须至少有 3 个连续的字符（或表达式）；最少 3 个，但没有最大限制。\d{3,} 匹配 123，也匹配 1234，而且还可以匹配 123456789。{3,7} 表示必须至少有 3 个连续的字符（或表达式），但最多不能超过 7 个。因此可以匹配 123456，但不匹配 123456789（因为它超过了 7 个连续数字）。
下面是另一个有用的模式。假设您的部件编号以 4 个数字开头，然后跟字母 US，最后是两个结束字符（结束字符可以是字母、数字或任意字符）。以下是一种匹配方法：
objRegEx.Pattern = "^\d{4}US.."
您可以看到，此模式以四个数字 (\d) 开头，后面必须跟字符 US（只能是 US；任何其他字符都不会匹配）。在字符 US 后面，我们需要另外两个这样的字符。在正则表达式中用什么代表任意字符？稍等一下；让我查一查... 噢，找到了：任意单个字符用句点 (.) 表示。很明显，这两个字符可以用两个句点来表示：
..
嗯，这太简单了。让我们来个难点的。假设中间的两个字符代表部件制造国家。如果制造工厂在美国、英国和西班牙，那有效的双字符代码包括：US、UK、ES。我们如何在正则表达式中进行多项选择呢？
好的，且看下面这个模式：
objRegEx.Pattern = "^\d{4}(US|UK|ES).."
此处的关键在于这个结构：(US|UK|ES)。我们将三个可接受的值（US、UK 和 ES）放在括号中，并将各个值用管道 (|) 字符分开。这就是在正则表达式中进行多项选择的方法。
但是等一等：我们不是说过可以将多个选项放在方括号内吗？[13579] 那个例子不是也可以进行多项选择吗？是的，确实可以。但是，它只对单个字符有效；[13579] 始终被解释为 1、3、5、7 和 9。要使用 135 和 79 作为选项，则需要使用以下语法：(135|79)。您还可以用圆括号来表示要搜索的单个词语：
objRegEx.Pattern = "(scripting)"
或者直接省略圆括号：
objRegEx.Pattern = "scripting"
注意：最好再了解一下如果需要在搜索术语中包括圆括号该怎么办；如果我想搜索 (scripting) 该怎样做呢？对于这种情况，由于左括号和右括号都是正则表达式中的保留字符，所以要搜索它们就必须在每个字符的前面加上 \。即：
objRegEx.Pattern = "\(scripting\)"

自由学习表达式
本月我们要讲的就是这些内容。如果您想了解更多有关正则表达式的知识，欢迎收听“系统管理员字符串理论”网络广播：正则表达式介绍 (microsoft.com/technet/scriptcenter/webcasts/archive.mspx)。当您开始学习和使用正则表达式时，请谨记 Sophia Loren 的名言：“错误是人为了一生所支付的部分代价。”
喔。脚本专家们的生活真是出人意料地充实啊！

Scripto 博士的脚本谜题
每月一次的挑战！不仅测试您的解谜技能，还测试您的脚本编写技能。

2008 年 1 月：卷绕名词
本月 Scripto 博士决定使用 Windows PowerShell。当然，要是不使用 cmdlet，如果您不是行家里手，就无法使用 Windows PowerShell（Scripto 博士可是样样精通的）。对于这个谜题，Scripto 博士在网格中隐藏了一些 cmdlet，需要您把它们找出来。
现在，我们不得不承认如果使用整个 cmdlet，那么这个谜题可能会有一点麻烦。由于 cmdlet 具有动词-名词结构，因此很多词以 Get-、Set- 等开头。所以我们撇开 cmdlet 的动词部分（和连字符），只留下名词。（但我们将告诉您所有动词都是 "Get-"。）
您本月的任务是理清这些 cmdlet 名词。我们已经为您提供了隐藏在谜题中的名词列表。（我们是不是有点太慷慨了？）每个单词都可以垂直和水平、向前或向后排列，但不能对角排列。我们还以第一个单词 (Location) 为例做了说明。祝您好运！

单词列表
Alias
ChildItem
Credential
Date
EventLog
ExecutionPolicy
Location
Member
PSSnapin
TraceSource
Unique
Variable
WMIObject

Scripto 博士的脚本谜题
答案：卷绕名词，2008 年 1 月

The Microsoft Scripting Guys脚本专家为 Microsoft 工作，也就是受雇于 Microsoft。在玩、教或看棒球（以及各种其他活动）的闲暇之余，他们还负责维护 TechNet 脚本中心。查找所需的信息，网址为：www.scriptingguys.com。


 安全观察: 跳岛：供应商 Swag 的魅力
安全观察
跳岛：供应商 Swag 的魅力
Jesper M. Johansson

跳岛技术已存在多年，它会通过薄弱环节渗入网络，然后在网络中的各系统间跳转。并且，它的形式在不断翻新。在当前注重安全的 IT 环境中，人通常是最薄弱的环节，恶意用户
会寻找各种方法来用此达到自己的目的（思想仿冒和其他形式的社会交往）。这种强势组合对网络具有致命危害。
在利用人性因素做手脚的案例中，我很欣赏 Secure Network Technologies 公司的 Steve Stasiukonis 在为客户做渗透测试期间完成的案例。他将 USB 闪存驱动器（每个驱动器上均安装有特洛伊木马程序）放在客户的停车场。当员工早上来上班时，他们非常兴奋地发现停车场周围有免费小工具。员工们急切地捡起 USB 驱动器并将它们插入他们遇到的第一台计算机：自己的工作站。
也许某些员工比较聪明没有理睬这些 USB 驱动器，并且可能有些 USB 驱动器被丢弃了，但是，只要有一个用户使用驱动器感染了自己的系统，就会提供一个进入网络的网关。当然，Stasiukonis 仅是做个试验，但已有真正的罪犯使用此技术来渗透大型企业的网络。
现在，USB 闪存驱动器随处可见。几乎在所有会议上，某些供应商都像发糖果一样分发它们。这些驱动器可能容量不大，但要控制整个网络也不需要多大存储空间！在这个包含两部分内容的系列文章中，我将研究此类攻击并为您提供一些有助于降低风险的方法。在本月的内容中，我将介绍 USB 闪存驱动器的具体作用以及您如何控制它们。在《TechNet 杂志》的下月刊中，我将介绍如何将攻击限制在网络的单个系统或一小部分系统中。
攻击的技术细节实际上非常简单。一开始是在单个计算机中插入已受到感染的 USB 闪存驱动器。随后发生的事情则取决于该驱动器上安装的内容以及（当然）用户有多大的漏洞。

起源
讲台上放着无人操作的便捷式计算机。演讲者在开始演示前正忙于与观众拉关系。便捷式计算机已锁定，但实际意义不大。攻击者走向讲台并稍事逗留，看似他只是在等待演讲者返回。由于这些讲台是用来隐藏不宜外露的事物（如计算机），因此 USB 端口和攻击者的手就逃过了人们的视线范围。一旦 USB 闪存驱动器插入计算机中，只需几秒钟即可完成攻击。
这种攻击还有许多花样。例如，我过去常常每周都要到世界各地演讲，几乎每次结束后，都会有许多人要求复制我的幻灯片。我的反应始终是递给他们一张名片并要求他们给我发电子邮件。当他们所有人都朝我举着一个 USB 闪存驱动器时，我这么做的原因是什么呢？因为我非常了解类似 USB Hacksaw 和 Switchblade 这样的工具。（若不熟悉它们，请查阅以下网址：wiki.hak5.org。）
这些工具基本上都可以使任何人非常轻松地利用那些 USB 端口处于未受保护状态的人们。例如，Switchblade 可转储以下数据：
  • 系统信息
  • 所有网络服务
  • 正在执行侦听的端口列表
  • 计算机上的 Microsoft 产品的所有产品密钥
  • 本地密码数据库
  • 计算机使用的所有无线网络的密码
  • 当前登录用户存储在计算机上的所有网络密码
  • Internet Explorer®、Messenger、Firefox 和电子邮件密码
  • 本地安全机构 (LSA) 机密信息，包含明文形式的所有服务帐户密码
  • 已安装补丁的列表
  • 最近的浏览历史记录
所有这些信息会存储在闪存驱动器的一个日志文件中，仅耗时 45 秒。
Hacksaw 是一个稍经修改的版本；它会在计算机上安装一个特洛伊木马，该木马会监视所有 USB 闪存驱动器插入事件。然后，它会通过电子邮件将随后插入计算机的所有闪存驱动器中的所有文档发送给攻击者。
到目前为止，我讨论的工具均使用 U3 (u3.com) 技术，此技术旨在使用户能通过闪存驱动器随身携带程序。简单地说，启用 U3 的闪存驱动器会谎报自己的身份。它告诉 OS 自己实际上是插有闪存驱动器和 CD 的 USB 集线器。默认情况下，Windows Vista® 之前的 Windows® 版本均会自动运行 CD 而非 USB 驱动器上的 autorun.inf 文件中指定的程序。通过谎报，启用 U3 的 USB 闪存驱动器欺骗 OS 自动运行名为 U3 启动程序的程序。U3 启动程序可随之启动程序、提供菜单或执行您可对计算机执行的非常多的操作。
所有漏洞检测工具均是将启动程序替换为漏洞检测代码。一旦将闪存驱动器插入 Windows XP 系统中，漏洞检测工具就开始自动运行。在 Windows Vista 上，“自动播放”决策流程工作原理有所不同。“自动运行”实际是在可移动设备（如 CD）上启用的。这意味着在插入设备后，会执行某些类型的操作。默认情况下，会出现“自动播放”对话框（如图 1 所示）。
图 1 用户插入带图片的可移动盘后显示默认自动播放对话框
图 1 用户插入带图片的可移动盘后显示默认自动播放对话框
注意：图 1 中的对话框具有 Always do this for pictures（始终针对图片执行此操作）选项。它会设置“自动播放”选项，可在“控制面板”中配置此选项（如图 2 所示）。
图 2 Windows Vista 的自动播放配置
图 2 Windows Vista 的自动播放配置
“自动播放”配置对“软件和游戏”尤其感兴趣。根据定义，它表示可移动驱动器具有指定执行某些程序的 autorun.inf 文件。图 2 中与“软件和游戏”相关的设置存储在以下注册表项中：
Hive:    HKEY_CURRENT_USER
Key:    \Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\
UserChosenExecuteHandlers\AutorunINFLegacyArrival
Value: (Default)
Data:
MSAutoRun – automatically executes the program specified in the autorun.inf file

MSPromptEachTime – prompts the user, using strings specified in the autorun.inf file, if available
由于不必拥有管理员权限即可修改这些设置，用户可将它们设置为所希望的任意设置，包括自动运行他们在停车场发现的驱动器上的任意恶意软件。事实上，选中“自动播放”对话框中的适当框即可。

管理网络中的自动播放
作为管理员，可使用多种方法来管理网络中的“自动播放”。首先，通过修改 NoDriveTypeAutoRun 设置（它控制针对哪些驱动器类型启用“自动播放”），可阻止用户启用可移动媒体和 CD 上的“自动播放”。Windows XP 默认将 NoDriveTypeAutoRun 设置为 0x95，表示禁用未知驱动器类型、网络驱动器以及可移动设备上的“自动播放”。自 Windows XP SP2 起，NoDriveTypeAutoRun 设置均默认配置为 0x91。它启用可移动存储设备上的“自动播放”。利用组策略，可使用 User Configuration（用户配置）\Administrative Templates（管理模板）\Windows Components（Windows 组件）\AutoPlay Polices（自动播放策略）下的一个设置来管理 NoDriveTypeAutoRun 设置。启用 Turn off AutoPlay setting and selecting CD-ROM and Removable Drives（关闭自动播放设置并选择 CD-ROM 和可移动驱动器）可禁用这两种驱动器上的“自动播放”。
结果是用户无法获得图 1 中的“自动播放”对话框。实际上，在用户插入驱动器后没有任何响应。然而，它可能并非完美的解决方案，因为它会给不知如何访问驱动器上必要信息的用户带来麻烦。
您想要做的是控制自动播放哪些类型的内容。 Windows Vista 可在某种程度上实现此功能，因为此 OS 对于自动运行的软件具有两种有效的控制级别。组策略中的另一控制（如图 3 所示）可禁止自动播放使用 autorun.inf 文件的软件，同时完整保留 Windows Vista 自动播放行为的提醒。
图 3 使用组策略禁用 autorun.inf 文件
图 3 使用组策略禁用 autorun.inf 文件
“自动播放”的决策流程有点复杂，最好使用流程图来表达。图 4 描述了在确定是否自动执行可移动媒体上的文件时使用的决策流程。
图 4 自动播放决策流程
图 4 自动播放决策流程

其他起源
当然，这只是可用于通过 USB 闪存驱动器侵害计算机的工具中的几种。所有类型的工具均可在此情景中使用，如转储当前登录用户的 Windows NT® 密码哈希的工具（参见 microsoft.com/technet/community/columns/secmgmt/sm1005.mspx）。
许多 USB 控制器实际均是直接内存访问 (DMA) 设备。这意味着它们可绕过操作系统，直接读写计算机上的内存。绕过 OS 就绕过了它提供的安全控制 — 现在，您可完全自由地访问硬件。这会使 OS 对设备的控制完全无效。我不知道是否有黑客工具现在正使用此技术，但我推测可能性极大。
找出用户/可移动设备组合漏洞的另一方法是提供诱人的选项。例如，有多少用户会点击图 5 中的对话框？不一定所有人都会，但可能人数也不少。关键是编造一个非常诱人以致用户无法拒绝的对话框是一个非常琐碎的任务。
图 5 有多少用户会受此诱惑?
图 5 有多少用户会受此诱惑?

设备封锁
作为 Windows Vista 中的新功能，组策略现在具有用于管理设备安装的一组策略（参见图 6）。如图所示，若驱动程序指出新设备为可移动设备，管理员可阻止安装所有这些设备。然而，如果驱动程序表明它们并非可移动设备，此策略将无效。因此，可通过使用自定义驱动程序来绕开此策略。
图 6 Windows Vista 设备安装策略
图 6 Windows Vista 设备安装策略
如需更精细的控制，管理员可针对特定设备安装程序类应用各种策略。然而，这要求您了解希望封锁（或允许）的特定设备类的 GUID，致使此方法非常难以管理。

最低权限非常重要
暂时不讨论涉及 DMA 的情景，我讨论过的攻击以及对策的成功与否均取决于使用计算机的用户的权限。如果用户是标准用户，则利用漏洞造成的损坏比较有限。它仍可盗窃用户的数据以及用户有权访问的所有事物。然而，攻击不可能影响整个网络。
但是，如果被利用的用户是管理员，则后果可能相当严重。最糟情景是用户为域管理员，并且接管整个网络毫不费力。例如，攻击者可从内存提取用户的密码哈希。登录时，系统将哈希缓存在 LSA 进程空间中，以便用它来以用户身份直接访问网络资源。具有管理员权限的攻击者可提取此哈希并用它访问所有网络资源。换句话说，如果用户是域管理员，则会危及整个域的安全。
由此可引申至依赖关系这一主题。到此为止，我概述了针对工作站的一种特定攻击。然而，我尚未讨论攻击可能在网络范围内造成何种影响。在下月的专栏中，我将探讨依赖关系的概念，以展示它们在总体上对环境的意义，更重要的是 — 您如何来强化这些依赖关系。

Jesper M. Johansson 是解决软件安全问题的安全工程师，以及《TechNet 杂志》的特约编辑。他拥有 MIS 博士学历，并且具有 20 多年安全方面的经验。


 桌面文件: 使用 Windows SteadyState 进行共享计算
桌面文件
使用 Windows SteadyState 进行共享计算
Wes Miller

我相信如果您在过去的 10 年或更长时间里曾经去过计算机实验室，那您肯定很熟悉下面这种问题。我在上大学期间第一次发现这种问题。那时，实验室全天开放（只要有学生证即可进入），而且当您进入实验室后基本上不会有任何人监督您上机。那个时代的学生游戏玩家们
很可能会打开并修改 Windows® 和 MS-DOS® 的关键文件以便能够运行他们的游戏。最终结果是某台机器可能非常适合运行他们的游戏，但却很难很好地运行 Windows，甚至根本无法运行 Windows。我们都在某种程度上经历过类似的情况—共享使用的计算机被折磨得体无完肤，以致于再也无法有效工作。
最近，我到德克萨斯的 South Padre 海岛度假。在我所住酒店的“来宾计算机房”里有三台运行着 Windows XP 的计算机。每位在这些 Windows 系统上操作的宾客都是管理员，而且没有任何策略限制 — 这意味着任何游客都可以在这些计算机上安装流氓软件、删除或更改核心应用程序，导致它们不堪重负 — 酒店方很可能不希望看到的结果。无论是在实验室还是酒店，事实是那些公用环境中共享使用的计算机往往比家用计算机境遇更悲惨。

问题的解决方案
获得并使用 SteadyState
可从 go.microsoft.com/fwlink/?LinkId=104721 免费下载 Windows SteadyState。有关 SteadyState 的更多信息，请访问 microsoft.com/windows/products/winfamily/sharedaccess。
Windows SteadyState 可以在任何能够运行 Windows XP 的系统上运行。与 SCT 相比，SteadyState 最重大的改进在于不需要像 SCT 一样将第二分区用于 Windows 磁盘保护。
下表提供了 SteadyState 系统要求概述。请注意，尽管 SteadyState 支持任何版本的 Windows XP，但它要求文件系统必须是 NTFS 格式。SteadyState 目前还不能在 Windows Vista® 系统上运行。

组件 | 要求
处理器 | 300 MHz 或更高（最低 233 MHz）。
内存 | 128MB RAM 或更高（最低 64MB；可能会限制性能和某些功能）。
硬盘 | 如不包含 Windows 磁盘保护，至少需要 1.5GB 可用硬盘空间；如包含 Windows 磁盘保护，则最少需要 4.0GB 可用硬盘空间。
操作系统 | Windows XP Home Edition、Windows XP Professional 或 Windows XP Tablet PC Edition。必须安装 Windows XP SP2。
支持的本地化语言 | 英语、荷兰语、法语、意大利语、日语、巴西葡萄牙语、中文（简体）和西班牙语。
文件系统 | NTFS 格式的文件系统。
访问权限 | 管理员级别访问权限。

如果您去年一直阅读我的专栏，或者您熟悉常规的 Windows 部署，您可能会想“有什么大不了的 — 我只需要重新进行系统映像就可以对付”。但有过这种经历的人都知道，事实并不那么简单。每天或每周都需要点击那个大大的红色“重新映像”按钮实际上并不轻松。
许多年以前，我和一位朋友曾想开一家网络咖啡吧。如果回到 1995 年，这可是个标新立异的想法。当时我最大的顾虑在于如何确保系统的可靠性和可用性。不幸的是，那时可用的选项绝大部分都是重新映像或稍微更好一点的解决方案；没有什么方便的方法能够解决这个问题。
分解一下这个问题，当确保共享使用的计算机安全时，您希望能够做到三件事：
  • 确保用户只能以非管理员方式运行系统。对于共享计算机来说，任何时候都应如此。
  • 制定并实施相应的策略以使系统尽可能安全。通过这种方式可以降低用户操纵不应访问的系统区域的潜在风险。
  • 可以回滚任何用户随机做出的更改。尽管用户以非管理员权限运行系统，但他们还是能够对菜单、收藏夹等进行非授权更改。
幸运的是，Microsoft 多年来一直在努力开发专门帮助解决此类问题的工具集。

SteadyState 的历史
大约一年多以前，Microsoft 发布了 Windows 共享计算工具集 (SCT)。该工具集可供经过 Windows 正版增值验证的系统免费下载，它专门针对图书馆、网络咖啡吧、实验室和其他共享计算环境而设计。您可以从《TechNet 杂志》2006 年 7 月刊 (technetmagazine.com/issues/2006/07/UtilitySpotlight) 中了解有关 SCT 的信息。
该工具集的新版本，现在更名为 Windows SteadyStateTM (microsoft.com/windows/products/winfamily/sharedaccess)，已于 2007 年 6 月正式发行。新版本更名的部分原因是因为该工具集的两个版本发生了重大改变。新版本仍然执行相同的任务（这一点我将稍后深入讨论），但开发团队更加注重最新版本的总体易用性。因此，SteadyState 得以与新控制台紧密集成，并且更加易于安装和管理。它同时也更为强大和灵活，其核心组件之一能够支持 Active Directory® 集成 — 这意味着改善了在多个全新企业级方案中的灵活性。SteadyState 现在还支持 Windows Update 集成，以便智能感知何时应该关闭 Windows 磁盘保护以应用其自身更新。这样，SteadyState 管理的系统在管理负担上得以减轻。

SteadyState 的功能
Windows SteadyState 包含四大关键组件：“计算机限制”用于锁定每台计算机的安全和配置选项；“Windows 磁盘保护”可以缓存（并还原）对 Windows 系统分区的更改；“用户帐户管理器”可以创建、编辑、导入或导出用户；最后，“用户限制和设置”能够锁定每位用户的安全和配置选项。
对于“共享计算工具集”，您能够立即察觉到的一个改进就是用户帮助。它的启动向导能够帮助您启动并运行 SteadyState。此外，SteadyState 还提供四项主要任务（对应上面列出的主要功能），用于更细致地完成下列任务：
  • 设置计算机限制（计算机限制）。
  • 定时计划软件更新。（让您指定是否允许 SteadyState 自动应用 Windows Updates。推荐启用该任务，因为它能为您处理与 Windows 磁盘保护相关的问题，并能更新几个流行的防病毒程序的特征库。）
  • 保护硬盘（Windows 磁盘保护）。
  • 添加用户（用户帐户管理器）
“添加用户”下方是“用户限制和设置”，它能为您提供每位用户的配置选项。

计算机和用户限制与设置
如果您非常了解 Windows 组策略，那您会发现 SteadyState 的“设置计算机限制”和“用户限制与设置”并不陌生。SteadyState 并不强制其管理员使用“组策略对象编辑器”（即 GPEdit.msc，尽管 SteadyState 支持该功能，但 Windows XP Home Edition 并不具备该功能），而是特别强调了几项在共享计算环境中常见的主要安全和配置选项。
图 1 显示了“设置计算机限制”的配置屏幕。请注意：所有这些都是通用设置，它们将应用到整个计算机。选择这些设置主要是为了将系统的安全风险降到最低 — 并支持在 USB 驱动器正在存取的情况下从系统取出设备。（当您查看每位用户的设置时，还会发现阻止读取某些或全部驱动器的方法。）
图 1 SteadyState 中的计算机限制
图 1 SteadyState 中的计算机限制
请特别注意，只有在配置了 SteadyState 的 Windows 系统上运行时，USB 设置才可激活。为防止离线攻击，您应该正确配置 BIOS 以阻止从 USB 或 CD 设备启动，并为 BIOS 设置其自身的密码保护。
当然，这并不能做到万无一失。不知您是否还记得“安全性的十个永恒定律”(microsoft.com/technet/archive/community/columns/security/essays/10imlaws.mspx) 的第三条定律：“如果攻击者具有您计算机的无限制物理访问权限，那这台电脑就不再属于您了。”拥有足够时间和适当工具的专业人员通常都可以越过 BIOS 密码。

Windows 磁盘保护
如果您曾经用过 CD 上的 Windows XP Embedded 或者 Windows PE 2.0，那您可能已经非常熟悉我将要说明的内容了—因为它们与 Windows 磁盘保护有共同的历史。Windows 磁盘保护通过将对系统分区所做的所有更改保存到同一分区的缓冲区内，提供对 Windows 系统分区的完全“撤消”操作功能。SteadyState 在这方面的要求更为严格，因为该组件需要使您能够撤消很长时间内用户对系统所做的更改。
Windows 磁盘保护主要用于当您希望确保经过很长时间后，您能够快速将系统回滚（既可以在非计划重新启动之后，也可以按计划的时间间隔）到最初部署状态。在图 2 所示的对话框中可以设置四种模式：
图 2 配置 Windows 磁盘保护
图 2 配置 Windows 磁盘保护
关闭 完全禁用 Windows 磁盘保护，所有更改都将按正常方式写入磁盘。
开启—重新启动时丢弃更改 启用 Windows 磁盘保护，并且每次重新启动计算机时，所有更改都将丢弃。实际上，这表示系统将在每次启动时精确恢复到您选中并保存该选项时的状态。
开启—在设定的时间丢弃更改 基本上与前一个选项相同，只是该选项在设定的时间丢弃更改，而不是在下一次启动时。如果您希望每日或每周丢弃更改，那选择该选项恰好合适。
开启—永久保留更改 这个选项容易与“关闭”选项混淆，但不同之处在于该选项是临时模式。例如，如果您想要实现应用程序更新、安装新的应用程序或配置系统，那就可以使用此模式。此模式通常不应该在特别重要的时间段内使用。
请注意：在这些模式间切换时，Windows 磁盘保护会要求重新启动计算机。

定时计划软件更新
现在 SteadyState 已经提供了“定时计划软件更新”设置，它能够自动为您关闭或开启 Windows 磁盘保护。如果您允许 SteadyState 处理您的更新，它将设置 Windows 磁盘保护在更新期间保存更改，然后将 Windows 磁盘保护返回到之前的设置。我强烈推荐使用该设置，因为它为您避免了管理任务列表中的一项麻烦事。
以下安全软件可以通过“软件更新”中的更新功能获得支持：Computer Associates eTrust 7.0、McAfee VirusScan、Windows Defender 和 TrendMicro 7.0。

用户帐户管理器
“添加用户”选项使您能够为系统配置新用户。图 3 显示了用于新用户的一些选项：用户名、密码、代表用户的图像和用户配置文件的位置。创建用户之后，您就可以为这些本地帐户分别设置“用户限制和设置”。令人高兴的是当在系统上添加并配置一个帐户之后，您可以将其导出，然后根据需要导入另一个系统（或将其存档）。
图 3 添加用户帐户
图 3 添加用户帐户
“用户帐户管理器”的一个实用功能是可以通过图 3 中所示的“用户位置”菜单在第二分区上创建用户配置。除非您在安装过程中通过 unattend.txt 文件手动指定不同的“文档和设置”位置，否则配置文件通常必须在 Windows 分区上创建。该方法在 SteadyState 中特别有用，因为当启用 Windows 磁盘保护时，它可以丢弃对 Windows 系统分区的更改。如果希望在 Windows 磁盘保护清除缓冲之后仍保持用户配置的一致性，只需在使用“用户帐户管理器”创建用户时指定将用户配置文件存储在其他本地分区上即可。
该过程先重新启动以清除 Windows 磁盘保护缓存，应用更新，然后再次重新启动计算机以重启 Windows 磁盘保护。除 Windows Update 外，SteadyState 还将为所支持的几款流行防病毒应用程序更新特征文件（请参见“获得并使用 SteadyState”补充报道）。如果您所使用的防病毒应用程序不是受支持的产品，或者您需要运行其他更新程序，那您可以手动进行更新—只需要确保在进行更新时禁用 Windows 磁盘保护，否则特征更新将丢失。

用户限制与设置
当您选定用户之后，SteadyState 将把“用户限制”分成四类。这些类别从“组策略”设置派生而来，所以对您来说可能并不陌生。
“常规”设置控制用户配置文件和强制注销配置。其中包括锁定配置文件，以及设置注销超时间隔（在已配置的使用时间段或空闲时间段后）。
“Windows 限制”设置（如图 4 所示）控制 Windows 专用配置项。示例包括删除对 Windows 用户界面项（如“开始菜单”上的组件和 Windows 资源管理器功能）的访问权限。此外还提供根据驱动器盘符阻止访问指定驱动器的功能，如禁用 CD 刻录功能。
图 4 Windows 特定的用户限制
图 4 Windows 特定的用户限制
“功能限制”选项卡（如图 5 所示）控制对大部分 Internet Explorer® 功能的详细访问控制，它使您能够设置 Internet Explorer 主页、在一定程度上控制 Microsoft® Office 功能 — 主要是控制要执行的 Visual Basic® for Applications (VBA) 脚本的能力。
图 5 功能限制
图 5 功能限制
“阻止程序”设置（请参见图 6）控制运行具体应用程序的能力—基本上就是您创建一张黑名单。该设置中已添加了一些常见的应用程序，您还可以添加其他应用程序。请注意：将根据这些项目的路径定义进行阻止。如果允许某位用户在系统中将应用程序移动到其他位置，则路径规则将不再应用。但正确应用文件和目录 ACL 并以其他方式限制访问系统将防止用户随意将应用程序移动到其他位置。
图 6 阻止程序执行
图 6 阻止程序执行
SteadyState 的另一项重要的新功能基于预配置的模板，该模板指定与“Windows 限制”和“功能限制”相关的限制级别。该模板简化了根据所需的功能锁定级别使用基本配置。当然您也可以构建自定义模板。

SteadyState 的局限性
SteadyState 能够出色地帮助组织稳固其共享计算系统。作为商用工具，它非常优秀。作为免费工具，它令人敬佩。但是，请记住，它不是万能的。
共享计算系统易于成为攻击甚或无意滥用的目标。您应该确保这些系统与其不需要访问的信息隔离。虽然 SteadyState 也有阻止访问应用程序的能力，但这些强制措施通过“软件限制策略”进行处理。此外，根据 Mark Russinovich 前几年的观察，某些具备专业技能的用户可以使用一些技术手工编制看似良性的应用程序，但这些程序会使以“受限用户”登录的用户也能越过这些“软件限制策略”(blogs.technet.com/markrussinovich/archive/2005/12/12/circumventing-group-policy-as-a-limited-user.aspx)。由于不能阻止所有设备访问和 Internet 访问，您需要时刻警惕漏洞。应始终铭记第 3 条定律...
很明显，SteadyState 只是配置良好的共享计算系统中的一个组件。通过 Windows Update 定期更新应用程序以及正确配置 Windows 防火墙（或其他防火墙）同样非常重要。另外，请务必安装和配置分析系统潜在风险所需的防病毒、反间谍软件和其他安全相关措施。同样，控制对计算机的访问 — 如果无法做到，那务必控制计算机可查看的内容。请勿在本地存储机密数据。
最后，在检查您的平台是否符合要求时，请确保测试中包括使用 SteadyState（除非计划不使用 Windows 磁盘保护，否则请启用它）和所有计划在系统上运行的其他软件。您将需要确保这些软件能够与 SteadyState 完美地相互配合工作。

SteadyState 支持
就我所见，用户对 SteadyState 的反馈是非常肯定的。目前为止，我只收到很少几个问题，其中包括一些添加用户顺序方面的问题。这其中许多问题（以及其他提示和技巧）在 Windows SteadyState 社区（从 SteadyState 应用程序和文档中的几个地方可以方便地链接到该社区）中都有非常活跃的讨论，社区网址为 forums.microsoft.com/windowstoolsandutilities。
我还推荐在开始使用该软件之前首先阅读 SteadyState 手册，该手册可以从 go.microsoft.com/fwlink/?LinkId=104722 获得。它提供了大量成功使用 SteadyState 的提示和技巧。

总结
SteadyState 为需要控制访问的任何 Windows XP 系统提供了一组极为出色的功能包 — 而且完全免费！显著改进的 Windows 磁盘保护功能和用户界面增强意味着部署更简便，而且更加易于管理您的共享访问系统。
无论您需要管理的是计算机实验室系统、访客或雇员共享访问的网亭、培训室，还是任何其他共享计算环境，SteadyState 都能帮助您获得 — 并保持 — 这些系统更简便地启动和运行。而且它不再需要您每周都重新映像系统，使其回复最初状态。在我看来，这正是一个巨大的改进。

Wes Miller是位于德克萨斯州奥斯汀市的 Initiate Systems 公司 (InitiateSystems.com) 的技术产品经理。在此之前，他在 Winternals Software 公司任职，并曾在 Microsoft 担任程序经理。Wes 的联系方式如下：technet@getwired.com。


 领域备注: 您今天最重要的任务
领域备注
您今天最重要的任务
Eric N. Bush

比尔·盖茨 每年都会离开办公室两次去度过他所说的“思考周”。在这段时间里，他远离人群、电话和电子邮件，并将所有的时间都投入到阅读中去。他思考 Microsoft 和世界的技术现状。他力图了解自己的公司和其他人的公司都在做些什么，以及如何才能以更具战略性的方式向前发展。盖茨深悉思考和计划的价值。
我们每个人都可以每天专门留出一些时间进行思考和计划，这将使您获益匪浅 — 用这些时间构思新想法、解决问题、安排任务优先级、设定目标和放飞想像。尽力保证每天在相同的时间和地点进行这项活动，并且在此期间避免一切外界干扰。您最重要的任务就是计划每天要做的工作，并为它们安排优先级。如果处于管理者的角色，那您实际上可能会把大部分时间用于为他人的工作安排计划和优先级。
无论是管理公司网络、管理关键任务数据库，还是设计和管理企业信息系统，每天都可能会发生各种各样的问题，将您的注意力从真正需要关注的事情上转移到其他地方。当一天快要结束时，您无法确切地说出今天一天的工作比计划提前了，还是远远地落在了计划的后面。
您的目标应该更能先发制人、更好地进行组织和准备以应对 IT 紧急情况。通过计划，您可以变被动为主动。为了实现这种转变，您必须思考、计划并安排优先级。它有助于维护一个任务列表 — 该列表按三种类别进行组织 — 开始每一天时都回顾一下该列表：“进行中”列表、“越快越好”列表以及“愿望”列表。使用这些列表，您可以抽出时间创建能够在第一时间预防危机发生的解决方案。
“进行中”列表是当前最为重要的列表。保证每天都能使这些关键任务有所进展至关重要。首先处理您公司和小组的主要目标。可以降低不会直接影响主要目标的任务的优先级。如果处于管理位置，那您必须制定一套能够帮助所有员工与最高优先级保持同步的流程。
“越快越好”列表和“愿望”列表通常用于那些能节省公司时间和资金以提高竞争力的战略性计划。确定这些任务并采用循序渐进和系统化的方法跟进，当其优先级提高时便移入“进行中”列表。
切记：尽管您已经制定了这些排好优先级的列表，但这并不代表所有事都将实际顺利完成。以下是一些帮助您顺利完成任务的提示：
  • 首先挑出紧急而简单的任务。
  • 接下来，完成您不太愿意去做的任务。
  • 最后，处理那些激动人心的任务。
  • 避免经常半途而废。尽可能按顺序一件接一件完成工作。
  • 但是，如果在某件事上遇到了阻碍，那立即转到下一个任务，直到阻碍消除后再转回来继续工作。
  • 委派或拒绝对您没有意义的任务，或者建议替代人选。
  • 了解自己何时工作状态最佳，最有效率。尽量将时间留给最重要的任务。
学会如何睿智地计划您的时间将有助于您更好地完成工作。陷入无计划生活的人们永远不会真正对自己取得的成果感到高兴，因为他们从一开始就不知道自己究竟要完成些什么。

Eric N. Bush 是 Microsoft 的 Engineering Excellence 组的软件开发负责人。作为内部顾问和课堂讲师，他推动了人们在技能、流程和技术领域的工程组织方面的进步。可通过 ericbush@microsoft.com 与他联系。


 Windows 机密: 提醒我切勿重蹈覆辙
Windows 机密
提醒我切勿重蹈覆辙
Raymond Chen

曾有一个用于 Windows® 95 系列操作系统的旧工具，名为“自动忽略驱动程序”。您对此工具的第一反应可能是它笨拙的名称，甚至于您可能怀疑字母 ASD 代表着其他意思。您的感觉非常准确。
Windows 95 必须处理大量非即插即用设备，因为当时的绝大多数系统均没有应用插即用规格。缺少合适的即插即用设备时，硬件检测是一件非常可怕的事情。
例如，检测调制解调器需要查询多个调制解调器寄存器的值。尽管存在很完美的基本调制解调器命令集，但在执行命令语言的生僻部分时，仍存在重大的差异。毫无疑问，此不一致性对于通信程序而言非常令人沮丧，因为它需要针对不同调制解调器型号添加特殊情况以满足它们各自的奇特之处；但是，此不一致性对于 Windows 却是意外的恩赐：由于每个调制解调器的行为均存在细微差异，Windows 可调查这些生僻之处并将调制解调器的行为与已知调制解调器以及它们响应的表格相比较。
在 Windows 95 团队中，有一个人的职责是安装人们所知的所有调制解调器并运行一个小程序来让调制解调器经历它的所有步骤、寻找生僻之处并从每个调制解调器收集结果，以建立详尽的调制解调器数据库。如果您仍可访问运行 Windows 95 的计算机，可快速浏览 Windows\Inf 目录并查看名称以 MDM 开头的所有文件。与调制解调器相关的设备信息文件超过 1 MB。需要某人花几年的时间才能消化 1 MB 难以理解的十六进制数字。
检测调制解调器非常安全，因为几乎所有调制解调器在较高级别的行为均大概相同；所有令人兴奋之处均在于细节。更加可怕的是使用 I/O 端口的设备。例如，要检测是否安装了特定视频卡，Windows 95 配置管理器的视频卡检测模块会将仔细选择的值发送到特定 I/O 端口并侦听设备的所有响应。如果设备以正确方式做出响应，它会假定找到了正在寻找的东西。否则，它会转向下一视频卡型号。
当然，如果该 I/O 端口上安装的设备并非配置管理器正在通过测试想得到的视频卡，它可能变得非常不高兴，因为有人向它发送了毫无意义的值。设备可能会视情况挂起或重启计算机。它不会向配置管理器提出预告。因而产生了名为 ASD 的模块。
在执行这些存在潜在灾难的硬件试探前，配置管理器会创建一个文件，大致说“哦， 我要做危险的事情 X！”。这是计算机版本的经典“如果我一去不返，请把它打开”信封，动作片中的英雄去参加打击坏人的自杀性任务前会给他的女朋友留下这样一封信。
实际上，如果危险事情 X 确实导致计算机挂起、崩溃或重启，则在下次系统启动时，它会发现这个神奇的文件并“打开信封”看到导致计算机崩溃的危险事情 X。然后，系统会得出结论：尝试检测设备 X 是灾难性的，切勿重蹈覆辙！
执行此工作的模块即名为 ASD。字母 ASD 表示“尝试危险的事物”。

Raymond Chen 的网站 The Old New Thing 及同名著作 (Addison-Wesley, 2007) 均讲述了 Windows 的历史发展情况及 Win32 编程。因为这一方面非常热门，所以他倍加小心。