Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
После того как вы получите указатель на прокси-сервер 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.