我需要确定一台电脑是否实际上是一台具有WiFifunction的笔记本电脑(重点是WiFi而不是笔记本电脑)。 更确切地说,我想将通过WSUS和Local Update Publisher编写的软件分发给这些客户端。 为此,我想创build适当的“程序包可安装规则”,这是在客户端上的Windows Update服务中使用的简单规则,以便事先决定更新/安装程序包是否适用。 通常,这样的“安装标签规则”是“文件存在”,“存在registry键”,“WMI查询”,“MSI产品安装”types的规则的逻辑组合,所以我更喜欢这些方法之一。 我希望这里的某个人可以帮助我find适用于Win 7 / Vista的方法,最好还是使用XP。
我的猜测是WMI查询是要走的路,但是我没有什么经验。 我发现,可以例如查询EnclosureType,并可能会检测笔记本电脑。 但是,如果能够检测到实际可用的wifi接口,我会更加快乐。 有没有人有一个想法如何处理这个?
如果有什么需要我澄清的,请不要犹豫,发表评论。
要testingWLAN AutoConfig服务是否使用WMI运行,您可以使用以下查询: SELECT * FROM Win32_Service WHERE Name = 'Wlansvc' AND State = 'Running' 。 但是,如果在没有无线网卡的情况下手动启动服务,依赖服务状态可能会产生误导。
您也可以在适配器名称中search任何包含“wireless”的查询: SELECT * FROM Win32_NetworkAdapterConfiguration WHERE Description LIKE '%wireless%' (%是WMI的零个或多个字符的通配符)。
在root\wmi命名空间中有另一个类(以前的查询使用了默认的root\cimv2命名空间),它代表了802.11configuration条目,但是我发现对它的支持并不总是存在,所以不应该作为只有检测方法: SELECT * FROM MSNdis_80211_Configuration 。
我没有使用WSUS Local Update Publisher的经验,所以我无法帮助您确切实现WMI查询,但是您可以使用Get-WmiObject -Query "<query>"或Get-WmiObject -Query "<query>" -Namespace <namespace>在PowerShell中testing它们。如果您需要自定义名称空间,请Get-WmiObject -Query "<query>" -Namespace <namespace> 。