Komma åt en WMI-kvalificerare
En kvalificerare är en tagg som innehåller mer information om ett WMI-objekt, en metod eller en egenskap. Ibland kan du behöva komma åt data som lagras i en kvalificerare. En vanlig uppgift är till exempel att avgöra om en provider implementerar en metod genom att försöka hämta kvalificeraren Implementerad för den metoden. För mer information, se WMI-kvalifikatörer och Lägga till en kvalificerare.
Du kan hämta kvalificerarna för ett WMI-objekt i PowerShell genom att först hämta objektet och sedan undersöka kvalificeringarna på samma sätt som andra egenskaper.
Så här hämtar du en kvalificerare med PowerShell
Hämta objektet vars kvalificerare du vill visa med hjälp av Get-WmiObjectoch få åtkomst till kvalificerarna via egenskapen 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 }
För mer information, se Hämtning av en WMI-instans.
Du kan hämta kvalificerarna på en WMI-instans i C# genom att först hämta objektet och sedan undersöka kvalificerarna som en samling.
Hämta en kvalificerare med C# (Microsoft.System.Management)
Hämta klassen vars kvalificerare du vill visa genom att skapa ett CimInstance-objekt med det angivna klassnamnet och namnområdet.
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);
Mer information finns i Hämtning av en WMI-instans.
Du kan hämta klasskvalificerarna från CimInstance.CimClass.CimClassQualifiers, egenskapskvalificerarna från CimInstance.CimClass.CimClassPropertiesoch metodkvalificerarna från 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()); } }
Mer information finns i Hämta en WMI-instans.
Du kan hämta kvalificerarna på ett WMI-objekt i C# genom att först hämta objektet och sedan undersöka kvalificerarna som en samling.
Not
System.Management var det ursprungliga .NET-namnområdet som användes för att komma åt WMI. API:erna i det här namnområdet är dock vanligtvis långsammare och skalas inte lika bra i förhållande till deras modernare Microsoft.Management.Infrastructure motsvarigheter.
Hämta en kvalificerare med C# (System.Management)
Hämta objektet vars kvalificerare du vill visa med ManagementObject.
using System.Management; ... ManagementObject myDisk = new ManagementObject("Win32_LogicalDisk.DeviceID='C:'");
Mer information finns i Hämta en WMI-instans.
Placera kvalificerarna i QualifierDataCollectionoch gå igenom värdena för QualifierData.
QualifierDataCollection myQualifiers = myDisk.Qualifiers; foreach (QualifierData qd in myQualifiers) { Console.WriteLine(qd.Name + ": " + qd.Value); } Console.ReadLine();
Mer information finns i Hämta en WMI-instans.
Följande procedur beskriver hur du hämtar en kvalificerare med hjälp av VBScript.
Hämta en kvalificerare med VBScript
Hämta objektet vars kvalificerare du vill visa, som du ser i följande exempel:
Set Process = GetObject("winmgmts:Win32_Process")
Det vanligaste sättet att hämta ett objekt är att använda metoden GetObject. Mer information finns i Hämta en WMI-instans.
Få åtkomst till objektets kvalificerare via egenskapen SWbemObject.Qualifiers_, som du ser i följande exempel:
for each Qualifier in Process.Qualifiers_ WScript.Echo " " & Qualifier.Name next
I följande kodexempel beskrivs hur du kommer åt alla kvalificerare på ett Win32_Process objekt.
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
Följande procedur beskriver hur du hämtar en kvalificerare med hjälp av C++.
Hämta en kvalificerare med C++
Hämta objektet vars kvalificerare du vill visa.
Det vanligaste sättet att hämta ett objekt är att använda ett anrop till GetObject eller GetObjectAsync. För mer information, se Hämta WMI-klass eller instansdata.
Hämta kvalificeringsuppsättningen för en viss egenskap med ett anrop till IWbemClassObject::GetPropertyQualifierSet eller IWbemClassObject::GetMethodQualifierSet metod.
Få åtkomst till objektets kvalificerare via det returnerade IWbemQualifierSet-gränssnittet.