WQL ile sorgulama
WMI Sorgu Dili (WQL), STANDART Amerikan Ulusal Standartlar Enstitüsü Yapılandırılmış Sorgu Dili'nin (ANSI SQL) WMI'yi destekleyecek küçük anlam değişiklikleri içeren bir alt kümesidir.
Desteklenen WQL anahtar sözcüklerinin tam listesi için bkz. WQL (WMI için SQL). Nesne veya özellik adları için SQL anahtar sözcükleri kullanmak sorguyu ayrıştırılmasını kısıtlayabilir. Aşağıdaki SQL anahtar sözcükleri kısıtlanmıştır: NULL, true ve FALSE .
Not
WQL sorgularında kullanılabilecek AND ve OR anahtar sözcüklerinin sayısıyla ilgili sınırlar vardır. Karmaşık bir sorguda kullanılan çok sayıda WQL anahtar sözcüğü WMI'nin WBEM_E_QUOTA_VIOLATION hata kodunu HRESULT değeri olarak döndürmesine neden olabilir. WQL anahtar sözcüklerinin sınırı, sorgunun ne kadar karmaşık olduğuna bağlıdır.
Sorgular, uzantı ve özelleştirme için WHERE yan tümcesini kullanabilir, ancak gerekli değildir. WHERE yan tümcesi bir özellik veya anahtar sözcükten, işleçten ve sabitten oluşur. Tüm WHERE yan tümceleri WQL'de bulunan önceden tanımlanmış işleçlerden birini belirtmelidir. Söz dizimi hakkında daha fazla bilgi için bkz. WHERE Yan Tümcesi. Geçerli WQL işleçleri hakkında daha fazla bilgi için bkz. WQL İşleçleri.
Diğer SQL sorgu dizelerinde olduğu gibi sorgularınızdan kaçabilirsiniz.
Note
WQL, ad alanları arası sorguları veya ilişkilendirmeleri desteklemez. Hedef bilgisayardaki tüm ad alanları içinde bulunan belirtilen sınıfın tüm örneklerini sorgulayamazsınız.
WQL aşağıdaki sorgu türlerini destekler:
Veri sorguları
Veri sorguları, sınıf örneklerini ve veri ilişkilendirmelerini almak için kullanılır. WMI betiklerinde ve uygulamalarında en yaygın kullanılan sorgu türüdür. Veri sorgularının söz dizimi hakkında daha fazla bilgi için bkz. Sınıf Örneği Verileri İsteme. İlişkilendirmeler hakkında daha fazla bilgi için bkz. Bir İlişkilendirme Sınıfı Bildirme.
Not
WQL, dizi veri türlerinin sorgularını desteklemez.
Aşağıdaki veri sorgusu örneği, tüm Win32_NTLogEventörneklerinden "Application" adlı olay günlüğü dosyasını istemektedir.
strComputer = "." Set objWMIService = GetObject("winmgmts:\\" _ & strComputer & "\root\CIMV2") Set colItems = objWMIService.ExecQuery( _ "SELECT * FROM Win32_NTLogEvent " _ & "WHERE Logfile = 'Application'",,48)
Olay sorguları
Tüketiciler, olayların bildirimini almak için kaydolmak için olay sorgularını kullanır. Olay sağlayıcıları, bir veya daha fazla olayı desteklemek üzere kaydolmak için olay sorgularını kullanır. Olay sorguları hakkında daha fazla bilgi için bkz. Olay Bildirimlerini Alma.
Aşağıdaki örnek olay sorgusu, geçici bir olay tüketicisinin Win32_NTLogEvent türetilmiş yeni bir sınıf örneği oluşturulduğunda bildirim istediğini belirtir.
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
Şema sorguları
Şema sorguları, sınıf tanımlarını (sınıf örnekleri yerine) ve şema ilişkilendirmelerini almak için kullanılır. Sınıf sağlayıcıları, kaydolduğunda destekledikleri sınıfları belirtmek için şema sorgularını kullanır. Şema sorguları hakkında daha fazla bilgi için bkz. Sınıf Tanımlarını Alma.
Aşağıdaki örnek şema sorgusu özel söz dizimini gösterir.
SELECT * FROM meta_class WHERE __this ISA "Win32_BaseService"
İlgili konular