다음을 통해 공유


WQL을 사용하여 쿼리

WQL(WMI 쿼리 언어)은 WMI를 지원하기 위해 약간 의미 체계가 변경된 표준 미국 국립 표준 연구소 ANSI SQL(정형 쿼리 언어)의 하위 집합입니다.

지원되는 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 날짜 및 시간 형식