1

たとえば、次のリクエストを考えてみましょう。

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

これは正常に動作し、(私の場合は)1つの論理ディスクF:で対応するリストを返します。ただし、このクエリでオブジェクトを指定する方法を変更すると、たとえば次のようになります。

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

「無効なオブジェクトパス」エラーが発生します(PowerShellの場合)。フィールドDiskIndexは間違いなくそこにあります(リクエスト "SELECT * FROM Win32_DiskPartition WHERE DiskIndex = 2"は、ディスク#2にある唯一のパーティションを返します)。そのようなリクエストの何が問題になっていますか?Win32_DiskPartitionクラスの他のフィールドも使用してみましたが、「ASSOCIATORSOF」リクエストでは機能しませんでした。インターネットのどこ(つまり、グーグルが私を送った場所)には、ObjectPathの制限に関する情報はありません。さらに、著者が明示的に言っている記事を1つ見つけました。

この修飾子は、ソースWMIクラスの任意のプロパティにすることができます

では、このリクエストの変更の何が問題になっていますか?

4

1 に答える 1

3

ObjectPath、クラスのインスタンスを一意に識別する文字列であり、WMIクラスのkeyプロパティに準拠しているため、プロパティを使用してを作成することはできませんObjectPath。この場合、のオブジェクトパスは、このクラスWin32_DiskPartitionのプロパティであるDeviceIDプロパティを使用します。Key

ここに画像の説明を入力してください

の基本的な構文ASSOCIATORS OF

ASSOCIATORS OF {ObjectPath}

したがって、この文に渡すことができるのは有効なオブジェクトパスのみです。

于 2013-03-18T17:24:45.557 に答える