组策略

组策略的 ADM 和 ADMX 模板探密

Jeremy Moskowitz

 

概览:

  • 组策略模板类型
  • 正确与不正确的策略密钥
  • 查看 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 与他联系。

© 2008 Microsoft Corporation 与 CMP Media, LLC.保留所有权利;不得对全文或部分内容进行复制.