ConnectionOptions.Impersonation Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient ou définit le niveau d'emprunt d'identité COM à utiliser pour les opérations au cours de cette connexion.
public:
property System::Management::ImpersonationLevel Impersonation { System::Management::ImpersonationLevel get(); void set(System::Management::ImpersonationLevel value); };
public System.Management.ImpersonationLevel Impersonation { get; set; }
member this.Impersonation : System.Management.ImpersonationLevel with get, set
Public Property Impersonation As ImpersonationLevel
Valeur de propriété
Retourne une valeur d'énumération ImpersonationLevel qui indique le niveau d'emprunt d'identité utilisé pour la connexion à WMI.
Exemples
L’exemple suivant se connecte à un ordinateur distant et affiche des informations sur le système d’exploitation sur l’ordinateur distant. Un ConnectionOptions est créé pour se connecter à l’ordinateur distant avec les options de connexion souhaitées.
using System;
using System.Management;
public class RemoteConnect
{
public static void Main()
{
// Build an options object for the remote connection
// if you plan to connect to the remote
// computer with a different user name
// and password than the one you are currently using.
// This example uses the default values.
ConnectionOptions options =
new ConnectionOptions();
options.Impersonation =
System.Management.ImpersonationLevel.Impersonate;
// Make a connection to a remote computer.
// Replace the "FullComputerName" section of the
// string "\\\\FullComputerName\\root\\cimv2" with
// the full computer name or IP address of the
// remote computer.
ManagementScope scope =
new ManagementScope(
"\\\\FullComputerName\\root\\cimv2", options);
scope.Connect();
//Query system for Operating System information
ObjectQuery query = new ObjectQuery(
"SELECT * FROM Win32_OperatingSystem");
ManagementObjectSearcher searcher =
new ManagementObjectSearcher(scope,query);
ManagementObjectCollection queryCollection = searcher.Get();
foreach ( ManagementObject m in queryCollection)
{
// Display the remote computer information
Console.WriteLine("Computer Name : {0}",
m["csname"]);
Console.WriteLine("Windows Directory : {0}",
m["WindowsDirectory"]);
Console.WriteLine("Operating System: {0}",
m["Caption"]);
Console.WriteLine("Version: {0}", m["Version"]);
Console.WriteLine("Manufacturer : {0}",
m["Manufacturer"]);
}
}
}
Imports System.Management
Public Class RemoteConnect
Public Overloads Shared Function Main( _
ByVal args() As String) As Integer
' Build an options object for the remote connection
' if you plan to connect to the remote
' computer with a different user name
' and password than the one you are currently using
Dim options As ConnectionOptions
options = New ConnectionOptions
options.Impersonation = 3
' System.Management.ImpersonationLevel.Impersonate = 3
' Make a connection to a remote computer.
' Replace the "FullComputerName" section of the
' string "\\FullComputerName\root\cimv2" with
' the full computer name or IP address of the
' remote computer.
Dim scope As ManagementScope
scope = New ManagementScope( _
"\\FullComputerName\root\cimv2", options)
scope.Connect()
' Query system for Operating System information
Dim query As ObjectQuery
query = New ObjectQuery( _
"SELECT * FROM Win32_OperatingSystem")
Dim searcher As ManagementObjectSearcher
searcher = _
New ManagementObjectSearcher(scope, query)
Dim queryCollection As ManagementObjectCollection
queryCollection = searcher.Get()
Dim m As ManagementObject
For Each m In queryCollection
' Display the remote computer information
Console.WriteLine("Computer Name : {0}", _
m("csname"))
Console.WriteLine("Windows Directory : {0}", _
m("WindowsDirectory"))
Console.WriteLine("Operating System: {0}", _
m("Caption"))
Console.WriteLine("Version: {0}", m("Version"))
Console.WriteLine("Manufacturer : {0}", _
m("Manufacturer"))
Next
Return 0
End Function
End Class
Remarques
Le ImpersonationLevel.Impersonate paramètre est avantageux lorsque le fournisseur est une application ou un service approuvé. Il élimine la nécessité pour le fournisseur d’effectuer des vérifications d’identité et d’accès client pour les opérations demandées. Toutefois, si, pour une raison quelconque, le fournisseur ne peut pas être approuvé, le fait de lui permettre d’emprunter l’identité du client peut constituer une menace de sécurité. Dans ce cas, nous recommandons que cette propriété soit définie par le client sur une valeur inférieure, telle que ImpersonationLevel.Identify. Notez que cela peut entraîner l’échec d’exécution des opérations demandées par le fournisseur, faute d’autorisations suffisantes ou d’incapacité à effectuer des vérifications d’accès.
Valeur de propriété
Niveau d’emprunt d’identité COM à utiliser pour les opérations dans cette connexion. La valeur par défaut est ImpersonationLevel.Impersonate, ce qui indique que le fournisseur WMI peut emprunter l’identité du client lors de l’exécution des opérations demandées dans cette connexion.
Sécurité du .NET Framework
Confiance totale accordée à l'appelant immédiat. Ce membre ne peut pas être utilisé par du code d'un niveau de confiance partiel. Pour plus d’informations, consultez Utilisation de bibliothèques à partir de code partiellement approuvé.