SWbemObjectSet.Count 속성

SWbemObjectSet 개체의 Count 속성을 사용하여 SWbemObjectSet 컬렉션에 있는 항목 수를 확인합니다. 이 속성은 읽기 전용입니다.

이 구문에 대한 설명은 스크립팅 API의 문서 규칙을 참조하세요.

이 속성은 읽기 전용입니다.

구문

SWbemObjectSet.Count As Integer

속성 값

설명

Count를 사용할 때 주의해야 할 한 가지는 WMI가 컬렉션에 있는 항목 수의 집계를 유지하지 않는다는 것입니다. 컬렉션에 대한 Count를 요청하는 경우 WMI는 숫자로 즉시 응답할 수 없습니다. 그 대신 전체 컬렉션을 열거하여 항목을 문자 그대로 계산해야 합니다. 서비스와 같이 항목이 비교적 적은 컬렉션의 경우 이 열거형은 1초 미만이 소요될 수 있습니다. 그러나 이벤트 로그 컬렉션의 이벤트 수를 계산하려면 훨씬 더 오래 걸릴 수 있습니다.

그런 다음 컬렉션의 모든 이벤트에 대한 속성 값을 표시하려 한다고 가정해 봅니다. 이 경우 WMI는 전체 컬렉션을 다시 열거해야 합니다.

참고

지정된 플래그에 wbemFlagForwardOnly 플래그가 포함된 메서드에서 반환되는 SWbemObjectSet 개체에서 이 속성을 가져오는 경우 wbemErrFailed 오류가 발생합니다.

예제

대부분의 경우 SWbemObjectSet로 수행할 유일한 작업은 컬렉션 자체에 포함된 모든 개체를 열거하는 것입니다. 그러나 Count를 사용하면 시스템 관리 스크립팅에 유용할 수 있습니다. 이름에서 알 수 있듯이 Count는 컬렉션에 있는 항목 수를 알려줍니다. 예를 들어 이 스크립트는 컴퓨터에 설치된 모든 서비스의 컬렉션을 검색한 다음 찾은 총 서비스 수를 에코합니다.

strComputer = "."
Set objSWbemServices = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colSWbemObjectSet = objSWbemServices.InstancesOf("Win32_Service")
Wscript.Echo "Services installed on target computer: " & colSWbemObjectSet.Count

Count는 컴퓨터에서 특정 인스턴스를 사용할 수 있는지 여부를 알려줄 수 있으므로 유용합니다. 예를 들어 이 스크립트는 컴퓨터에서 이름이 W3SVC인 모든 서비스의 컬렉션을 검색합니다. Count가 0이고 컬렉션에 인스턴스가 없는 것이 유효한 경우 이는 W3SVC 서비스가 컴퓨터에 설치되어 있지 않음을 의미합니다.

strComputer = "."
Set objSWbemServices = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colSWbemObjectSet = objSWbemServices.ExecQuery _
    ("SELECT * FROM Win32_Service WHERE Name='w3svc'")
If colSWbemObjectSet.Count = 0 Then
    Wscript.Echo "W3SVC service is not installed on target computer."
Else
    For Each objSWbemObject In colSWbemObjectSet
        ' Perform task on World Wide Web Publishing service.
    Next
End If

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows Vista
지원되는 최소 서버
Windows Server 2008
헤더
Wbemdisp.h
유형 라이브러리
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemObjectSet
IID
IID_ISWbemObjectSet