检查 WQL 中的缺失值或(WQL/WMI 过滤器为台式机/服务器返回“true”,但在笔记本电脑上返回“false”)

mbr*_*nyc 5 active-directory windows-7 wmi

我有一个挑战,我想使用 GPO 来设置电源计划。

在构建 WMI 过滤器(使用 WQL)时,我遇到了确定一组 WQL 语句的问题,这些语句总是true为台式机/服务器和false笔记本电脑/笔记本电脑返回。

我开始测试win32_systemenclosureproperty的使用ChassisTypes,但很快发现它ChassisTypes是一个int array,不能在(标准)WQL 中使用 [尽管它在 SCCM WQL 扩展集中可用]。

接下来我找到了使用win32_battery和检查Status属性的非零值的引用;但我很快意识到这将在通过 USB 连接 UPS 的台式机和服务器上返回一个值。

由于true对于台式机/服务器和false笔记本电脑/笔记本电脑,上述情况都不会总是(+/- 可容忍的 N)返回,因此我找到了该win32_portablebattery课程。

我很兴奋,开始测试并很快注意到win32_portablebattery在桌面或服务器上执行时没有返回任何内容。我所说的“无”不是说{empty string}/"",我不是说NULL,我也不是说false,我真的没有什么意思。我什至试图检查__CLASS = ""__CLASS IS NULL并且仍然返回false台式机和服务器。

有没有人知道任何进一步的WQL-fu 尝试使用 获得true结果win32_portablebattery

MDM*_*313 2

您可以做两件事。

  1. 如果您有标准计算机型号,则可以根据Win32_ComputerSystem型号属性进行过滤。

  2. 如果您使用组策略首选项,则可以Item Level Targeting根据多种因素过滤出该策略适用的用户/计算机。其中之一是便携式计算机定位。简而言之,Windows 将确定机器是否是便携式的。

我个人喜欢#2,因为如果它被误用,那么你总是可以责怪微软并告诉用户

MS 认为您的计算机应该是便携式的。

  • 如果你足够男人的话,任何电脑都是便携式的。 (2认同)