ADMX 策略和首选项

ADMX 策略和首选项

编写自定义 ADMX 模板并将其添加到 PolicyDefinitions 后,查看策略设置时看到以下警告:

注意:此注册表设置未存储在策略项中,因此被视为首选项。因此,如果实施此设置的组策略对象被删除,此设置将保留。

这对我来说意味着什么?我可以修改 ADMX 以将其设置存储在策略项中吗?

答案1

您收到此警告是因为组策略区分了两个对象:策略和首选项。完整解释可以在这里找到这里,但我会列出适用于这种情况的主要区别。

首先,设置必须存储在以下键之一中,才能符合策略的条件:

  • HKEY_CURRENT_USER\Software\Policies
  • HKEY_LOCAL_MACHINE\Software\Policies
  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies

由于大多数自定义 ADMX 文件都是为修改现有注册表项而编写的,因此几乎所有文件都默认为首选项。如果您看到您描述的警告,则意味着您的 ADMX 文件定义的是首选项,而不是策略。修改它是不可能的,因为它会失去其效果,即修改策略项之外的注册表设置。

至于这意味着什么,可以在我上面提到的链接,但我会针对这种情况进行简化。大多数 ADMX 模板都是为了管理属于特定应用程序的注册表设置而创建的。一些开发人员会预料到这一点,并为其应用程序创建策略。Adobe 就是这样的开发人员,他们为其 Acrobat Reader 创建了以下密钥:HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Adobe\Acrobat Reader\10.0\FeatureLockDown\cDefaultLaunchURLPerms

应用程序可以识别这些策略,通过组策略对它们所做的任何更改都将取代应用程序设置,同时会记住原始值。当修改策略的 GP 对象移出范围或以其他方式被删除时,将恢复原始值。

另一方面,偏好不是可以识别。它们修改应用程序设置的注册表项,但应用程序不知道修改。一旦应用,首选项将覆盖现有项,应用程序将仅使用这些值。由于应用程序不知道其项已由 GP 设置,因此用户可以覆盖这些项。组策略引擎仅在 GP 更改时重新应用设置,因此以这种方式设置的任何首选项都可能不是永久的。

矛盾的是,他们另一种方式是永久的:由于首选项会覆盖现有键,因此删除 GPO 时不会撤消该更改。因此,首选项应始终包含已禁用设置的键值,以便可以撤消更改。请记住,如果要删除首选项所做的更改,则必须将键设置为默认值,因为原始值未保存且无法重新创建。

相关内容