Consulta com WQL

A WQL (Linguagem de Consulta WMI) é um subconjunto da ANSI (Linguagem de Consulta Estruturada) padrão do American National Standards Institute com pequenas alterações semânticas para dar suporte ao WMI.

Para obter uma lista completa de palavras-chave WQL com suporte, consulte WQL (SQL para WMI). O uso de palavras-chave SQL para nomes de objeto ou propriedade pode restringir a análise de uma consulta. As seguintes palavras-chave SQL são restritas: NULL, TRUE e FALSE.

Observação

Há limites para o número de palavras-chave AND e OR que podem ser usadas em consultas WQL. Um grande número de palavras-chave WQL usadas em uma consulta complexa pode fazer com que o WMI retorne o código de erro WBEM_E_QUOTA_VIOLATION como um valor HRESULT . O limite de palavras-chave WQL depende da complexidade da consulta.

 

As consultas podem usar a cláusula WHERE para extensão e personalização, embora não seja necessária. A cláusula WHERE é composta por uma propriedade ou palavra-chave, um operador e uma constante. Todas as cláusulas WHERE devem especificar um dos operadores predefinidos incluídos no WQL. Para obter mais informações sobre sintaxe, consulte a Cláusula WHERE. Para obter mais informações sobre operadores WQL válidos, consulte Operadores WQL.

Assim como acontece com outras cadeias de caracteres de consulta SQL, você pode escapar de suas consultas.

Observação

O WQL não dá suporte a consultas ou associações entre namespaces. Não é possível consultar todas as instâncias de uma classe especificada que residem em todos os namespaces no computador de destino.

 

O WQL dá suporte aos seguintes tipos de consultas:

  • Consultas de dados

    As consultas de dados são usadas para recuperar instâncias de classe e associações de dados. Eles são o tipo de consulta mais usado em scripts e aplicativos WMI. Para obter mais informações sobre a sintaxe de consultas de dados, consulte Solicitando dados da instância de classe. Para obter mais informações sobre associações, consulte Declareing an Association Class.

    Observação

    O WQL não dá suporte a consultas de tipos de dados de matriz.

     

    O exemplo de consulta de dados a seguir solicita o arquivo de log de eventos chamado "Aplicativo" de todas as instâncias do Win32_NTLogEvent.

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

    Os consumidores usam consultas de evento para se registrar para receber notificação de eventos. Os provedores de eventos usam consultas de evento para se registrar para dar suporte a um ou mais eventos. Para obter mais informações sobre consultas de evento, consulte Como receber notificações de evento.

    A consulta de evento de exemplo a seguir por um consumidor de evento temporário solicita notificação quando uma nova instância de uma classe derivada de Win32_NTLogEvent é criada.

    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

    As consultas de esquema são usadas para recuperar definições de classe (em vez de instâncias de classe) e associações de esquema. Os provedores de classe usam consultas de esquema para especificar as classes que dão suporte quando se registram. Para obter mais informações sobre consultas de esquema, consulte Recuperando definições de classe.

    A consulta de esquema de exemplo a seguir mostra a sintaxe especial.

    SELECT * FROM meta_class WHERE __this ISA "Win32_BaseService"
    

Formato de data e hora do WMI