如何使用IN查询执行WMI

时间:2019-03-21 04:42:10

标签: c# wmi

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

var query = firebase.database().ref("/Venue").orderByKey();
query.on("value", function (snapshot) {
    snapshot.forEach(function (childSnapshot) {
        var key = childSnapshot.key;
        var childData = childSnapshot.val();
        console.log(Object.values(childData.Data)[0]); // change
    });
});

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分: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");