WMI搜索通配符不返回任何内容

时间:2011-12-07 18:43:26

标签: c# wmi wmi-query

编辑:添加了oScope

当我运行没有通配符的查询时,它会返回我期望的结果。但是,如果我稍微修改一下查询,它就不会抛出错误。相反,它只是没有返回任何东西,给我一个假阴性。

以下代码返回ZERO行:

    ManagementScope oScope = new ManagementScope("\\\\" + txtHostName + 
        "\\root\\CIMV2", oConn);

    string wheresub = "FileName Like '%myfile%'";

    ObjectQuery oQuery = new ObjectQuery(@"SELECT * FROM CIM_DataFile WHERE (" +
        wheresub + ") AND (Drive = 'C:' OR Drive = 'D:' OR Drive = 'E:')");

    ManagementObjectSearcher searcher = new ManagementObjectSearcher(oScope, oQuery);

    Log("Searching...");

    foreach (ManagementObject queryObj in searcher.Get())
    {
        FilesFound++;
        Log(String.Format("--> {0}{1}{2}.{3}", queryObj["Drive"], queryObj["Path"], queryObj["FileName"], queryObj["Extension"]));
    }
    if (FilesFound > 0)
    {
        Log(" " + FilesFound + " files found.");
    }
    else
    {
        Log(" Clean.");
    }

这段代码总是返回“Clean”。但是,如果我更改一行,要查找特定文件,它会找到一个特定文件:

string wheresub = "FileName = 'PROCID_myfile_1234'";

我需要通配符版本,这样我才能找到所有可能的文件,而不仅仅是特定的文件。我做错了什么?

0 个答案:

没有答案