1

让我们以以下请求为例:

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”请求中起作用。Internet 上的任何地方(即 google 发送给我的地方)都没有关于 ObjectPath 的任何限制的信息。此外,我发现了一篇文章,作者明确表示:

此限定符可以是源 WMI 类中的任何属性

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

4

1 回答 1

3

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

在此处输入图像描述

的基本语法ASSOCIATORS OF

ASSOCIATORS OF {ObjectPath}

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

于 2013-03-18T17:24:45.557 回答