如何定时炸弹 GPO?

the*_*bit 22 active-directory group-policy

我在高等教育领域做了很多工作,在特定课程或活动期间重新配置许多 Windows 域成员(例如教室中的 PC)并在之后撤消此配置是一个相当普遍的要求。

由于我们被要求进行的大多数配置更改都可以通过组策略对象完成,并且当 GPO 在 OU 级别取消链接或停用时,这些更改会自动撤消,因此这是一条非常舒适的路线。

唯一的缺点是重复手动链接和取消链接 OU 上的 GPO 需要在课程开始前和结束后进行大量提醒和值班的 IT 人员——这是运营团队无法始终保证的。

有没有办法为特定 GPO 的有效性指定时间范围?

the*_*bit 32

这可以通过WMI 过滤来完成。组策略客户端将从附加的 WMI 过滤器执行 WQL 查询,并且仅当查询返回非零行数时才应用 GPO。因此,通过创建 WMI 过滤器检查当前系统时间是否在给定的时间间隔内并将此 WMI 过滤器链接到您想要定时炸弹的 GPO,您将得到您想要的。

所述win32_operatingsystem WMI类有一个localdatetime可以相比,在格式给定的字符串日期属性“YYYYMMDD HH:NN:SS”所以使用WQL串等

select * from win32_operatingsystem where localdatetime >= '20150220 00:00:00' and localdatetime <= '20150223 15:00:00'
Run Code Online (Sandbox Code Playgroud)

root\CIMv2命名空间中将确保 GPO 仅应用于本地时间介于 2015 年 2 月 20 日 00:00:00 和 2015 年 2 月 23 日 15:00:00 之间的系统:

使用 WQL 字符串配置 WMI 过滤器

确保您已将 WMI 过滤器链接到所需的 GPO:

将 WMI 过滤器链接到 GPO

要记住的事情:

  • WQL 正在评估客户端上的本地日期和时间,这些日期和时间可能与您打算使用的时间源同步,也可能不同步。客户端的时间不会比域控制器的时间跑得太远或太慢,否则 Kerberos 身份验证会中断,但可能会有细微的偏差,请考虑它们
  • 组策略客户端将检查 GPO 更改并在默认情况下很少重新应用它们:

    默认情况下,计算机组策略每 90 分钟在后台更新一次,随机偏移为 0 到 30 分钟。

    所以默认设置只允许+2 小时的精度。如果需要,可以通过(另一个)组策略设置更改更新间隔。

  • 您的策略需要能够在不再应用时还原所有更改。默认情况下,所有托管管理模板都是这种情况。组策略首选项设置可能需要明确设置为“不再应用时删除此项目”GPP-common-tab

  • 很聪明,为你点赞。 (3认同)
  • 根据我的经验,管理模板中有一些策略不会恢复他们所做的更改,所以最好先做一些测试......此外,Massimo 所说的...... (3认同)
  • @mortenya 管理模板的“托管”部分确保设置实际上是在注册表配置单元的另一个子树中进行的 - 例如 `HKLM\Software\Policies` 或 `HKCU\Software\Policies`。如果设置密钥的策略对象不再适用或属性设置为“未配置”,则会清除这些 *“策略”* 位置。对于写入注册表的旧式 ADM 模板,您是对的,这些模板被“纹身”到客户端的注册表中,之后不会删除。相关:http://serverfault.com/questions/566180/ (2认同)