クラス オブジェクト パスの記述

クラス オブジェクト パスは、名前空間内のクラスの場所を示します。

次のメソッドを使用して、オブジェクト パスを指定できます。

  • クラスへの完全なオブジェクト パスでは、クラス名が名前空間のパスに追加されます。

    次の例は、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>