Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Det första steget vid anslutning till WMI är att konfigurera COM-anropen till CoInitializeEx och CoInitializeSecurity.
Kodexemplen i det här avsnittet kräver följande referenser och #include-instruktioner för att kompilera korrekt.
#define _WIN32_DCOM
#include <iostream>
using namespace std;
#include <wbemidl.h>
#pragma comment(lib, "wbemuuid.lib")
Följande procedur beskriver hur du initierar COM från ett klientprogram.
Initiera COM från ett klientprogram
Initiera COM med ett anrop till CoInitializeEx.
Att anropa CoInitializeEx är en standardprocedur för att konfigurera ett COM-gränssnitt. Därför kräver WMI inte att du observerar några ytterligare procedurer när du anropar CoInitializeEx. Mer information finns i COM.
I följande kodexempel beskrivs hur du anropar 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; }Ange de allmänna COM-säkerhetsnivåerna med ett anrop till gränssnittet CoInitializeSecurity.
CoInitializeSecurity är en standardfunktion som du måste anropa när du konfigurerar ett COM-gränssnitt för en process. Anropa CoInitializeSecurity om du vill ange standardsäkerhetsinställningarna för autentisering, personifiering eller autentiseringstjänst för en hel process. Mer information finns i Ställa in klientprogramprocesssäkerhet. Om du vill ange eller ändra säkerheten för en specifik proxy måste du anropa CoSetProxyBlanket. Använd CoSetProxyBlanket när du måste ange eller ändra COM-säkerhet när du körs i en annan process där du inte kan styra standardsäkerhetsinställningarna för autentisering, personifiering eller autentiseringstjänst. Mer information finns i Ställa in säkerhetsnivåerna för en WMI-anslutning och Ställa in säkerhet på IWbemServices och andra proxyservrar.
WMI har flera säkerhetsproblem som du bör känna till när du programmerar ett WMI-klientprogram. Mer information finns i Ställa in klientprogramprocesssäkerhet.
I följande kodexempel beskrivs hur du anropar CoInitializeSecurity för att ange COM-säkerhet i processen.
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. }
När du har initierat COM är nästa steg att skapa en anslutning till ett WMI-namnområde. Mer information finns i Skapa en anslutning till ett WMI-namnområde.
Relaterade ämnen