ADMX策略和首选项

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

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

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

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

首先,必须将设置存储在下列其中一个键中才能符合策略:

  • HKEY_CURRENT_USER \ SOFTWARE \政策
  • HKEY_LOCAL_MACHINE \ SOFTWARE \政策
  • HKEY_CURRENT_USER \ SOFTWARE \微软\的Windows \ CurrentVersion \政策
  • HKEY_LOCAL_MACHINE \ SOFTWARE \微软\的Windows \ CurrentVersion \政策

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

至于这是什么意思,可以在我上面提到的链接中find深入的解释,但我会简化这种情况。 大多数ADMX模板是为pipe理属于特定应用程序的registry设置而创build的。 一些开发人员会预测这一点,并为其应用程序创build策略。 这样的开发者的一个例子是Adobe为他们的Acrobat Reader创build以下密钥: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Adobe\Acrobat Reader\10.0\FeatureLockDown\cDefaultLaunchURLPerms

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

另一方面的偏好被认可。 它们修改应用程序设置的registry项,但应用程序不知道修改。 应用后,首选项将覆盖现有的密钥,应用程序将简单地使用这些值。 由于应用程序不知道其密钥已由GP设置,用户可以覆盖这些密钥。 组策略引擎只会在GP发生更改时重新应用设置,因此以这种方式设置的任何首选项都可能不是永久的。

矛盾的是,它们以另一种方式永久的:由于首选项覆盖现有的密钥,所以在删除GPO时,这种更改不会被撤销。 因此,首选项应始终包含“残疾人”设置的关键值,以便可以撤消更改。 请记住,如果您想删除首选项所做的更改,则必须将该键设置为默认值,因为原始值未保存且无法重新创build。