BGInfo 和 WMI 筛选器

BGInfo 和 WMI 筛选器

我已通过 GPO 应用登录脚本来运行 BGInfo。据我了解,由于我正在设置用户配置,因此必须将 GPO 应用于用户 OU。我们有一个名为 SERVERS 的 OU,这是我们想要运行此 GPO 的唯一 OU,但是当我将 GPO 链接到 SERVERS OU 而不是 USERS OU 时,GPO 未应用。由于 GPO 因此链接到 USERS OU,因此它会在我们公司的每台 PC/SERVER 上运行 - 这不是我们想要的。

如果到目前为止我的结论是正确的,我推测阻止 GPO 在除 SERVERS 之外的任何 OU 上运行的唯一方法是通过 WMI 过滤器,但是我似乎无法创建一个可以工作的过滤器,因为我无法访问 %computername% 之类的变量。

我原本以为我想要一个如下查询:

gwmi -namespace root\directory\LDAP -query "select * from ds_computer where DS_cn = %computername% AND ds_distinguishedName like '%ou=servers%'"

这相当于说“SELECT * FROM ds_Computer where DS_cn = [当前登录的计算机] AND ds_distinguishedName like '%ou=servers%'”

但这当然不会评价。

我这样做对吗?或者有更好的解决方案吗?

非常感谢您的任何建议。

非常感谢dotdev

答案1

您需要环回处理。它以登录用户的身份运行分配给计算机 GPO 的“用户配置”项。因此,分配给服务器 OU 的 GPO(其中包含用户的配置项)将在用户登录时运行。

微软有更好的解释Windows Server:了解“用户组策略环回处理模式”

答案2

避免环回处理;这是一个故障排除过程恶梦有时几年后又会反过来伤害你。请改用组策略首选项 (GPP) 项目级别定位。基本流程如下:

  1. 创建新的 GPO
  2. 浏览至用户配置 | 首选项 | 控制面板设置 | 计划任务
  3. 创建一个新的计划任务(至少 Windows 7)
  4. 配置您的任务以运行脚本或直接启动脚本
  5. 在触发器选项卡上,创建一个触发器来启动“登录时”
    1. 作为奖励,你可以通过设置“重复任务间隔”选项定期让 bginfo“更新”
  6. 在“常用”选项卡上,选中“项目级定位”并打开“定位”对话框
  7. 选择新项目 | 组织单位
  8. 浏览并选择要应用 GPP 的 OU
  9. 将 GPO 链接到用户对象所在的位置

相关内容