【问题标题】:How to make an application GPO aware?如何让应用程序 GPO 感知?
【发布时间】:2011-05-21 16:56:52
【问题描述】:

我正在用 Delphi 2010 编写一个应用程序,我想向管理员提供通过组策略配置它的选项。关于让我的应用程序 GPO 感知的好方法有什么建议吗?请注意,我只是想创建一个基于计算机的 GPO,而不是用户。

我当前的解决方案是首先确定是否有任何值已写入 HKLM\software\policies\MyProgram 的注册表。如果有,我假设 GPO 已被应用,我使用此位置来读取配置。

如果上述注册表位置不存在任何内容,我会继续在标准位置读取配置,无论是 INI 文件还是其他 reg 键都无关紧要。此时,我在程序中假设没有使用组策略。

有没有人建议一种更好的方法来让这个应用程序能够识别 GPO?

【问题讨论】:

  • 我只是简单地研究了组策略对象,但我的理解是它们作为可定义的注册表项发送到计算机。在我看来,您创建了一个定义注册表项的组策略模板,然后就完成了。不是这样吗?
  • 部署它们基本上是正确的。但是,我的问题是关于我的应用程序阅读这些 GPO 的最佳方式。答案可能是最简单的,即检查 GPO 位置,如果不存在,请检查标准(例如非 gpo)位置。
  • 我的理解是自定义组策略模板的确切意图:您有一个友好的 UI,用于管理程序读取的注册表项;它可以将这些注册表项发送到整个域。我会以答案的形式提出来,看看猫会不会舔它。

标签: windows delphi group-policy


【解决方案1】:

这并不是说您必须了解组策略,而是组策略必须了解您的程序使用的注册表项。

自定义组策略模板的目的是提供一个用户界面,用于管理特定程序使用的自定义注册表项集。域管理员将策略设置为所需的值,并将策略推送到域中的计算机。

在您的情况下,自定义策略模板将定义您的程序使用的相应 HKLM 注册表项。您现在可以相信存储在以下位置的值:

HKLM\Software\MickSoftware\My Program 2010

是管理员想要的。


注意:以下“策略”注册表位置是非持久性的:

HKEY_LOCAL_MACHINE\SOFTWARE\Policies
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies
HKEY_CURRENT_USER\SOFTWARE\Policies
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies

"This means that when you log off the computer or when you shut down the computer, the policy settings are removed."

所以在我看来,您希望将注册表值存储在通常存储它们的位置,例如:

HKLM\Software\Avatar Software Creations\HelpDesk\DatabaseServer
    ServerName: REG_SZ = "lithium"
    UserID: REG_SZ = "helpdesk"
    Password: REG_SZ = "aSBsb3ZlIHlvdSBLaXJzdGVuIFNoZWxieSBHdXllcg=="

【讨论】:

  • 您真的想泄露帮助台的密码哈希吗? :)
  • 仅管理策略项下的设置,但这也意味着如果您在非托管项下创建策略并稍后将其删除或将值设置为未定义,则不会删除注册表设置。它们将永远保留在该特定 GPO 中。
  • @user205376 这不是哈希;)它实际上是我为这个问题生成的 base64 编码值(我认为很少有人会考虑解码它)。实际上,密码会被加密,然后进行 base64 编码以便轻松存储在注册表中。
  • @MikeyB SWYgb25seSBzaGUgZmVsdCB0aGUgc2FtZSA6KA==
  • 我希望她是你的妻子 .. 仍然;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-15
  • 1970-01-01
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
  • 2010-11-23
  • 1970-01-01
相关资源
最近更新 更多