Nastavení úrovní zabezpečení u připojení rozhraní WMI
Po načtení ukazatele na IWbemServices proxy musíte nastavit zabezpečení na proxy serveru pro přístup k rozhraní WMI prostřednictvím proxy serveru. Zabezpečení musíte nastavit, protože IWbemServices proxy uděluje přístup k objektu mimo proces. Obecně platí, že zabezpečení modelu COM neumožňuje, aby jeden proces přistupoval k jinému procesu, pokud nenastavíte správné vlastnosti zabezpečení. Další informace naleznete v tématu Nastavení zabezpečení pro služby IWbemServices a další proxy servery. Připojení k různým operačním systémům vyžadují různé úrovně ověřování a zosobnění. Další informace naleznete v tématu Připojení k rozhraní WMI na vzdáleném počítači.
Příklady kódu v tomto tématu vyžadují ke správné kompilaci následující odkazy a příkazy #include.
#define _WIN32_DCOM
#include <iostream>
using namespace std;
#include <wbemidl.h>
#pragma comment(lib, "wbemuuid.lib")
Následující postup popisuje, jak nastavit úrovně zabezpečení připojení rozhraní WMI.
Nastavení úrovní zabezpečení pro připojení rozhraní WMI
Nastavte úrovně zabezpečení pro proxy IWbemServices pomocí volání funkce CoSetProxyBlanket.
Následující příklad kódu popisuje běžný způsob volání 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. }
Po nastavení úrovní zabezpečení pro ukazatel IWbemServices můžete získat přístup k různým funkcím rozhraní WMI. Po dokončení používání rozhraní WMI je nutné aplikaci vypnout. Další informace naleznete v tématu Čištění a vypnutí aplikace rozhraní WMI.