BGInfo和WMIfilter

我已经通过GPO应用login脚本来运行BGInfo。 据我了解,因为我设置用户configurationGPO必须应用于用户OU。 我们有一个称为SERVERS的OU,这是我们希望此GPO运行的唯一OU,但是当我将GPO链接到SERVERS OU而不是USERS OU时,GPO未应用。 因为GPO因此与USERS OU连接,所以它运行在我们公司的每台PC /服务器上 – 这不是我们想要的。

如果我的结论到目前为止是正确的,我推测,我可以阻止GPO运行在除SERVERS之外的任何OU的唯一方法是通过WMIfilter,但是我似乎无法创build一个filter,因为我无法访问variables如%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 = [当前计算机正在被login到]和ds_distinguishedName如'%ou = servers%'”

但是这当然不会评估。

我在这里的正确轨道? 还是有更好的解决scheme?

任何build议不胜感激。

非常感谢dotdev

你想要回送处理。 它运行作为login用户分配给计算机的GPO的“用户configuration”项目。因此,当用户login时,为用户分配具有configuration项目的服务器OU的GPO将运行。

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

避免环回处理; 这是一个疑难解答的噩梦 ,往往会在几年后回来咬你。 而是使用组策略首选项(GPP)项目级别定位。 基本过程是:

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