Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Kueri data skema menggunakan pernyataan SELECT dengan sintaks yang mirip dengan kueri data . Perbedaannya adalah penggunaan kelas khusus yang disebut "meta_class", yang mengidentifikasi kueri sebagai kueri skema.
Contoh berikut meminta semua definisi kelas yang berada dalam namespace saat ini.
SELECT * FROM meta_class
Kueri skema hanya mendukung "*". Untuk mempersempit cakupan definisi yang dikembalikan, penyedia dapat menambahkan klausa WHERE yang menentukan kelas tertentu.
Contoh berikut menunjukkan cara menambahkan klausa WHERE untuk menentukan kelas tertentu.
SELECT * FROM meta_class WHERE __this ISA "Win32_LogicalDisk"
Properti khusus yang disebut __this mengidentifikasi kelas target untuk kueri skema. Perhatikan bahwa operator ISA harus digunakan dengan properti __this untuk meminta definisi untuk subkelas kelas target. Kueri sebelumnya mengembalikan definisi untuk kelas dan definisi Win32_LogicalDisk untuk semua subkelasnya.
Contoh berikut menunjukkan cara meminta definisi kelas untuk satu kelas dengan menggunakan properti sistem __Class.
SELECT * FROM meta_class WHERE __Class = "Win32_LogicalDisk"
Kueri ini setara dengan memanggil metode IWbemServices::GetObject atau IWbemServices::GetObjectAsync dengan parameter jalur objek diatur ke "Win32_LogicalDisk".
Sampel kode VBScript berikut mengambil semua kelas turunan dari kelas WMI tingkat atas. Properti sistem WMI __Dynasty menyimpan nama kelas tingkat atas tempat kelas diturunkan, yang dapat Anda gunakan untuk mengambil semua kelas di namespace yang berasal dari kelas tingkat atas, termasuk kelas tersebut.
' Retrieve immediate child classes for Cim_DataFile
Set objWmi = GetObject ("winmgmts:root\cimv2")
Set colClasses = objWmi.ExecQuery _
("Select * From meta_class " _
& "Where __Dynasty = 'Win32_CurrentTime'")
For Each objClass In colClasses
WScript.Echo objClass.SystemProperties_("__Class")
Next
VBScript berikut mengambil kelas turunan langsung untuk kelas WMI.
' Retrieve immediate child classes for Cim_DataFile
Set objWmi = GetObject ("winmgmts:root\cimv2")
Set colClasses = objWmi.ExecQuery _
("Select * From meta_class " _
& "Where __Superclass = 'Cim_DataFile'")
For Each objClass In colClasses
WScript.Echo objClass.SystemProperties_("__Class")
Next
VBScript berikut mengambil kelas tingkat atas. Untuk semua kelas tingkat atas di namespace layanan WMI, properti sistem __Superclass adalah Null. Oleh karena itu, dimungkinkan untuk mengambil kelas tingkat atas dengan mencari superkelas Null.
Retrieve top level classes in root\cimv2
Set objWmi = GetObject ("winmgmts:root\cimv2")
Set colClasses = objWmi.ExecQuery _
("Select * From meta_class Where __Superclass Is Null")
For Each objClass In colClasses
WScript.Echo objClass.SystemProperties_("__Class")