Настройка уровней безопасности для WMI-подключения

После получения указателя на прокси-сервер IWbemServices необходимо настроить безопасность на прокси-сервере для доступа к WMI через прокси-сервер. Необходимо задать безопасность, так как прокси-сервер IWbemServices предоставляет доступ к внепроцессным объектам. Как правило, безопасность COM не позволяет одному процессу получить доступ к другому процессу, если не заданы соответствующие свойства безопасности. Дополнительные сведения см. в разделе Настройка безопасности для IWbemServices и других прокси-серверов. Для подключений к разным операционным системам требуются различные уровни проверки подлинности и олицетворения. Дополнительные сведения см. в разделе Подключение к WMI на удаленном компьютере.

Для правильной компиляции примеров кода в этом разделе требуются следующие ссылки и инструкции #include.

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

В следующей процедуре описывается, как задать уровни безопасности для WMI-подключения.

Установка уровней безопасности для WMI-подключения

  • Задайте уровни безопасности на прокси-сервере IWbemServices с помощью вызова CoSetProxyBlanket.

    В следующем примере кода описывается распространенный способ вызова 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.
        }
    

После установки уровней безопасности для указателя IWbemServices можно получить доступ к различным возможностям инструментария WMI. Завершив использование инструментария WMI, необходимо завершить работу приложения. Дополнительные сведения см. в разделе Очистка и завершение работы приложения WMI.