Aracılığıyla paylaş


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"
    

WMI Tarih ve Saat Biçimi