Описание пути к объекту класса

Путь к объекту класса описывает расположение класса в пространстве имен.

Для указания пути к объекту можно использовать следующие методы:

  • Полный путь к объекту к классу добавляет имя класса в путь к пространству имен.

    В следующем примере показано расположение класса Win32_LogicalDisk в пространстве имен \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::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>