Skapa en anslutning till ett WMI-namnområde
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