De beveiligingsniveaus voor een WMI-verbinding instellen
Nadat u een aanwijzer naar een IWbemServices proxy hebt opgehaald, moet u de beveiliging voor de proxy instellen voor toegang tot WMI via de proxy. U moet de beveiliging instellen omdat de IWbemServices proxy toegang verleent tot een out-of-process-object. In het algemeen staat COM-beveiliging het ene proces niet toe om toegang te krijgen tot een ander proces als u niet de juiste beveiligingseigenschappen instelt. Zie voor meer informatie Beveiliging instellen op IWbemServices en andere proxies. Verbindingen met verschillende besturingssystemen vereisen verschillende niveaus van verificatie en imitatie. Zie Verbinding maken met WMI op een externe computervoor meer informatie.
De codevoorbeelden in dit onderwerp vereisen de volgende verwijzingen en #include instructies om correct te compileren.
#define _WIN32_DCOM
#include <iostream>
using namespace std;
#include <wbemidl.h>
#pragma comment(lib, "wbemuuid.lib")
In de volgende procedure wordt beschreven hoe u de beveiligingsniveaus voor een WMI-verbinding instelt.
De beveiligingsniveaus instellen op een WMI-verbinding
Stel de beveiligingsniveaus op de IWbemServices proxy in met een aanroep naar CoSetProxyBlanket.
In het volgende codevoorbeeld wordt een algemene manier beschreven voor het aanroepen van CoSetProxyBlanket.
HRESULT hres; IWbemServices *pSvc = 0; IWbemLocator *pLoc = 0; // Set the proxy so that impersonation of the client occurs. hres = CoSetProxyBlanket(pSvc, RPC_C_AUTHN_WINNT, RPC_C_AUTHZ_NONE, NULL, RPC_C_AUTHN_LEVEL_CALL, RPC_C_IMP_LEVEL_IMPERSONATE, NULL, EOAC_NONE ); if (FAILED(hres)) { cout << "Could not set proxy blanket. Error code = 0x" << hex << hres << endl; pSvc->Release(); pLoc->Release(); CoUninitialize(); return hres; // Program has failed. }
Nadat u de beveiligingsniveaus voor uw IWbemServices aanwijzer hebt ingesteld, hebt u toegang tot de verschillende mogelijkheden van WMI. Nadat u WMI hebt gebruikt, moet u uw toepassing afsluiten. Zie Een WMI-toepassing opschonen en afsluitenvoor meer informatie.