active-directory – 检查WQL中的缺失值或(WQL / WMI过滤器为桌面/服务器返回“true”,但在笔记本电脑上返回“false”)

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

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

我开始测试使用win32_systemenclosure属性ChassisTypes,但很快发现ChassisTypes是一个int数组,不能用于(标准)WQL [虽然它可以在SCCM WQL扩展集中使用].

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

由于以上所有内容都不会(/ – 可容忍的N)对于台式机/服务器返回true,而对于笔记本电脑/笔记本电脑来说是假的,因此我在0732 win32_portablebattery类.

兴奋,我开始测试并很快发现win32_portablebattery在对桌面或服务器执行时没有返回任何内容.通过“无”我不是指{empty string} /“”,我不是指NULL,我不是故意的,我的意思是没什么.我甚至试图检查__CLASS =“”和__CLASS IS NULL,并且两者仍然为桌面和服务器返回false.

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

你可以做两件事.

>如果您有标准计算机型号,则可以根据Win32_ComputerSystem模型属性进行过滤.
>如果您正在使用组策略首选项,则可以使用项目级别定位来根据无数因素过滤掉策略应用于哪些用户/计算机.其中一个Portable Computer Targeting.简而言之,Windows将确定机器是否可移植.

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

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

相关文章

Windows2012R2备用域控搭建 前置操作 域控主域控的主dns:自...
主域控角色迁移和夺取(转载) 转载自:http://yupeizhi.blo...
Windows2012R2 NTP时间同步 Windows2012R2里没有了internet时...
Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...