我有三台机器:ASAAD-0 MSN-LEED01 MSN-LEED02
在组策略中,我有一个名为 LEED 的 WMI 过滤器,如下所示:
SELECT * FROM Win32_ComputerSystem WHERE (Name != "MSN-LEED01" OR Name != "MSN-LEED02")
包含具有此筛选器的 GPO 的 OU 将应用于所有三台计算机。
在 ASAAD-0 上,当我运行 gpresult /h 时,我可以看到此过滤器的计算结果为 True,这是预期的。然而,在两台 LEED 机器上,它仍然评估为 True,而它似乎应该评估为 False。
我尝试了几种不同的方法来验证 Win32_ComputerSystem.Name 是正确的值。
如果我跳上 MSN-LEED02 并运行 Powershell 命令Get-WmiObject Win32_ComputerSystem
,它会返回一些字段,而 Name 字段确实是 MSN-LEED02。
但是,如果我打开 wbemtest,进入 Enum Classes,找到 Win32_ComputerSystem 并查看其属性,Name 值为 null。
我尝试的最后一件事是使用这个第三方工具从上面测试过滤器。MSN-LEED01 和 MSN-LEED02 都返回 true,例如,(Name != MSN-LEED01) 应该为 false,因为名称似乎等于 MSN-LEED01。
有人知道我在过滤器上做错了什么吗?
将查询中的“OR”替换为“AND”:
但是,您可以在组策略管理的“委派”选项卡中添加计算机(或包含这些计算机的 AD 安全组),然后拒绝“应用组策略”,(如果要阻止,也可以拒绝“读取”这些计算机应用组策略的“用户”设置),它比 WMI 过滤器更有效且更易于维护。