Pernyataan SELECT untuk Kueri Skema
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 Win32_LogicalDisk dan definisi 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 metode IWbemServices::GetObjectAsync dengan parameter jalur objek diatur ke "Win32_LogicalDisk".
Sampel kode VBScript berikut mengambil semua kelas anak dari kelas WMI tingkat atas. Properti sistem __Dynasty WMI 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 null. Oleh karena itu, dimungkinkan untuk mengambil kelas tingkat atas dengan mencari superclass 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")
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk