2013-03-18 32 views
1

讓我們例如以下請求:對ASSOCIATORS OF語句中的ObjectPath有任何限制嗎?

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類

所以任何財產,什麼是錯的這一要求修改?

回答

3

ObjectPath是一個字符串,它唯一標識一個類的實例,並且符合WMI類的關鍵屬性,因此您不能使用任何屬性來構建ObjectPath。在這種情況下,Win32_DiskPartition的對象路徑使用DeviceID屬性,該屬性是該類的Key屬性。

enter image description here

ASSOCIATORS OF的基本語法是

ASSOCIATORS OF {ObjectPath} 

所以,你只能通過一個有效的對象傳遞給這句話。

+0

謝謝!這是一個恥辱MSDN並沒有提到這樣的重要信息......你能告訴我什麼應用程序顯示這個屬性樹? – 2013-03-20 09:32:20

+0

該應用程序是[WMI Delphi Code Creator](http://code.google.com/p/wmi-delphi-code-creator/) – RRUZ 2013-03-20 13:32:06

+0

偉大的問題,很好的答案,偉大的工具(WMI Delphi Code Creator)!謝謝 – Bosco 2013-05-31 11:16:29