如何使用IN查询进行WMI执行

问题描述 投票:0回答:2

WMI查询下面给出了无效的查询语法错误,如何使用IN运算符?

select DriverVersion,Description from Win32_PnPSignedDriver WHERE Description in ('Dell Touchpad', 'WiFi')
c# wmi
2个回答
1
投票

您需要使用WQL来查询WMI .. MSDN link

select DriverVersion,Description from Win32_PnPSignedDriver WHERE (Description='Dell Touchpad') or  (Description='WiFi')

1
投票

WMI使用WQL,它是SQL查询语言的一个非常基本的子集,因此您可能无法使用IN子句。对WQL有一些安静的限制。你有这个定义:https://docs.microsoft.com/en-us/windows/desktop/wmisdk/wql-sql-for-wmi

您还可以使用ORMi来帮助您使用WMI而无需编写WQL查询。你可以这样做:

var devices = helper.Query("SELECT * FROM Win32_PnPSignedDriver")
                    .Where(p => p.Description == "Dell Touchpad" || p.Description == "WiFi");
© www.soinside.com 2019 - 2024. All rights reserved.