Impostazione dei livelli di sicurezza in una connessione WMI
Dopo aver recuperato un puntatore a un proxy IWbemServices , è necessario impostare la sicurezza nel proxy per accedere a WMI tramite il proxy. È necessario impostare la sicurezza perché il proxy IWbemServices concede l'accesso a un oggetto out-of-process. 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 altre informazioni, vedere Impostazione della sicurezza in IWbemServices e altri proxy. Le connessioni a sistemi operativi diversi richiedono diversi livelli di autenticazione e rappresentazione. Per altre informazioni, vedere Connessione a WMI in 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.
Per impostare i livelli di sicurezza in una connessione WMI
Impostare i livelli di sicurezza nel 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 altre informazioni, vedere Pulizia e arresto di un'applicazione WMI.