描述类对象路径

类对象路径描述类在命名空间中的位置。

可使用以下方法指定对象路径:

  • 类的完整对象路径将类名追加到命名空间路径。

    以下示例显示了 Win32_LogicalDisk 类在名为 Admin 的服务器上的 \root\cimv2 命名空间中的位置。

    \\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::GetObjectIWbemServices::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>