Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A primeira etapa para se conectar ao WMI é configurar as chamadas COM para CoInitializeEx e CoInitializeSecurity.
Os exemplos de código neste tópico exigem as seguintes referências e instruções #include para compilar corretamente.
#define _WIN32_DCOM
#include <iostream>
using namespace std;
#include <wbemidl.h>
#pragma comment(lib, "wbemuuid.lib")
O procedimento a seguir descreve como inicializar COM de um aplicativo cliente.
Para inicializar o COM a partir de um aplicativo cliente
Inicialize o COM com uma chamada para CoInitializeEx.
Chamar CoInitializeEx é um procedimento padrão para configurar uma interface COM. Portanto, o WMI não exige que você observe quaisquer procedimentos adicionais ao chamar CoInitializeEx. Para obter mais informações, consulte COM.
O exemplo de código a seguir descreve como chamar 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; }Defina os níveis gerais de segurança COM com uma chamada para a interface CoInitializeSecurity.
CoInitializeSecurity é uma função padrão que você deve chamar ao configurar uma interface COM para um processo. Chame CoInitializeSecurity se quiser definir as configurações de segurança padrão para autenticação, representação ou serviço de autenticação para um processo inteiro. Para obter mais informações, consulte Setting Client Application Process Security. Se você quiser definir ou alterar a segurança para um proxy específico, você deve chamar CoSetProxyBlanket. Use CoSetProxyBlanket sempre que precisar definir ou alterar a segurança COM ao executar dentro de outro processo em que não seja possível controlar as configurações de segurança padrão para autenticação, representação ou serviço de autenticação. Para obter mais informações, consulte Configuração dos níveis de segurança numa conexão WMI e Configuração da segurança em IWbemServices e outros proxies.
O WMI tem vários problemas de segurança que você deve estar ciente ao programar um aplicativo cliente WMI. Para obter mais informações, consulte Configuração de Segurança do Processo da Aplicação do Cliente.
O exemplo de código a seguir descreve como chamar CoInitializeSecurity para definir a segurança COM no processo.
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. }
Depois de inicializar o COM, sua próxima etapa é criar uma conexão com um namespace WMI. Para obter mais informações, consulte Criando uma conexão com um namespace WMI.
Tópicos relacionados