Impostazione dei livelli di sicurezza in una connessione WMI
Dopo aver recuperato un puntatore a un proxy IWbemServices, è necessario impostare la sicurezza sul proxy per accedere a WMI tramite il proxy. È necessario impostare la sicurezza perché il proxy IWbemServices concede l'accesso a un oggetto fuori dal processo. In generale, la sicurezza COM non consente a un processo di accedere a un altro processo se non si impostano le proprietà di sicurezza appropriate. Per ulteriori informazioni, vedere Configurazione della sicurezza su IWbemServices e altri proxy. Le connessioni a sistemi operativi diversi richiedono diversi livelli di autenticazione e impersonificazione. Per altre informazioni, vedere Connessione a WMI su un computer remoto.
Gli esempi di codice in questo argomento richiedono i riferimenti seguenti e le istruzioni #include per la compilazione corretta.
#define _WIN32_DCOM
#include <iostream>
using namespace std;
#include <wbemidl.h>
#pragma comment(lib, "wbemuuid.lib")
La procedura seguente descrive come impostare i livelli di sicurezza in una connessione WMI.
Impostare i livelli di sicurezza in una connessione WMI
Imposta i livelli di sicurezza sul proxy IWbemServices con una chiamata a CoSetProxyBlanket.
Nell'esempio di codice seguente viene descritto un modo comune per chiamare 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. }
Dopo aver impostato i livelli di sicurezza per il puntatore IWbemServices, è possibile accedere alle varie funzionalità di WMI. Al termine dell'uso di WMI, è necessario arrestare l'applicazione. Per ulteriori informazioni, vedere Pulizia e spegnimento di un'applicazione WMI.