Share via


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.AssociatorsOfSWbemServices.ReferencesToSWbemServices.InstancesOfSWbemServices.ExecQuery 會傳回 SWbemObjectSet 集合。 ItemIndex方法不適用於不包含SWbemObjects 的集合,例如SWbemMethodSetSWbemNamedValueSetSWbemPrivilegeSetSWbemPropertySetSWbemQualifierSet

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
標頭
Wbemdisp.h
類型程式庫
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemObjectSet
IID
IID_ISWbemObjectSet

另請參閱

SWbemObjectSet