Descrever um caminho de objeto de classe

Um caminho de objeto de classe descreve o local de uma classe em um namespace.

Você pode usar os seguintes métodos para especificar um caminho de objeto:

  • Um caminho de objeto completo para uma classe acrescenta o nome da classe a um caminho de namespace.

    O exemplo a seguir mostra o local da classe Win32_LogicalDisk no namespace \root\cimv2 no servidor chamado Admin.

    \\Admin\Root\CimV2:Win32_LogicalDisk
    
  • Um caminho de objeto relativo representa uma classe que reside no namespace atual. Um caminho de objeto relativo para uma classe contém apenas o nome da classe.

    O exemplo a seguir mostra o caminho relativo para a classe Win32_LogicalDisk.

    Win32_LogicalDisk
    

Quando você consulta um nome de classe, mas não especifica instâncias, o WMI retorna a definição da classe. O procedimento a seguir descreve como recuperar uma definição de classe no VBScript.

Para recuperar uma definição de classe no VBScript

  • Você pode usar a conexão do moniker com uma consulta ou GetObject. Também é possível usar SWbemServices.Get.

    O exemplo a seguir mostra como usar GetObject para obter uma definição de classe.

    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
       & "{impersonationLevel=impersonate}!\\" _
       & strComputer & "\root\cimv2:Win32_Printer")
    

    O exemplo a seguir mostra como consultar uma definição de classe.

    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" _
        & strComputer & "\root\cimv2")
    Set colInstalledPrinters =  objWMIService.ExecQuery _
        ("Select * from Win32_Printer")
    

Você pode recuperar uma definição de classe no C++ especificando apenas o nome da classe e nenhum caminho para uma instância específica. O procedimento a seguir descreve como recuperar uma definição de classe no C++.

Para recuperar uma definição de classe no C++

  • Faça uma chamada para as funções IWbemServices::GetObject ou IWbemServices::GetObjectAsync.

    O exemplo a seguir mostra como chamar a função IWbemServices::GetObject.

    IWbemServices* pSvcs = 0;
    
    BSTR Path = SysAllocString(L"Win32_LogicalDisk");
    IWbemClassObject *pDiskClass = 0;
    pSvcs->GetObject(Path, 0, 0, &pDiskClass, 0);
    

    O exemplo de código anterior requer a instrução #include a seguir para compilar corretamente.

    #include <wbemidl.h>