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 |
헤더 |
|
유형 라이브러리 |
|
DLL |
|
CLSID |
CLSID_SWbemObjectSet |
IID |
IID_ISWbemObjectSet |