Options d'accès distant et de connexion
Les opérations de gestion peuvent être effectuées de façon transparente sur l'ordinateur local ou sur un ordinateur distant. Pour accéder à des objets de gestion sur un ordinateur distant, l'utilisateur doit établir une connexion initiale à cet ordinateur. Une connexion est représentée par un objet ManagementScope. Par défaut, l'objet portée (Scope) est lié à l'ordinateur local et à l'espace de noms système root\cimv2, mais vous pouvez modifier ce paramètre en spécifiant un ordinateur particulier et éventuellement un espace de noms WMI différent pour la portée. De plus, en vous connectant à l'ordinateur à distance, vous pouvez spécifier des informations d'authentification pour un utilisateur autre que celui qui conduit la session en cours, et les opérations sur cet ordinateur distant seront effectuées dans le contexte de l'utilisateur spécifié. Ceci peut s'effectuer à l'aide d'un objet ConnectionOptions. L'exemple de code suivant établit une connexion à un ordinateur distant en employant un compte d'utilisateur différent :
using System;
using System.Management;
public class RemoteConnect {
public static void Main() {
//Build an options object for the connection
ConnectionOptions options = new ConnectionOptions();
options.Username = "User1";
options.Password = "MyPassword";
//Make a connection to a remote computer using these options
ManagementScope scope = new ManagementScope("\\\\Server1\\root\\cimv2", options);
scope.Connect();
}
}
Le service d'accès distant de System.Management utilise DCOM comme mécanisme d'accès distant sous-jacent. L'objet ConnectionOptions contrôle également les niveaux d'emprunt d'identité et d'authentification utilisés par WMI dans les opérations DCOM à distance. Les paramètres par défaut de ces niveaux sont, respectivement, ImpersonationLevel.Impersonate et AuthenticationLevel.Unchanged.
AuthenticationLevel.Unchanged signifie que le client adopte par défaut les exigences d'authentification du serveur, à l'aide du processus de négociation DCOM standard. Sous Windows 2000 et ses versions antérieures, le service WMI demande l'authentification au niveau de la connexion, tandis que sous Windows XP et ses versions ultérieures, il demande l'authentification au niveau des paquets. Si le client requiert un paramètre d'authentification spécifique, la propriété d'authentification sur l'objet ConnectionOptions peut être utilisée pour contrôler le niveau d'authentification sur cette connexion particulière.
ImpersonationLevel.Impersonate signifie que le client permet au fournisseur de données WMI d'emprunter son identité lors de la collecte des informations requises. Ce paramètre par défaut est intéressant lorsque le fournisseur est un service ou une application d'un niveau de confiance suffisant, car il évite au fournisseur d'avoir à effectuer des contrôles d'identité et d'accès explicites lors de l'extraction d'informations pour ce client. Cependant, si pour une raison quelconque l'application instrumentée ou le fournisseur spécifiés ne sont pas d'un niveau de confiance suffisant, la possibilité d'emprunter l'identité du client pourrait constituer une menace pour la sécurité. Dans ce cas, il est recommandé que l'application cliente remplace le niveau d'emprunt d'identité par une valeur inférieure, telle que ImpersonationLevel.Identify. Notez que cela peut entraîner une incapacité à accéder aux informations de certains fournisseurs, tels que ceux qui n'effectuent pas de contrôles d'accès ou ne disposent pas des autorisations suffisantes dans leur propre contexte d'exécution pour extraire les informations requises.
Voir aussi
Accès aux informations de gestion avec System.Management | Extraction de collections d'objets de gestion | Soumission de requêtes pour obtenir des informations de gestion | Abonnement à des événements de gestion et consommation de ces événements | Exécution de méthodes sur des objets de gestion | Utilisation d'objets fortement typés