Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Po pobraniu wskaźnika do serwera proxy IWbemServices, należy ustawić zabezpieczenia na tym serwerze proxy, aby uzyskać dostęp do WMI za jego pośrednictwem. Należy ustawić zabezpieczenia, ponieważ serwer proxy usługi IWbemServices udziela dostępu do obiektu poza procesem. Ogólnie rzecz biorąc, zabezpieczenia COM nie zezwalają jednemu procesowi na dostęp do innego procesu, jeśli nie ustawisz odpowiednich właściwości zabezpieczeń. Aby uzyskać więcej informacji, zobacz Ustawianie zabezpieczeń dla IWbemServices i innych proxy. Połączenia z różnymi systemami operacyjnymi wymagają różnych poziomów uwierzytelniania i personifikacji. Aby uzyskać dodatkowe informacje, zobacz Nawiązywanie połączenia z usługą WMI na komputerze zdalnym.
Przykłady kodu w tym temacie wymagają następujących odwołań i instrukcji #include w celu poprawnego skompilowania.
#define _WIN32_DCOM
#include <iostream>
using namespace std;
#include <wbemidl.h>
#pragma comment(lib, "wbemuuid.lib")
Poniższa procedura opisuje, jak ustawić poziomy zabezpieczeń w połączeniu WMI.
Aby ustawić poziomy zabezpieczeń na połączeniu z usługą WMI
Ustaw poziomy zabezpieczeń w serwerze proxy IWbemServices za pomocą wywołania CoSetProxyBlanket.
W poniższym przykładzie kodu opisano typowy sposób wywoływania 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 ustawieniu poziomów zabezpieczeń dla wskaźnika IWbemServices można uzyskać dostęp do różnych możliwości usługi WMI. Po zakończeniu korzystania z usługi WMI należy zamknąć aplikację. Aby uzyskać więcej informacji, zobacz Czyszczenie i zamykanie aplikacji WMI.