Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Prvním krokem při připojování k rozhraní WMI je nastavení volání modelu COM pro CoInitializeEx a CoInitializeSecurity.
Příklady kódu v tomto tématu vyžadují následující odkazy a příkazy #include, aby se správně zkompilovaly.
#define _WIN32_DCOM
#include <iostream>
using namespace std;
#include <wbemidl.h>
#pragma comment(lib, "wbemuuid.lib")
Následující postup popisuje, jak inicializovat com z klientské aplikace.
Inicializovat model COM z klientské aplikace
Inicializujte COM s voláním CoInitializeEx.
Volání CoInitializeEx je standardní postup pro nastavení rozhraní COM. Rozhraní WMI proto nevyžaduje splnění žádných dodatečných postupů při volání CoInitializeEx. Další informace naleznete v tématu COM.
Následující příklad kódu popisuje, jak volat CoInitializeEx.
HRESULT hr; hr = CoInitializeEx(0, COINIT_MULTITHREADED); if (FAILED(hr)) { cout << "Failed to initialize COM library. Error code = 0x" << hex << hr << endl; return hr; }Nastavte obecné úrovně zabezpečení COM voláním rozhraní CoInitializeSecurity.
CoInitializeSecurity je standardní funkce, kterou musíte volat při nastavování rozhraní modelu COM pro proces. Pokud chcete nastavit výchozí nastavení zabezpečení pro ověřování, zosobnění nebo ověřovací službu pro celý proces, zavolejte CoInitializeSecurity. Další informace naleznete v tématu Nastavení zabezpečení procesu klientské aplikace. Pokud chcete nastavit nebo změnit zabezpečení pro konkrétní proxy server, musíte volat CoSetProxyBlanket. Použijte CoSetProxyBlanket vždy, když musíte nastavit nebo změnit zabezpečení modelu COM při spuštění uvnitř jiného procesu, kde nemůžete řídit výchozí nastavení zabezpečení pro ověřování, zosobnění nebo ověřovací službu. Další informace najdete v tématu Nastavení úrovní zabezpečení pro připojení k rozhraní WMI a Nastavení zabezpečení pro IWbemServices a další proxy servery.
Rozhraní WMI má několik problémů se zabezpečením, o které byste měli vědět při programování klientské aplikace rozhraní WMI. Další informace naleznete v tématu Nastavení zabezpečení procesu klientské aplikace.
Následující příklad kódu popisuje, jak volat CoInitializeSecurity a nastavit zabezpečení modelu COM v procesu.
hr = CoInitializeSecurity( NULL, // Security descriptor -1, // COM negotiates authentication service NULL, // Authentication services NULL, // Reserved RPC_C_AUTHN_LEVEL_DEFAULT, // Default authentication level for proxies RPC_C_IMP_LEVEL_IMPERSONATE, // Default Impersonation level for proxies NULL, // Authentication info EOAC_NONE, // Additional capabilities of the client or server NULL); // Reserved if (FAILED(hr)) { cout << "Failed to initialize security. Error code = 0x" << hex << hr << endl; CoUninitialize(); return hr; // Program has failed. }
Po inicializaci COM je dalším krokem vytvoření připojení k oboru názvů rozhraní WMI. Další informace naleznete v tématu Vytvoření připojení k oboru názvů WMI.
Související témata