我需要确定计算机是否实际上是具有 wifi 功能的笔记本电脑(重点是 wifi 而不是笔记本电脑)。更准确地说,我想将我通过WSUS和Local Update Publisher编写的软件分发给这些客户端。为此,我想创建适当的“程序包可安装规则”,这是使用客户端上的 Windows 更新服务预先决定更新/安装包是否适用的简单规则。通常,此类“安装标签规则”是“文件存在”、“注册表项存在”、“WMI 查询”、“已安装 MSI 产品”类型规则的逻辑组合,因此我更喜欢其中一种方法。我希望这里有人可以帮助我找到的方法应该适用于 Win 7/Vista,
我的猜测是 WMI 查询是可行的方法,但我在这方面经验不足。我发现可以查询 EnclosureType 并且可能检测到笔记本电脑。但是,如果检测到实际可用的 wifi 接口,我会更高兴。有谁知道如何处理这个问题?
如果您有任何需要我澄清的地方,请随时发表评论。
要测试该
WLAN AutoConfig
服务是否正在使用 WMI 运行,您可以使用此查询:SELECT * FROM Win32_Service WHERE Name = 'Wlansvc' AND State = 'Running'
。但是,如果在没有无线网卡的情况下手动启动服务,则依赖服务状态可能会产生误导。您还可以使用此查询在适配器名称中搜索任何包含“wireless”的内容:
SELECT * FROM Win32_NetworkAdapterConfiguration WHERE Description LIKE '%wireless%'
(% 是 WMI 的零个或多个字符的通配符)。命名空间中还有另一个类
root\wmi
(之前的查询使用默认root\cimv2
命名空间)表示 802.11 配置条目,但我发现对它的支持并不总是存在,因此不应将其用作唯一的检测方法:SELECT * FROM MSNdis_80211_Configuration
。我没有使用 WSUS Local Update Publisher 的经验,因此我无法帮助您准确实现 WMI 查询,但您可以在 PowerShell 中测试它们,
Get-WmiObject -Query "<query>"
或者Get-WmiObject -Query "<query>" -Namespace <namespace>
如果您需要自定义命名空间。