如何调用带有多个参数的ManagementObject?

How to call ManagementObject with more than one parameter?

使用 ManagementObject 获得 BcdObject 的正确语法是什么?对于我使用的单个参数:

var obj = new ManagementObject(@"root\WMI", string.Format("BcdObject.Id = '{0}'"), null);

但我不确定如何添加其他参数(是 AND, 还是其他?),例如:

var bcdObj = new ManagementObject(@"root\WMI",
    string.Format("BcdObject.Id = '{0}' AND BcdObject.StoreFilePath = '{1}'",
        "{current}", ""),
    null);

这应该是要走的路:

var bcdId = "{current}";
var sfp = "";
var obj = new ManagementObject(
    "root\WMI:BcdObject.Id=\"" + bcdId + "\",StoreFilePath=\"" + sfp + "\"");

请注意,即使您只是在逗号后加上 space 也不会起作用。祝你好运!

您可以将过滤器字符串作为构造函数中的第二个参数传递(就像在您的原始代码中一样),但适用相同的规则 - no spaces.