在ASSOCIATORS OF语句中对ObjectPath有任何限制吗?

时间:2013-03-18 14:39:35

标签: wmi

我们以下面的请求为例:

ASSOCIATORS OF {Win32_DiskPartition.DeviceID="Disk #2, Partition #0"} WHERE AssocClass = Win32_LogicalDiskToPartition

它运行正常并返回相应的列表(在我的情况下)一个逻辑磁盘,F:。但是,如果我更改在此查询中指定对象的方法,例如,这样:

ASSOCIATORS OF {Win32_DiskPartition.DiskIndex=2} WHERE AssocClass = Win32_LogicalDiskToPartition

我收到“无效的对象路径”错误(在PowerShell中)。 DiskIndex字段肯定存在(请求“SELECT * FROM Win32_DiskPartition WHERE DiskIndex = 2”返回我的磁盘#2上唯一的分区,那么这样的请求有什么问题?我还尝试使用Win32_DiskPartition类的其他一些字段,但它们都没有在“ASSOCIATORS OF”请求中工作。互联网上的任何地方(也就是谷歌发送给我的地方)都没有关于对ObjectPath的任何限制的信息。此外,我发现了一个article,作者明确地说:

  

此限定符可以是来自源WMI类

任何属性

那么,这次请求修改有什么问题?

1 个答案:

答案 0 :(得分:3)

ObjectPath是唯一标识类实例的字符串,并且符合WMI类的键属性,因此您无法使用任何属性来构建ObjectPath。在这种情况下,Win32_DiskPartition的对象路径使用DeviceID属性,该属性是此类的Key属性。

enter image description here

ASSOCIATORS OF的基本语法是

ASSOCIATORS OF {ObjectPath}

所以你只能将有效的对象传递给这句话。