Melakukan kueri dengan WQL

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

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

Nota

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 kueri.

 

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 sintaksis, lihat Where Clause. Untuk informasi selengkapnya tentang operator WQL yang valid, lihat Operator WQL.

Seperti halnya string kueri SQL lainnya, Anda dapat menggunakan karakter escape dalam kueri Anda.

Nota

WQL tidak mendukung kueri atau asosiasi lintas namespace. Anda tidak dapat meminta data untuk semua instans dari kelas tertentu yang berada di semua namespace pada 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.

    Nota

    WQL tidak mendukung kueri tipe 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 acara menggunakan kueri acara untuk mendaftarkan diri guna mendukung satu atau beberapa acara. Untuk informasi selengkapnya tentang kueri peristiwa, lihat Menerima Pemberitahuan Peristiwa.

    Kueri contoh peristiwa berikut dari konsumen peristiwa sementara meminta pemberitahuan ketika instans baru dari 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