Bagikan melalui


Mengakses kualifikasi WMI

Kualifikasi adalah tag yang menyediakan informasi selengkapnya 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 tersebut. Untuk informasi selengkapnya, lihat Pengkualifikasi 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 mengambil kualifikasi menggunakan PowerShell

  • Ambil objek yang kualifikasinya ingin Anda lihat 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 kualifikasi menggunakan C# (Microsoft.System.Management)

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

  2. 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 mengambil kualifikasi pada objek WMI di C# dengan terlebih dahulu mengambil objek, lalu memeriksa kualifikasi sebagai koleksi.

Catatan

System.Management adalah namespace .NET asli yang digunakan untuk mengakses WMI; namun, API di namespace layanan ini umumnya lebih lambat dan tidak menskalakan juga relatif terhadap mitra Microsoft.Management.Infrastructure yang lebih modern.

 

Untuk mengambil kualifikasi menggunakan C# (System.Management)

  1. Ambil objek yang kualifikasinya ingin Anda lihat menggunakan ManagementObject.

    using System.Management;
    ...
    ManagementObject myDisk = new ManagementObject("Win32_LogicalDisk.DeviceID='C:'");
    

    Untuk informasi selengkapnya, lihat Mengambil Instans WMI.

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

  1. 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 metode GetObject. Untuk informasi selengkapnya, lihat Mengambil Instans WMI.

  2. 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 mengambil kualifikasi menggunakan C++.

Untuk mengambil kualifikasi menggunakan C++

  1. Ambil objek yang kualifikasinya 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.

  2. Ambil set kualifikasi untuk properti tertentu dengan panggilan ke metode IWbemClassObject::GetPropertyQualifierSet atau IWbemClassObject::GetMethodQualifierSet.

  3. Akses kualifikasi objek melalui antarmuka IWbemQualifierSet yang dikembalikan.