Bagikan melalui


Mengkueri dengan WQL

WMI Query Language (WQL) adalah subset dari American National Standards Institute Bahasa Permintaan Terstruktur (ANSI SQL) standar dengan perubahan semantik kecil untuk mendukung WMI.

Untuk daftar lengkap kata kunci WQL yang didukung, lihat WQL (SQL untuk WMI). Menggunakan kata kunci SQL untuk nama objek atau properti dapat membatasi kueri diurai. Kata kunci SQL berikut dibatasi: NULL, TRUE, dan FALSE.

Catatan

Ada batasan jumlah kata kunci AND dan OR yang dapat digunakan dalam kueri WQL. Sejumlah besar kata kunci WQL yang digunakan dalam kueri kompleks dapat menyebabkan WMI mengembalikan kode kesalahan WBEM_E_QUOTA_VIOLATION sebagai nilai HRESULT . Batas kata kunci WQL tergantung pada seberapa kompleks kuerinya.

 

Kueri dapat menggunakan klausa WHERE untuk ekstensi dan kustomisasi, meskipun tidak diperlukan. Klausa WHERE terdiri dari properti atau kata kunci, operator, dan konstanta. Semua klausa WHERE harus menentukan salah satu operator yang telah ditentukan sebelumnya yang disertakan dalam WQL. Untuk informasi selengkapnya tentang sintaks, lihat Klausa WHERE. Untuk informasi selengkapnya tentang operator WQL yang valid, lihat Operator WQL.

Seperti halnya string kueri SQL lainnya, Anda dapat menghindari kueri Anda.

Catatan

WQL tidak mendukung kueri atau asosiasi lintas namespace layanan. Anda tidak dapat mengkueri semua instans kelas tertentu yang berada di semua namespace layanan di komputer target.

 

WQL mendukung jenis kueri berikut:

  • Kueri data

    Kueri data digunakan untuk mengambil instans kelas dan asosiasi data. Mereka adalah jenis kueri yang paling umum digunakan dalam skrip dan aplikasi WMI. Untuk informasi selengkapnya tentang sintaks kueri data, lihat Meminta Data Instans Kelas. Untuk informasi selengkapnya tentang asosiasi, lihat Mendeklarasikan Kelas Asosiasi.

    Catatan

    WQL tidak mendukung kueri jenis data array.

     

    Contoh kueri data berikut meminta file log peristiwa bernama "Aplikasi" dari semua instans Win32_NTLogEvent.

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

    Konsumen menggunakan kueri peristiwa untuk mendaftar untuk menerima pemberitahuan peristiwa. Penyedia peristiwa menggunakan kueri peristiwa untuk mendaftar untuk mendukung satu atau beberapa peristiwa. Untuk informasi selengkapnya tentang kueri peristiwa, lihat Menerima Pemberitahuan Peristiwa.

    Contoh kueri peristiwa berikut oleh pemberitahuan permintaan konsumen peristiwa sementara saat instans baru kelas yang berasal dari Win32_NTLogEvent dibuat.

    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
    
  • Kueri skema

    Kueri skema digunakan untuk mengambil definisi kelas (bukan instans kelas) dan asosiasi skema. Penyedia kelas menggunakan kueri skema untuk menentukan kelas yang mereka dukung saat mendaftar. Untuk informasi selengkapnya tentang kueri skema, lihat Mengambil Definisi Kelas.

    Contoh kueri skema berikut menunjukkan sintaks khusus.

    SELECT * FROM meta_class WHERE __this ISA "Win32_BaseService"
    

Format Tanggal dan Waktu WMI