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.AssociatorsOf、SWbemServices.ReferencesTo、SWbemServices.InstancesOf 或 SWbemServices.ExecQuery 等查询会返回 SWbemObjectSet 集合。 ItemIndex 方法不适用于没有包含 SWbemObject 的集合,例如 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 代码示例演示如何在不使用 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 |
标头 |
|
类型库 |
|
DLL |
|
CLSID |
CLSID_SWbemObjectSet |
IID |
IID_ISWbemObjectSet |