Sdílet prostřednictvím


Přístup k kvalifikátoru rozhraní WMI

Kvalifikátor je značka, která poskytuje další informace o objektu, metodě nebo vlastnosti rozhraní WMI. Někdy může být potřeba získat přístup k datům uloženým v kvalifikátoru. Například běžným úkolem je určit, jestli zprostředkovatel implementuje metodu pokusem o načtení kvalifikátoru Implementovaného pro tuto metodu. Další informace naleznete v tématu Kvalifikátory rozhraní WMI a Přidání kvalifikátoru.

Kvalifikátory objektu WMI v PowerShellu můžete načíst tak, že nejprve načtete objekt a pak prozkoumáte kvalifikátory stejně jako jakoukoli jinou vlastnost.

Načtení kvalifikátoru pomocí PowerShellu

  • Načtěte objekt, jehož kvalifikátory chcete zobrazit pomocí Get-WmiObject, a poté k jejich zobrazení přistupovat prostřednictvím vlastnosti Qualifiers.

    $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 }
    

    Další informace naleznete v tématu Načtení instance rozhraní WMI.

Kvalifikátory v instanci služby WMI v jazyce C# můžete načíst nejprve načtením objektu a následným prozkoumáním kvalifikátorů jako kolekce.

Načtení kvalifikátoru pomocí jazyka C# (Microsoft.System.Management)

  1. Načtěte třídu, jejíž kvalifikátory chcete zobrazit vytvořením objektu CimInstance pomocí zadaného názvu třídy a oboru názvů.

    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);
    

    Další informace naleznete v části Jak načíst instanci rozhraní WMI.

  2. Kvalifikátory třídy můžete načíst z CimInstance.CimClass.CimClassQualifiers, kvalifikátory vlastnosti z CimInstance.CimClass.CimClassPropertiesa kvalifikátory metody z 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());
       }
    }
    

    Další informace naleznete v tématu Načtení instance rozhraní WMI.

Kvalifikátory u objektu WMI v jazyce C# můžete načíst tak, že nejprve načtete objekt a pak prozkoumáte kvalifikátory jako kolekci.

Poznámka

System.Management byl původní obor názvů .NET používaný pro přístup k rozhraní WMI; rozhraní API v tomto oboru názvů jsou však obecně pomalejší a neškálují se tak dobře v porovnání s modernějšími Microsoft.Management.Infrastructure protějšky.

 

Načtení kvalifikátoru pomocí v jazyce C# (System.Management)

  1. Pomocí ManagementObjectnačtěte objekt, jehož kvalifikátory chcete zobrazit.

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

    Další informace naleznete v části Načtení instance rozhraní WMI.

  2. Umístěte kvalifikátory do QualifierDataCollection, a projděte hodnoty QualifierData.

    
    QualifierDataCollection myQualifiers = myDisk.Qualifiers;
    foreach (QualifierData qd in myQualifiers)
    {
       Console.WriteLine(qd.Name + ": " + qd.Value);
    }
    Console.ReadLine();
    

    Další informace naleznete v tématu Načtení instance rozhraní WMI.

Následující postup popisuje, jak načíst kvalifikátor pomocí jazyka VBScript.

Načtení kvalifikátoru pomocí jazyka VBScript

  1. Načtěte objekt, jehož kvalifikátory chcete zobrazit, jak je znázorněno v následujícím příkladu:

    Set Process = GetObject("winmgmts:Win32_Process")
    

    Nejběžnější způsob, jak načíst objekt, je metoda GetObject. Další informace naleznete v části Načtení instance WMI.

  2. Přistupte ke kvalifikátorům objektu prostřednictvím vlastnosti SWbemObject.Qualifiers_, jak je znázorněno v následujícím příkladu:

    for each Qualifier in Process.Qualifiers_
        WScript.Echo " " & Qualifier.Name
    next
    

Následující příklad kódu popisuje, jak získat přístup ke všem kvalifikátorům objektu 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

Následující postup popisuje, jak načíst kvalifikátor pomocí jazyka C++.

Načtení kvalifikátoru pomocí jazyka C++

  1. Získejte objekt, jehož kvalifikátory chcete zobrazit.

    Nejběžnější způsob načtení objektu je voláním GetObject nebo GetObjectAsync. Podrobnosti viz Načítání dat třídy WMI nebo dat instance.

  2. Načtěte sadu kvalifikátorů pro danou vlastnost voláním metod IWbemClassObject::GetPropertyQualifierSet nebo IWbemClassObject::GetMethodQualifierSet.

  3. Přistupte ke kvalifikátorům objektu prostřednictvím vráceného rozhraní IWbemQualifierSet.