Delen via


Toegang tot een WMI-kwalificatie

Een kwalificator is een label dat meer informatie geeft over een WMI-object, -methode of -eigenschap. Soms moet u mogelijk toegang krijgen tot de gegevens die zijn opgeslagen in een kwalificatie. Een veelvoorkomende taak is bijvoorbeeld om te bepalen of een provider een methode implementeert door te proberen de geïmplementeerde kwalificatie voor die methode op te halen. Zie WMI Kwalificatie en Een kwalificatietoevoegen voor meer informatie.

U kunt de kwalificaties van een WMI-object in PowerShell ophalen door eerst het object op te halen en vervolgens de kwalificaties te onderzoeken zoals u dat met elke andere eigenschap zou doen.

Een kwalificatie ophalen met behulp van PowerShell

  • Haal het object op waarvan u de kwalificaties wilt weergeven met behulp van Get-WmiObjecten open vervolgens de kwalificaties via de eigenschap Kwalificatie:

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

    Zie Een WMI-exemplaar ophalenvoor meer informatie.

U kunt de kwalificaties voor een WMI-exemplaar in C# ophalen door eerst het object op te halen en vervolgens de kwalificaties als een verzameling te onderzoeken.

Een kwalificator ophalen met C# (Microsoft.System.Management)

  1. Haal de klasse op waarvan u de kwalificaties wilt weergeven door een CimInstance-object te maken met behulp van de opgegeven klassenaam en naamruimte.

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

    Zie Een WMI-exemplaar ophalenvoor meer informatie.

  2. U kunt de klassekwalificaties ophalen uit de CimInstance.CimClass.CimClassQualifiers, de eigenschapskwalificaties van CimInstance.CimClass.CimClassPropertiesen de methodekwalificaties van 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());
       }
    }
    

    Zie Een WMI-exemplaar ophalenvoor meer informatie.

U kunt de kwalificaties voor een WMI-object in C# ophalen door eerst het object op te halen en vervolgens de kwalificaties als een verzameling te onderzoeken.

Notitie

System.Management was de oorspronkelijke .NET-naamruimte die wordt gebruikt voor toegang tot WMI; De API's in deze naamruimte zijn over het algemeen echter langzamer en worden niet zo goed geschaald ten opzichte van hun modernere Microsoft.Management.Infrastructure tegenhangers.

 

Een kwalificatie ophalen met C# (System.Management)

  1. Haal het object op waarvan u de kwalificaties wilt weergeven met behulp van ManagementObject.

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

    Zie Een WMI-exemplaar ophalenvoor meer informatie.

  2. Plaats de kwalificaties in een QualifierDataCollectionen inventariseer de QualifierData waarden.

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

    Zie Een WMI-exemplaar ophalenvoor meer informatie.

In de volgende procedure wordt beschreven hoe u een kwalificatie ophaalt met behulp van VBScript.

Een kwalificeerder ophalen met behulp van VBScript

  1. Haal het object op waarvan u de kwalificaties wilt weergeven, zoals wordt weergegeven in het volgende voorbeeld:

    Set Process = GetObject("winmgmts:Win32_Process")
    

    De meest voorkomende manier om een object op te halen, is met behulp van de methode GetObject. Zie Een WMI-exemplaar ophalenvoor meer informatie.

  2. Open de kwalificaties van het object via de eigenschap SWbemObject.Qualifiers_, zoals wordt weergegeven in het volgende voorbeeld:

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

In het volgende codevoorbeeld wordt beschreven hoe u toegang hebt tot alle kwalificaties voor een Win32_Process-object.

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

In de volgende procedure wordt beschreven hoe u een kwalificatie ophaalt met C++.

Een kwalificatie ophalen met behulp van C++

  1. Haal het object op waarvan u de kwalificaties wilt bekijken.

    De meest voorkomende manier om een object op te halen is door een aanroep te gebruiken voor GetObject- of GetObjectAsync-. Zie WMI-klasse of instantiegegevens ophalenvoor meer informatie.

  2. Haal de kwalificatieset voor een bepaalde eigenschap op met een aanroep naar IWbemClassObject::GetPropertyQualifierSet of IWbemClassObject::GetMethodQualifierSet methoden.

  3. Open de kwalificaties van het object via de geretourneerde IWbemQualifierSet interface.