Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şema veri sorguları, veri sorguları için buna benzer bir söz dizimi ile SELECT deyimini kullanır. Fark, sorguyu şema sorgusu olarak tanımlayan "meta_class" adlı özel bir sınıfın kullanılmasıdır.
Aşağıdaki örnek, geçerli ad alanı içindeki tüm sınıf tanımlarını istemektedir.
SELECT * FROM meta_class
Şema sorguları yalnızca "*" öğesini destekler. Bir sağlayıcı, döndürülen tanımların kapsamını daraltmak için belirli bir sınıfı belirten bir WHERE yan tümcesi ekleyebilir.
Aşağıdaki örnekte, belirli bir sınıfı belirtmek için WHERE yan tümcesinin nasıl ekleneceği gösterilmektedir.
SELECT * FROM meta_class WHERE __this ISA "Win32_LogicalDisk"
__this adlı özel özellik, şema sorgusu için hedef sınıfı tanımlar. ISA işlecinin hedef sınıfın alt sınıfları için tanım istemek üzere __this özelliğiyle kullanılması gerektiğini unutmayın. Yukarıdaki sorgu, Win32_LogicalDisk sınıfının tanımını ve tüm alt sınıflarının tanımlarını döndürür.
Aşağıdaki örnekte, __Class sistem özelliği kullanılarak tek bir sınıf için sınıf tanımının nasıl istendiği gösterilmektedir.
SELECT * FROM meta_class WHERE __Class = "Win32_LogicalDisk"
Bu sorgu, nesne yolu parametresi "Win32_LogicalDisk" olarak ayarlanmış IWbemServices::GetObject veya IWbemServices::GetObjectAsync yöntemini çağırmaya eşdeğerdir.
Aşağıdaki VBScript kod örneği, bir üst düzey WMI sınıfının tüm alt sınıflarını alır. __Dynasty WMI sistem özelliği, bir sınıfın türetildiği en üst düzey sınıfın adını tutar ve bu sınıfı da dahil olmak üzere bir üst düzey sınıftan türetilen bir ad alanında tüm sınıfları almak için kullanabilirsiniz.
' 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
Aşağıdaki VBScript, bir WMI sınıfı için anlık alt sınıfları alır.
' 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
Aşağıdaki VBScript en üst düzey sınıfları alır. WMI ad alanında tüm üst düzey sınıflar için __Superclass sistem özelliği Null olur. Bu nedenle, bir Null üst sınıf arayarak en üst düzey sınıfları almak mümkündür.
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")