ConnectionOptions.Impersonation Eigenschap

Definitie

Hiermee haalt u het COM-imitatieniveau op dat moet worden gebruikt voor bewerkingen in deze verbinding.

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

Waarde van eigenschap

Retourneert een ImpersonationLevel opsommingswaarde die het imitatieniveau aangeeft dat wordt gebruikt om verbinding te maken met WMI.

Voorbeelden

In het volgende voorbeeld wordt verbinding gemaakt met een externe computer en wordt informatie weergegeven over het besturingssysteem op de externe computer. Er ConnectionOptions wordt een gemaakt om verbinding te maken met de externe computer met de gewenste verbindingsopties.

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

Opmerkingen

De ImpersonationLevel.Impersonate instelling is voordelig wanneer de provider een vertrouwde toepassing of service is. Het elimineert de noodzaak voor de provider om clientidentiteit en toegangscontroles uit te voeren voor de aangevraagde bewerkingen. Als de provider echter om een of andere reden niet kan worden vertrouwd, kan het toestaan om de client te imiteren een beveiligingsrisico vormen. In dergelijke gevallen wordt u aangeraden deze eigenschap door de client in te stellen op een lagere waarde, zoals ImpersonationLevel.Identify. Houd er rekening mee dat dit kan leiden tot een fout van de provider om de aangevraagde bewerkingen uit te voeren, omdat er onvoldoende machtigingen zijn of dat er geen toegangscontroles kunnen worden uitgevoerd.

Eigenschapswaarde

Het COM-imitatieniveau dat moet worden gebruikt voor bewerkingen in deze verbinding. De standaardwaarde is ImpersonationLevel.Impersonate, wat aangeeft dat de WMI-provider de client kan imiteren bij het uitvoeren van de aangevraagde bewerkingen in deze verbinding.

.NET Framework-beveiliging

Volledig vertrouwen voor de directe beller. Dit lid kan niet worden gebruikt door gedeeltelijk vertrouwde code. Zie Bibliotheken van gedeeltelijk vertrouwde code gebruiken voor meer informatie.

Van toepassing op