Beschreiben eines Klassenobjektpfads
Ein Klassenobjektpfad beschreibt den Speicherort einer Klasse in einem Namespace.
Sie können die folgenden Methoden verwenden, um einen Objektpfad anzugeben:
Ein vollständiger Objektpfad zu einer Klasse fügt den Klassennamen an einen Namespacepfad an.
Das folgende Beispiel zeigt den Speicherort der Win32 _ LogicalDisk-Klasse innerhalb des \ \ cimv2-Stammnamespace auf dem Server mit dem Namen Admin.
\\Admin\Root\CimV2:Win32_LogicalDiskEin relativer Objektpfad stellt eine Klasse dar, die sich im aktuellen Namespace befindet. Ein relativer Objektpfad zu einer Klasse enthält nur den Klassennamen.
Das folgende Beispiel zeigt den relativen Pfad zur Win32 _ LogicalDisk-Klasse.
Win32_LogicalDisk
Wenn Sie einen Klassennamen abfragen, aber keine Instanzen angeben, gibt WMI die Klassendefinition zurück. Das folgende Verfahren beschreibt das Abrufen einer Klassendefinition in VBScript.
So rufen Sie eine Klassendefinition in VBScript ab
Sie können die Monikerverbindung entweder mit einer Abfrage oder mit GetObjectverwenden. Sie können auch SWbemServices.Getverwenden.
Das folgende Beispiel zeigt, wie GetObject verwendet wird, um eine Klassendefinition abzurufen.
strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" _ & strComputer & "\root\cimv2:Win32_Printer")Das folgende Beispiel zeigt, wie eine Klassendefinition abgefragt wird.
strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" _ & strComputer & "\root\cimv2") Set colInstalledPrinters = objWMIService.ExecQuery _ ("Select * from Win32_Printer")
Sie können eine Klassendefinition in C++ abrufen, indem Sie nur den Klassennamen und keinen Pfad zu einer bestimmten Instanz angeben. Im folgenden Verfahren wird beschrieben, wie Sie eine Klassendefinition in C++ abrufen.
So rufen Sie eine Klassendefinition in C++ ab
Rufen Sie die Funktionen IWbemServices::GetObject oder IWbemServices::GetObjectAsync auf.
Das folgende Beispiel zeigt, wie die IWbemServices::GetObject-Funktion aufgerufen wird.
IWbemServices* pSvcs = 0; BSTR Path = SysAllocString(L"Win32_LogicalDisk"); IWbemClassObject *pDiskClass = 0; pSvcs->GetObject(Path, 0, 0, &pDiskClass, 0);Im vorherigen Codebeispiel muss die folgende # include-Anweisung ordnungsgemäß kompiliert werden.
#include <wbemidl.h>