Share via


Définition des niveaux de sécurité sur une connexion WMI

Après avoir récupéré un pointeur vers un proxy IWbemServices , vous devez définir la sécurité sur le proxy pour accéder à WMI via le proxy. Vous devez définir la sécurité, car le proxy IWbemServices accorde l’accès à un objet hors processus. En général, la sécurité COM n’autorise pas un processus à accéder à un autre processus si vous ne définissez pas les propriétés de sécurité appropriées. Pour plus d’informations, consultez Définition de la sécurité sur IWbemServices et d’autres proxys. Les connexions à différents systèmes d’exploitation nécessitent différents niveaux d’authentification et d’emprunt d’identité. Pour plus d’informations, voir Connexion à WMI sur un ordinateur distant.

Les exemples de code de cette rubrique nécessitent la compilation correcte des références et des instructions #include suivantes.

#define _WIN32_DCOM
#include <iostream>
using namespace std;
#include <wbemidl.h>
#pragma comment(lib, "wbemuuid.lib")

La procédure suivante décrit comment définir les niveaux de sécurité sur une connexion WMI.

Définition des niveaux de sécurité sur une connexion WMI

  • Définissez les niveaux de sécurité sur le proxy IWbemServices avec un appel à CoSetProxyBlanket.

    L’exemple de code suivant décrit une façon courante d’appeler 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.
        }
    

Après avoir défini les niveaux de sécurité du pointeur IWbemServices, vous pouvez accéder aux différentes fonctionnalités de WMI. Une fois que vous avez terminé d’utiliser WMI, vous devez arrêter votre application. Pour plus d’informations, consultez Nettoyage et arrêt d’une application WMI.