Como consultar com a WQL
A linguagem WQL é um subconjunto do ANSI SQL (American National Standards Institute Structured Query Language) com alterações semânticas secundárias para dar suporte ao WMI.
Para obter uma lista completa de palavras-chave da WQL com suporte, confira WQL (SQL para WMI). O uso de palavras-chave do SQL para nomes de objeto ou propriedade pode restringir a análise de uma consulta. As seguintes palavras-chave do SQL são restritas: NULL, TRUE e FALSE.
Observação
Existem limites no número de palavras-chave AND e OR que podem ser usadas nas consultas WQL. Um grande número de palavras-chave da 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ário. 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 na WQL. Para obter mais informações sobre sintaxe, confira Cláusula WHERE. Para obter mais informações sobre operadores WQL válidos, confira Operadores WQL.
Assim como acontece com outras cadeias de caracteres de consulta SQL, você pode escapar das consultas.
Observação
A WQL não dá suporte a consultas ou associações entre namespaces. Você não pode consultar todas as instâncias de uma classe especificada que residem em todos os namespaces no computador de destino.
A WQL é compatível com os seguintes tipos de migração:
Consultas de dados
As consultas de dados são usadas para recuperar instâncias de classe e associações de dados. Elas são o tipo de consulta mais usado em scripts e aplicativos do WMI. Para obter mais informações sobre a sintaxe de consultas de dados, confira Como solicitar dados da instância de classe. Para obter mais informações sobre associações, confira Como declarar uma classe de associação.
Observação
A 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" em 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 eventos
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, confira Como receber notificações de eventos.
A seguinte consulta de evento de exemplo de 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, confira Como recuperar 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"
Tópicos relacionados