如果CMI_DataFile类具有“where condition1 AND condition2”(C#),则会对其生成“无效查询”

好的,这就是我正在做的只是System.Management调用的东西:

简单查询和方法调用在同一连接上工作。 此查询不会。 并且该文件存在于远程计算机上。 线索?

myQuery = "Select * from CIM_DataFile Where Drive = 'C:' AND Path = '\\Users\\someguy\\Documents\\' AND FileName = 'Default' AND Extension = 'rdp'"; options = new ConnectionOptions(); options.Username = myUsername; options.Password = myPassword; options.Authority = "ntlmdomain:MYDOMAIN"; scope = new ManagementScope("\\\\REMOTEMACHINE\\root\\CIMV2", options); scope.Connect(); searcher = new ManagementObjectSearcher(scope, new ObjectQuery(myQuery)); myResults = searcher.Get(); 

ManagementObjectSearcher.Get()给我一个ManagementException,说“无效的查询”。 一个更简单的查询,例如“SELECT * FROM Win32_NetworkAdapter”,可以工作。

我试图将WHERE减少到只有一个,即“从CIM_DataFile中选择*,其中Extension =’rdp’”。 它有效,虽然它显然不能得到我想要的东西。 (在编辑之前,我错误地认为它甚至不起作用;见评论)我在这里的绳子尽头。

我是一个白痴。 请不要打我。

首先,如果在WHERE子句中传递文件名的所有组件,则查询仅可靠地工作。

其次,我不得不加倍路径组件中的反斜杠,我做错了。 我做了:

 pathPath.Replace("\\", "\\\\"); 

而我必须做的是:

 pathPath = pathPath.Replace("\\", "\\\\"); 

那就对了。 我的假设是String.Replace()在线改变了字符串。 坏C#新手。 坏。