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.