Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
När du har angett standardanropen till COM måste du sedan ansluta till WMI via ett anrop till metoden IWbemLocator::ConnectServer. Metoden ConnectServer returnerar en proxy för ett IWbemServices--gränssnitt. Via IWbemServiceskan du komma åt de olika funktionerna i WMI.
Kodexemplen i det här avsnittet kräver följande referenser och #include-instruktioner för att kompilera korrekt.
#define _WIN32_DCOM
#include <iostream>
using namespace std;
#include <windows.h>
#include <wbemidl.h>
#pragma comment(lib, "wbemuuid.lib")
Följande procedur beskriver hur du skapar en anslutning till ett WMI-namnområde.
Skapa en anslutning till ett WMI-namnområde
Initiera gränssnittet IWbemLocator via ett anrop till CoCreateInstance.
WMI kräver inte att du utför några ytterligare procedurer när du anropar CoCreateInstance på IWbemLocator.
I följande kodexempel beskrivs hur du initierar IWbemLocator.
IWbemLocator *pLoc = 0; HRESULT hr; hr = CoCreateInstance(CLSID_WbemLocator, 0, CLSCTX_INPROC_SERVER, IID_IWbemLocator, (LPVOID *) &pLoc); if (FAILED(hr)) { cout << "Failed to create IWbemLocator object. Err code = 0x" << hex << hr << endl; CoUninitialize(); return hr; // Program has failed. }Anslut till WMI via ett anrop till metoden IWbemLocator::ConnectServer.
Metoden ConnectServer returnerar en proxy till ett IWbemServices--gränssnitt som används för att komma åt det lokala eller fjärranslutna WMI-namnområdet som anges i ditt anrop till ConnectServer.
I följande kodexempel beskrivs hur du anropar ConnectServer.
IWbemServices *pSvc = 0; // Connect to the root\default namespace with the current user. hr = pLoc->ConnectServer( BSTR(L"ROOT\\DEFAULT"), //namespace NULL, // User name NULL, // User password 0, // Locale NULL, // Security flags 0, // Authority 0, // Context object &pSvc); // IWbemServices proxy if (FAILED(hr)) { cout << "Could not connect. Error code = 0x" << hex << hr << endl; pLoc->Release(); CoUninitialize(); return hr; // Program has failed. } cout << "Connected to WMI" << endl;
När du har fått en pekare till IWbemServices proxy måste du ange säkerheten på proxyn för åtkomst till WMI. Mer information finns i Ställa in säkerhetsnivåerna för en WMI-anslutning.
Relaterade ämnen