Mengakses kualifikasi WMI
Qualifier adalah tag yang memberikan informasi lebih lanjut tentang objek, metode, atau properti WMI. Terkadang, Anda mungkin perlu mengakses data yang disimpan dalam kualifikasi. Misalnya, tugas umum adalah menentukan apakah penyedia menerapkan metode dengan mencoba mengambil kualifikasi yang Diimplementasikan untuk metode itu. Untuk informasi selengkapnya, lihat Kualifikasi WMI dan Menambahkan Kualifikasi.
Anda dapat mengambil kualifikasi pada objek WMI di PowerShell dengan terlebih dahulu mengambil objek, lalu memeriksa kualifikasi seperti yang Anda lakukan pada properti lain.
Untuk mendapatkan kualifikasi menggunakan PowerShell
Ambil objek yang ingin Anda lihat kualifikasinya menggunakan Get-WmiObject, lalu akses kualifikasi melalui properti Kualifikasi:
$myDisk = get-wmiObject Win32_LogicalDisk $myDisk.qualifiers #or get-wmiObject Win32_LogicalDisk | format-list qualifiers #or $myDisk = get-wmiObject Win32_LogicalDisk foreach ($qual in $myDisk.Qualifiers) { $qual }
Untuk informasi selengkapnya, lihat Mengambil Instans WMI.
Anda dapat mengambil kualifikasi pada instans WMI di C# dengan terlebih dahulu mengambil objek, lalu memeriksa kualifikasi sebagai koleksi.
Untuk mengambil atribut menggunakan C# (Microsoft.System.Management)
Ambil kelas yang kualifikasinya ingin Anda lihat dengan membuat objek CimInstance, menggunakan nama kelas dan namespace yang ditentukan.
using Microsoft.Management.Infrastructure; ... CimSession mySession = CimSession.Create("localhost"); CimInstance diskDrive = new CimInstance(className, Namespace); diskDrive.CimInstanceProperties.Add(CimProperty.Create("DeviceID", "C:", CimFlags.Key)); CimInstance myDrive = mySession.GetInstance(Namespace, diskDrive);
Untuk informasi selengkapnya, lihat Mengambil Instans WMI.
Anda dapat mengambil kualifikasi kelas dari CimInstance.CimClass.CimClassQualifiers, kualifikasi properti dari CimInstance.CimClass.CimClassProperties, dan kualifikasi metode dari CimInstance.CimClass.CimClassMethods.
Console.WriteLine("Class: " + myDrive.ToString()); foreach (CimQualifier qualifier in myDrive.CimClass.CimClassQualifiers) { Console.WriteLine(" " + qualifier.Name.ToString() + ": " + qualifier.Value.ToString()); } foreach (CimPropertyDeclaration property in myDrive.CimClass.CimClassProperties) { Console.WriteLine(property.Name.ToString()); foreach (CimQualifier qualifier in property.Qualifiers) { Console.WriteLine(" " + qualifier.Name.ToString() + ": " + qualifier.Value.ToString()); } } foreach (CimMethodDeclaration method in myDrive.CimClass.CimClassMethods) { Console.WriteLine(method.Name.ToString()); foreach (CimQualifier qualifier in method.Qualifiers) { Console.WriteLine(" " + qualifier.Name.ToString() + ": " + qualifier.Value.ToString()); } }
Untuk informasi selengkapnya, lihat Mengambil Instans WMI.
Anda dapat mendapatkan kualifikasi pada objek WMI di C# dengan terlebih dahulu mendapatkan objek tersebut, lalu memeriksa kualifikasinya dalam bentuk koleksi.
Nota
System.Management adalah namespace .NET asli yang digunakan untuk mengakses WMI; namun, API di namespace ini umumnya lebih lambat dan tidak menskalakan sebaik mitra Microsoft.Management.Infrastructure yang lebih modern.
Untuk mengambil kualifikasi menggunakan C# (System.Management)
Ambil objek yang kualifikasinya ingin Anda lihat menggunakan ManagementObject.
using System.Management; ... ManagementObject myDisk = new ManagementObject("Win32_LogicalDisk.DeviceID='C:'");
Untuk informasi selengkapnya, lihat Memperoleh Instans WMI.
Tempatkan kualifikasi ke dalam QualifierDataCollection, dan hitung melalui nilai QualifierData.
QualifierDataCollection myQualifiers = myDisk.Qualifiers; foreach (QualifierData qd in myQualifiers) { Console.WriteLine(qd.Name + ": " + qd.Value); } Console.ReadLine();
Untuk informasi selengkapnya, lihat Mengambil Instans WMI.
Prosedur berikut menjelaskan cara mengambil kualifikasi menggunakan VBScript.
Untuk mengambil kualifikasi menggunakan VBScript
Ambil objek yang kualifikasinya ingin Anda lihat, seperti yang diperlihatkan dalam contoh berikut:
Set Process = GetObject("winmgmts:Win32_Process")
Cara paling umum untuk mengambil objek adalah dengan menggunakan metodeGetObject. Untuk informasi selengkapnya, lihat Mengakses Instans WMI.
Akses kualifikasi objek melalui properti SWbemObject.Qualifiers_, seperti yang diperlihatkan dalam contoh berikut:
for each Qualifier in Process.Qualifiers_ WScript.Echo " " & Qualifier.Name next
Contoh kode berikut menjelaskan cara mengakses semua kualifikasi pada objek Win32_Process.
On Error Resume Next
Set Process = GetObject("winmgmts:Win32_Process")
WScript.Echo ""
WScript.Echo "Class name is", Process.Path_.Class
'Get the qualifiers
WScript.Echo ""
WScript.Echo "Qualifiers:"
WScript.Echo ""
for each Qualifier in Process.Qualifiers_
WScript.Echo " " & Qualifier.Name
next
if Err <> 0 Then
WScript.Echo Err.Description
Err.Clear
End if
Prosedur berikut menjelaskan cara mengakses penentu menggunakan C++.
Untuk mengakses qualifier menggunakan C++
Ambil objek yang atributnya ingin Anda lihat.
Cara paling umum untuk mengambil objek adalah dengan menggunakan panggilan ke GetObject atau GetObjectAsync. Untuk informasi selengkapnya, lihat Mengambil Kelas WMI atau Data Instans.
Ambil set kualifikasi untuk properti tertentu dengan memanggil IWbemClassObject::GetPropertyQualifierSet atau metode-metode IWbemClassObject::GetMethodQualifierSet.
Akses kualifikasi objek melalui antarmuka IWbemQualifierSet yang dikembalikan.