SWbemObjectSet.ItemIndex 方法

ItemIndex 方法将与指定索引关联的 SWbemObject 返回到集合中。 索引指示元素在集合中的位置。 集合编号从零开始。

语法

objWbemObject = .ItemIndex( _
  ByVal lIndex _
)

parameters

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 方法不适用于没有包含 SWbemObject 的集合,例如 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 代码示例演示如何在不使用 For Each 循环的情况下使用 ItemIndex 方法访问 Win32_OperatingSystem。

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