SWbemObjectSet.ItemIndex 方法
ItemIndex方法會將與指定索引相關聯的SWbemObject傳回集合中。 索引表示專案在集合中的位置。 集合編號從零開始。
語法
objWbemObject = .ItemIndex( _
ByVal lIndex _
)
參數
-
lIndex
-
集合中專案的索引。
傳回值
如果成功,則要求的 SWbemObject 物件會傳回 。
錯誤碼
完成 Item方法時,Err物件可能包含下列其中一個錯誤碼。
-
wbemErrFailed - 2147749889 (0x80041001)
-
未指定的錯誤。
-
wbemErrInvalidParameter - 2147749896 (0x80041008)
-
指定了不正確參數。 如果提供負索引編號,就會傳回此錯誤。
-
wbemErrOutOfMemory - 2147749894 (0x80041006)
-
記憶體不足,無法完成作業。
-
wbemErrNotFound - 2147749890 (0x80041002)
-
找不到要求的專案。
備註
ItemIndex方法可讓以任何語言撰寫的 WMI 用戶端腳本和應用程式,以統一的方式操作類似陣列的集合。 這個方法可以搭配 SWbemObjectSet 集合使用。 查詢,例如 SWbemServices.AssociatorsOf、 SWbemServices.ReferencesTo、 SWbemServices.InstancesOf或 SWbemServices.ExecQuery 會傳回 SWbemObjectSet 集合。 ItemIndex方法不適用於不包含SWbemObjects 的集合,例如SWbemMethodSet、SWbemNamedValueSet、SWbemPrivilegeSet、SWbemPropertySet和SWbemQualifierSet。
ItemIndex 也可以用來取得單一類別的單一實例。
範例
下列 VBScript 程式碼範例會查詢所有 Win32_Process 實例的集合,然後顯示前三個進程的名稱。
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & _
strComputer & "\root\cimv2")
set colProcesses = _
objWMIService.Execquery("Select * from Win32_Process")
Wscript.Echo colProcesses.ItemIndex(0).Name
Wscript.Echo colProcesses.ItemIndex(1).Name
Wscript.Echo colProcesses.ItemIndex(2).Name
每個作業系統安裝只有一個 Win32_OperatingSystem 實例存在。 建立 GetObject 路徑以取得單一實例很不小心,因此腳本通常會列舉 Win32_OperatingSystem 即使只有一個實例可用也一樣。 下列 VBScript 程式碼範例示範如何使用 ItemIndex 方法來取得一 個Win32_OperatingSystem, 而不使用 For Each 迴圈。
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colOperatingSystems = objWMIService.ExecQuery _
("Select * from Win32_OperatingSystem")
Wscript.Echo "Caption: " & colOperatingSystems.ItemIndex(0).Caption
下列 VBScript 程式碼範例會取得與 Win32_OperatingSystem相關聯的實例,例如 Win32_SystemOperatingSystem。
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & _
strComputer & "\root\cimv2")
set colOS = _
objWMIService.Execquery("Select * from Win32_OperatingSystem")
Wscript.Echo colOS.ItemIndex(0).Name
set colAssociators = colOS.ItemIndex(0).Associators_
For Each Associator in colAssociators
Wscript.Echo Associator.Path_.RelPath
Next
下列程式碼範例輸出顯示與 Win32_OperatingSystem相關聯的實例。
Windows Server 2008
|C:\Windows|\Device\Harddisk0\Partition1
Win32_ComputerSystem.Name="Test1"
Win32_AutochkSetting.SettingID="Windows Server 2008
|C:\\Windows|\\Device\\Harddisk0\\Partition1"
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows Vista |
最低支援的伺服器 |
Windows Server 2008 |
標頭 |
|
類型程式庫 |
|
DLL |
|
CLSID |
CLSID_SWbemObjectSet |
IID |
IID_ISWbemObjectSet |