SWbemObjectSet.ItemIndex 메서드
ItemIndex 메서드는 컬렉션에 지정된 인덱스와 연결된 SWbemObject를 반환합니다. 인덱스는 컬렉션 내의 요소 위치를 나타냅니다. 컬렉션 번호 매기기는 0에서 시작합니다.
구문
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 메서드는 SWbemMethodSet, SWbemNamedValueSet, SWbemPrivilegeSet, SWbemPropertySet, SWbemQualifierSet와 같이 SWbemObjects를 포함하지 않는 컬렉션에서 작동하지 않습니다.
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 메서드를 사용하여 For Each 루프 사용 없이 하나의 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_SystemOperatingSystem과 같이 Win32_OperatingSystem과 연결된 인스턴스를 가져옵니다.
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 |