WQL을 사용하여 쿼리

WQL(WMI 쿼리 언어)은 WMI를 지원하기 위해 의미 체계가 약간 변경된 표준 ANSI SQL(American National Standards Institute Structured Query Language)의 하위 집합입니다.

지원되는 WQL 키워드의 전체 목록은 WQL(WMI용 SQL)을 참조하세요. 개체 또는 속성 이름에 SQL 키워드를 사용하면 쿼리 구문 분석이 제한될 수 있습니다. 제한되는 SQL 키워드는 NULL, TRUEFALSE입니다.

참고

WQL 쿼리에 사용할 수 있는 AND 및 OR 키워드의 수에는 제한이 있습니다. 복잡한 쿼리에 사용되는 WQL 키워드가 많으면 WMI가 WBEM_E_QUOTA_VIOLATION 오류 코드를 HRESULT 값으로 반환할 수 있습니다. WQL 키워드의 제한은 쿼리가 얼마나 복잡한지에 따라 달라집니다.

 

쿼리는 필수는 아니지만 확장 및 사용자 지정에 WHERE 절을 사용할 수 있습니다. WHERE 절은 속성 또는 키워드, 연산자 및 상수로 구성됩니다. 모든 WHERE 절은 WQL에 포함된 사전 정의 연산자 중 하나를 지정해야 합니다. 구문에 관한 자세한 내용은 WHERE 절을 참조하세요. 유효한 WQL 연산자에 관한 자세한 내용은 WQL 연산자를 참조하세요.

다른 SQL 쿼리 문자열처럼 쿼리를 이스케이프할 수 있습니다.

참고

WQL은 네임스페이스 간 쿼리 또는 연결을 지원하지 않습니다. 대상 컴퓨터의 모든 네임스페이스에 있는 지정 클래스의 일부 인스턴스만 쿼리할 수 있습니다.

 

WQL에서 지원하는 쿼리 유형은 다음과 같습니다.

  • 데이터 쿼리

    데이터 쿼리는 클래스 인스턴스 및 데이터 연결을 검색하는 데 사용됩니다. WMI 스크립트 및 애플리케이션에서 가장 일반적으로 사용되는 쿼리 유형입니다. 데이터 쿼리 구문에 관한 자세한 내용은 클래스 인스턴스 데이터 요청을 참조하세요. 연결에 관한 자세한 내용은 연결 클래스 선언을 참조하세요.

    참고

    WQL은 배열 데이터 형식의 쿼리를 지원하지 않습니다.

     

    다음 데이터 쿼리 예제에서는 모든 Win32_NTLogEvent 인스턴스에서 "Application"이라는 이벤트 로그 파일을 요청합니다.

    strComputer = "." 
    Set objWMIService = GetObject("winmgmts:\\" _
        & strComputer & "\root\CIMV2") 
    Set colItems = objWMIService.ExecQuery( _
        "SELECT * FROM Win32_NTLogEvent " _
        & "WHERE Logfile = 'Application'",,48)
    
  • 이벤트 쿼리

    소비자는 이벤트 쿼리를 사용해 등록하고 이벤트 알림을 받습니다. 이벤트 공급자는 이벤트 쿼리를 사용하여 하나 이상의 이벤트를 지원하도록 등록합니다. 이벤트 쿼리에 관한 자세한 내용은 이벤트 알림 받기를 참조하세요.

    임시 이벤트 소비자에 의한 다음 예제 이벤트 쿼리는 Win32_NTLogEvent에서 파생된 클래스의 새 인스턴스가 만들어지면 알림을 요청합니다.

    strComputer = "." 
    Set objWMIService = GetObject("winmgmts:\\" _
        & strComputer & "\root\CIMV2") 
    Set objEvents = objWMIService.ExecNotificationQuery _
    ("SELECT * FROM __InstanceModificationEvent WITHIN 10 WHERE " & _
        "TargetInstance ISA 'Win32_Service'" & _
        " AND TargetInstance._Class = 'win32_TerminalService'")
    
    i = TRUE
    Do While i = TRUE
        Set strReceivedEvent = objEvents.NextEvent
    
        'report an event
        Wscript.Echo "An event has occurred."
    Loop
    
  • 스키마 쿼리

    스키마 쿼리는 클래스 정의(클래스 인스턴스 아님)와 스키마 연결을 검색하는 데 사용됩니다. 클래스 공급자는 스키마 쿼리를 사용하여 등록할 때 지원하는 클래스를 지정합니다. 스키마 쿼리에 관한 자세한 내용은 클래스 정의 검색을 참조하세요.

    다음 예제 스키마 쿼리는 특수 구문을 보여줍니다.

    SELECT * FROM meta_class WHERE __this ISA "Win32_BaseService"
    

WMI 날짜 및 시간 형식