Udostępnij za pośrednictwem


Opisywanie ścieżki obiektu klasy

Ścieżka obiektu klasy opisuje lokalizację klasy w przestrzeni nazw.

Aby określić ścieżkę obiektu, można użyć następujących metod:

  • Pełna ścieżka obiektu do klasy dodaje nazwę klasy do ścieżki przestrzeni nazw.

    W poniższym przykładzie pokazano lokalizację klasy Win32_LogicalDisk w przestrzeni nazw \root\cimv2 na serwerze o nazwie Admin.

    \\Admin\Root\CimV2:Win32_LogicalDisk
    
  • Ścieżka obiektu względnego reprezentuje klasę, która znajduje się w bieżącej przestrzeni nazw. Względna ścieżka obiektu do klasy zawiera tylko nazwę klasy.

    W poniższym przykładzie przedstawiono ścieżkę względną do klasy Win32_LogicalDisk.

    Win32_LogicalDisk
    

Gdy wykonujesz zapytanie o nazwę klasy, ale nie określisz żadnych wystąpień, usługa WMI zwraca definicję klasy. Poniższa procedura opisuje sposób pobierania definicji klasy w języku VBScript.

Aby pobrać definicję klasy w języku VBScript

  • Możesz użyć połączenia moniker z zapytaniem lub GetObject. Możesz również użyć SWbemServices.Get.

    W poniższym przykładzie pokazano, jak uzyskać definicję klasy przy użyciu GetObject.

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

    W poniższym przykładzie pokazano, jak wykonywać zapytania dotyczące definicji klasy.

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

Definicję klasy w języku C++ można pobrać, określając tylko nazwę klasy i bez ścieżki do określonego wystąpienia. Poniższa procedura opisuje sposób pobierania definicji klasy w języku C++.

Aby pobrać definicję klasy w języku C++

  • Wywołaj funkcję IWbemServices::GetObject lub IWbemServices::GetObjectAsync.

    W poniższym przykładzie pokazano, jak wywołać funkcjęIWbemServices::GetObject.

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

    Poprzedni przykład kodu wymaga następującej instrukcji #include w celu poprawnego skompilowania.

    #include <wbemidl.h>