Consulta con WQL

El lenguaje de consulta de WMI (WQL) es un subconjunto del Lenguaje de consulta estructurado del American National Standards Institute (ANSI SQL) estándar que incluye cambios semánticos mínimos para poder usarlo con WMI.

Para obtener una lista completa de las palabras clave WQL admitidas, vea WQL (SQL para WMI). El uso de palabras clave SQL para nombres de objeto o propiedad puede restringir el análisis de una consulta. Estas palabras clave SQL están restringidas: NULL, TRUE y FALSE.

Nota

Existe un límite en el número de palabras clave AND y OR que pueden usarse en las consultas WQL. Un gran número de palabras clave WQL usadas en una consulta compleja puede hacer que WMI devuelva el código de error WBEM_E_QUOTA_VIOLATION como valor HRESULT. El límite de palabras clave WQL que pueda usarse dependerá de la complejidad de la consulta.

 

Las consultas pueden usar la cláusula WHERE para la extensión y la personalización, aunque no es necesario. La cláusula WHERE se compone de una propiedad o palabra clave, un operador y una constante. Todas las cláusulas WHERE deben especificar uno de los operadores predefinidos que se incluyen en WQL. Para obtener más información sobre la sintaxis, vea Cláusula WHERE (WMI). Para obtener más información sobre los operadores WQL válidos, vea Operadores WQL.

Al igual que con otras cadenas de consulta SQL, puede salir de las consultas.

Nota

WQL no admite consultas o asociaciones entre espacios de nombres. No puede consultar todas las instancias de una clase especificada que reside en todos los espacios de nombres del equipo de destino.

 

WQL admite estos tipos de consultas:

  • Consultas de datos

    Las consultas de datos se usan para recuperar las instancias de clase y las asociaciones de datos. Son el tipo de consulta más usado en scripts y aplicaciones WMI. Para obtener más información sobre la sintaxis de las consultas de datos, vea Solicitud de datos de instancia de clase. Para obtener más información sobre las asociaciones, vea Declaración de una clase de asociación.

    Nota

    WQL no admite consultas de tipos de datos de matriz.

     

    En el ejemplo de consulta de datos siguiente se solicita el archivo de registro de eventos denominado "Application" de todas las instancias de Win32_NTLogEvent.

    strComputer = "." 
    Set objWMIService = GetObject("winmgmts:\\" _
        & strComputer & "\root\CIMV2") 
    Set colItems = objWMIService.ExecQuery( _
        "SELECT * FROM Win32_NTLogEvent " _
        & "WHERE Logfile = 'Application'",,48)
    
  • Consultas de eventos

    Los consumidores usan consultas de eventos con el fin de registrarse para recibir notificaciones de eventos. Los proveedores de eventos usan consultas de eventos para registrarse para admitir uno o varios eventos. Para obtener más información sobre las consultas de eventos, vea Recepción de notificaciones de eventos.

    Esta consulta de eventos de ejemplo por parte de un consumidor de eventos temporal solicita una notificación cuando se crea una instancia nueva de una clase derivada de 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
    
  • Consultas de esquema

    Las consultas de esquema se usan para recuperar definiciones de clase (en lugar de instancias de clase) y asociaciones de esquema. Los proveedores de clases usan consultas de esquema para especificar las clases que admiten cuando se registran. Para obtener más información sobre las consultas de esquema, vea Recuperación de definiciones de clase.

    Esta consulta de esquema de ejemplo muestra la sintaxis especial.

    SELECT * FROM meta_class WHERE __this ISA "Win32_BaseService"
    

Formato de fecha y hora