Création d’une connexion à un espace de noms WMI
Une fois que vous avez défini les appels standard sur COM, vous devez vous connecter à WMI via un appel à la méthode IWbemLocator::ConnectServer . La méthode ConnectServer retourne un proxy d’une interface IWbemServices . Grâce à IWbemServices, vous pouvez accéder aux différentes fonctionnalités de WMI.
Les exemples de code de cette rubrique nécessitent la compilation correcte des références et des instructions #include suivantes.
#define _WIN32_DCOM
#include <iostream>
using namespace std;
#include <windows.h>
#include <wbemidl.h>
#pragma comment(lib, "wbemuuid.lib")
La procédure suivante décrit comment créer une connexion à un espace de noms WMI.
Créez une connexion à un espace de noms WMI
Initialisez l’interface IWbemLocator via un appel à CoCreateInstance.
WMI ne nécessite pas d’effectuer de procédures supplémentaires lors de l’appel de CoCreateInstance sur IWbemLocator.
L’exemple de code suivant décrit comment initialiser IWbemLocator.
IWbemLocator *pLoc = 0; HRESULT hr; hr = CoCreateInstance(CLSID_WbemLocator, 0, CLSCTX_INPROC_SERVER, IID_IWbemLocator, (LPVOID *) &pLoc); if (FAILED(hr)) { cout << "Failed to create IWbemLocator object. Err code = 0x" << hex << hr << endl; CoUninitialize(); return hr; // Program has failed. }
Connectez-vous à WMI via un appel à la méthode IWbemLocator::ConnectServer .
La méthode ConnectServer renvoie un proxy à une interface IWbemServices qui utilise pour accéder à l’espace de noms WMI local ou distant spécifié dans votre appel à ConnectServer.
L’exemple de code suivant décrit comment appeler ConnectServer.
IWbemServices *pSvc = 0; // Connect to the root\default namespace with the current user. hr = pLoc->ConnectServer( BSTR(L"ROOT\\DEFAULT"), //namespace NULL, // User name NULL, // User password 0, // Locale NULL, // Security flags 0, // Authority 0, // Context object &pSvc); // IWbemServices proxy if (FAILED(hr)) { cout << "Could not connect. Error code = 0x" << hex << hr << endl; pLoc->Release(); CoUninitialize(); return hr; // Program has failed. } cout << "Connected to WMI" << endl;
Une fois que vous avez reçu un pointeur vers le proxy IWbemServices , vous devez définir la sécurité sur le proxy pour accéder à WMI. Pour plus d’informations, consultez Définition des niveaux de sécurité sur une connexion WMI.
Rubriques connexes
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour