如何使用 IN 查询执行 WMI

How to use IN query for WMI execution

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

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

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

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

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");