Accès à un qualificateur WMI

Un qualificateur est une balise qui fournit plus d’informations sur un objet, une méthode ou une propriété WMI. Parfois, vous devrez peut-être accéder aux données stockées dans un qualificateur. Par exemple, une tâche courante consiste à déterminer si un fournisseur implémente une méthode en tentant de récupérer le qualificateur Implémenté pour cette méthode. Pour plus d’informations, consultez Ajout d’un qualificateur et Qualificateurs WMI.

Vous pouvez récupérer les qualificateurs sur un objet WMI dans PowerShell en récupérant d’abord l’objet, puis en examinant les qualificateurs comme vous le feriez pour toute autre propriété.

Pour récupérer un qualificateur à l’aide de PowerShell

  • Récupérez l’objet dont vous souhaitez afficher les qualificateurs à l’aide de Get-WmiObject, puis accédez aux qualificateurs via la propriété Qualificateurs :

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

    Pour plus d’informations, consultez Récupération d’une partie d’une instance WMI.

Vous pouvez récupérer les qualificateurs sur un instance WMI en C# en récupérant d’abord l’objet, puis en examinant les qualificateurs en tant que collection.

Pour récupérer un qualificateur à l’aide de C# (Microsoft.System.Management)

  1. Récupérez la classe dont vous souhaitez afficher les qualificateurs en créant un objet CimInstance, à l’aide du nom de classe et de l’espace de noms spécifiés.

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

    Pour plus d’informations, consultez Récupération d’une partie d’une instance WMI.

  2. Vous pouvez récupérer les qualificateurs de classe à partir de CimInstance.CimClassQualifiers, les qualificateurs de propriété de CimInstance.CimClass.CimClassProperties et les qualificateurs de méthode de 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());
       }
    }
    

    Pour plus d’informations, consultez Récupération d’une partie d’une instance WMI.

Vous pouvez récupérer les qualificateurs sur un objet WMI en C# en récupérant d’abord l’objet, puis en examinant les qualificateurs en tant que collection.

Remarque

System.Management était l’espace de noms .NET d’origine utilisé pour accéder à WMI. Toutefois, les API de cet espace de noms sont généralement plus lentes et ne se mettent pas à l’échelle aussi bien que leurs homologues Microsoft.Management.Infrastructure plus modernes.

 

Pour récupérer un qualificateur à l’aide de C# (Microsoft.System.Management)

  1. Récupérez l’objet dont vous souhaitez afficher les qualificateurs à l’aide de ManagementObject.

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

    Pour plus d’informations, consultez Récupération d’une partie d’une instance WMI.

  2. Placez les qualificateurs dans un QualifierDataCollection et énumérez les valeurs QualifierData .

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

    Pour plus d’informations, consultez Récupération d’une partie d’une instance WMI.

La procédure suivante décrit comment récupérer un qualificateur à l’aide de VBScript.

Pour récupérer un qualificateur à l’aide de VBScript

  1. Récupérez l’objet dont vous souhaitez afficher les qualificateurs, comme illustré dans l’exemple suivant :

    Set Process = GetObject("winmgmts:Win32_Process")
    

    La méthode la plus courante pour récupérer un objet consiste à utiliser la méthode GetObject . Pour plus d’informations, consultez Récupération d’une partie d’une instance WMI.

  2. Accédez aux qualificateurs de l’objet via la propriété SWbemObject.Qualifiers_ , comme illustré dans l’exemple suivant :

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

L’exemple de code suivant décrit comment accéder à tous les qualificateurs sur un objet 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

La procédure suivante décrit comment récupérer un qualificateur à l’aide de C++.

Pour récupérer un qualificateur à l’aide de C++

  1. Récupérez l’objet dont vous souhaitez afficher les qualificateurs.

    La façon la plus courante de récupérer un objet consiste à utiliser un appel à GetObject ou GetObjectAsync. Pour plus d’informations, consultez Récupération de données de classe ou d’instance WMI.

  2. Récupérez le jeu de qualificateurs pour une propriété donnée avec un appel aux méthodes IWbemClassObject::GetPropertyQualifierSet ou IWbemClassObject::GetMethodQualifierSet .

  3. Accédez aux qualificateurs de l’objet via l’interface IWbemQualifierSet retournée.