Настройка уровней безопасности для 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.