【问题标题】:Processing group policy with GP Extension使用 GP 扩展处理组策略
【发布时间】:2017-05-24 23:29:32
【问题描述】:

我创建了一个实现 ProcessGroupPolicyEx 的组策略扩展。 当我收到组策略时,我成功收到通知。

但是,我不知道如何从 GPO 内部读取策略。 example 停止循环遍历 GPO:

 for( pCurGPO = pChangedGPOList; pCurGPO; pCurGPO = pCurGPO->pNext )
   {
       if( *pbAbort )
       {
           // Abort.
           break;
       }
       // ...
   }

这很好,但是我如何在 pCurGPO 中获取策略(实际设置)?我需要获取此 GPO 包含的设置或存储它们的注册表项。这是因为我创建了多个针对我的扩展的 ADMX 模板,所以我需要将它们区分开来。

到目前为止,我已经找到了一些示例,但它们假设扩展程序提前知道将更改哪些注册表。但是,在我的情况下,我不希望扩展做出这种假设,我希望它检查更新的 GPO 并准确确定正在更改的内容。

任何指针将不胜感激。

【问题讨论】:

  • 如果问的是如何解析 GPO 结构 msdn.microsoft.com/en-us/library/aa374173(v=vs.85).aspx 为什么这没有帮助?啊,我看错了。你已经过去了。
  • 这告诉我如何获取有关粘性物质的信息。但是,我无法获得有关 GPO 包含内容的信息。例如,在我的扩展中,我想检查 GOP 是否修改了特定的子键。
  • 是的,我知道在我目前的设置中,我无法直接帮助你解决这个问题,但是 chrome 有一些代码可以解析和计算组策略,你可以看看吗? chromium.googlesource.com/experimental/chromium/src/+/…

标签: c windows group-policy


【解决方案1】:

因此,在浏览了 Chromium 代码之后(根据 amritanshu 评论),我找到了一种似乎可行的方法,但是我还不明白可能存在哪些异常(如果有的话):

  1. 获取 pCurObj 的 lpFileSysPath 字段,这将是一个 UNC 路径。
  2. 将“\Registry.pol”附加到路径中。
  3. 读取并解析生成的文件,这将是一个 PReg 文件。

PReg 文件记录在这里: https://msdn.microsoft.com/en-us/library/aa374407(v=vs.85).aspx

如果有人发现此方法有任何问题,或知道此算法有任何异常,请告诉我。

编辑: 还发现这个博客写得更好,但解释相似:https://redsigil.weebly.com/home/group-policy-callbacks-the-missing-documentation

【讨论】:

    猜你喜欢
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 2018-10-22
    • 2021-08-07
    • 2018-04-12
    • 2011-06-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多