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 im Namespace „\root\cimv2“ auf dem Server namens „Admin“.
\\Admin\Root\CimV2:Win32_LogicalDisk
Ein 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. Im folgenden Verfahren wird beschrieben, wie Sie eine Klassendefinition in VBScript abrufen.
So rufen Sie eine Klassendefinition in VBScript ab
Sie können die Monikerverbindung entweder mit einer Abfrage oder mit GetObject verwenden. Sie können auch SWbemServices.Get verwenden.
Das folgende Beispiel zeigt, wie GetObject zum Abrufen einer Klassendefinition verwendet wird.
strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" _ & strComputer & "\root\cimv2:Win32_Printer")
Das folgende Beispiel zeigt, wie Sie eine Klassendefinition abfragen.
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.
Im folgenden Beispiel wird gezeigt, wie Sie die Funktion IWbemServices::GetObject aufrufen.
IWbemServices* pSvcs = 0; BSTR Path = SysAllocString(L"Win32_LogicalDisk"); IWbemClassObject *pDiskClass = 0; pSvcs->GetObject(Path, 0, 0, &pDiskClass, 0);
Für das vorherige Codebeispiel ist die folgende #include-Anweisung erforderlich, damit der Code ordnungsgemäß kompiliert wird.
#include <wbemidl.h>