Accesso a un qualificatore WMI
Un qualificatore è un tag che fornisce altre informazioni su un oggetto WMI, un metodo o una proprietà. A volte, potrebbe essere necessario accedere ai dati archiviati in un qualificatore. Ad esempio, un'attività comune consiste nel determinare se un provider implementa un metodo tentando di recuperare il qualificatore Implementato per tale metodo. Per altre informazioni, vedere Qualificatori WMI e Aggiunta di un qualificatore.
È possibile recuperare i qualificatori in un oggetto WMI in PowerShell recuperando prima l'oggetto e quindi esaminando i qualificatori come qualsiasi altra proprietà.
Per recuperare un qualificatore tramite PowerShell
Recuperare l'oggetto i cui qualificatori si desidera visualizzare usando Get-WmiObject e quindi accedere ai qualificatori tramite la proprietà 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 }
Per altre informazioni, vedere Recupero di un'istanza WMI.
È possibile recuperare i qualificatori in un'istanza WMI in C# recuperando prima l'oggetto e quindi esaminando i qualificatori come raccolta.
Per recuperare un qualificatore usando C# (Microsoft.System.Management)
Recuperare la classe i cui qualificatori si desidera visualizzare creando un oggetto CimInstance usando il nome e lo spazio dei nomi della classe specificati.
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);
Per altre informazioni, vedere Recupero di un'istanza WMI.
È possibile recuperare i qualificatori di classe da CimInstance.CimClass.CimClassQualifiers, i qualificatori di proprietà da CimInstance.CimClass.CimClassProperties e i qualificatori di metodo da 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()); } }
Per altre informazioni, vedere Recupero di un'istanza WMI.
È possibile recuperare i qualificatori in un oggetto WMI in C# recuperando prima l'oggetto e quindi esaminando i qualificatori come raccolta.
Nota
System.Management era lo spazio dei nomi .NET originale usato per accedere a WMI. Tuttavia, le API in questo spazio dei nomi sono in genere più lente e non vengono ridimensionate anche rispetto alle controparti Microsoft.Management.Infrastructure più moderne.
Per recuperare un qualificatore usando C# (System.Management)
Recuperare l'oggetto i cui qualificatori si desidera visualizzare tramite ManagementObject.
using System.Management; ... ManagementObject myDisk = new ManagementObject("Win32_LogicalDisk.DeviceID='C:'");
Per altre informazioni, vedere Recupero di un'istanza WMI.
Inserire i qualificatori in un Oggetto QualifierDataCollection ed enumerare i valori QualifierData .
QualifierDataCollection myQualifiers = myDisk.Qualifiers; foreach (QualifierData qd in myQualifiers) { Console.WriteLine(qd.Name + ": " + qd.Value); } Console.ReadLine();
Per altre informazioni, vedere Recupero di un'istanza WMI.
La procedura seguente descrive come recuperare un qualificatore usando VBScript.
Per recuperare un qualificatore tramite VBScript
Recuperare l'oggetto i cui qualificatori si desidera visualizzare, come illustrato nell'esempio seguente:
Set Process = GetObject("winmgmts:Win32_Process")
Il modo più comune per recuperare un oggetto consiste nell'usare il metodo GetObject . Per altre informazioni, vedere Recupero di un'istanza WMI.
Accedere ai qualificatori dell'oggetto tramite la proprietà SWbemObject.Qualifiers_ , come illustrato nell'esempio seguente:
for each Qualifier in Process.Qualifiers_ WScript.Echo " " & Qualifier.Name next
Nell'esempio di codice seguente viene descritto come accedere a tutti i qualificatori in un oggetto 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 procedura seguente descrive come recuperare un qualificatore usando C++.
Per recuperare un qualificatore con C++
Recuperare l'oggetto i cui qualificatori si desidera visualizzare.
Il modo più comune per recuperare un oggetto consiste nell'usare una chiamata a GetObject o GetObjectAsync. Per altre informazioni, vedere Recupero di dati della classe WMI o dell'istanza.
Recuperare il qualificatore impostato per una determinata proprietà con una chiamata ai metodi IWbemClassObject::GetPropertyQualifierSet o IWbemClassObject::GetMethodQualifierSet.
Accedere ai qualificatori dell'oggetto tramite l'interfaccia IWbemQualifierSet restituita.