クラス オブジェクト パスの記述
クラス オブジェクト パスは、名前空間内のクラスの場所を示します。
次のメソッドを使用して、オブジェクト パスを指定できます。
クラスへの完全なオブジェクト パスでは、クラス名が名前空間のパスに追加されます。
次の例は、Admin という名前のサーバー上の \root\cimv2 名前空間内の Win32_LogicalDisk クラスの場所を示しています。
\\Admin\Root\CimV2:Win32_LogicalDisk
相対オブジェクト パスは、現在の名前空間に存在するクラスを表します。 クラスへの相対オブジェクト パスには、クラス名のみが含まれます。
次の例は、Win32_LogicalDisk クラスへの相対パスを示しています。
Win32_LogicalDisk
クラス名のクエリを実行してもインスタンスを指定しない場合は、WMI によってクラス定義が返されます。 次の手順では、VBScript でクラス定義を取得する方法について説明します。
VBScript でクラス定義を取得するには
モニカー接続は、クエリまたは GetObject で使用できます。 SWbemServices.Get も使用できます。
次の例は、GetObject を使用してクラス定義を取得する方法を示しています。
strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" _ & strComputer & "\root\cimv2:Win32_Printer")
次の例は、クラス定義のクエリを実行する方法を示しています。
strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" _ & strComputer & "\root\cimv2") Set colInstalledPrinters = objWMIService.ExecQuery _ ("Select * from Win32_Printer")
C++ でクラス定義を取得するには、クラス名のみを指定し、特定のインスタンスへのパスを指定しません。 次の手順では、C++ でクラス定義を取得する方法について説明します。
C++ でクラス定義を取得するには
IWbemServices::GetObject または IWbemServices::GetObjectAsync 関数を呼び出します。
次の例は、IWbemServices::GetObject 関数を呼び出す方法を示しています。
IWbemServices* pSvcs = 0; BSTR Path = SysAllocString(L"Win32_LogicalDisk"); IWbemClassObject *pDiskClass = 0; pSvcs->GetObject(Path, 0, 0, &pDiskClass, 0);
前のコード例では、正しくコンパイルするために次の #include ステートメントが必要です。
#include <wbemidl.h>