Export (0) Print
Expand All

ConnectionOptions.Impersonation Property

Gets or sets the COM impersonation level to be used for operations in this connection.

Namespace:  System.Management
Assembly:  System.Management (in System.Management.dll)

'Declaration
Public Property Impersonation As ImpersonationLevel

Property Value

Type: System.Management.ImpersonationLevel
Returns an ImpersonationLevel enumeration value indicating the impersonation level used to connect to WMI.

The ImpersonationLevel.Impersonate setting is advantageous when the provider is a trusted application or service. It eliminates the need for the provider to perform client identity and access checks for the requested operations. However, if for some reason the provider cannot be trusted, allowing it to impersonate the client may constitute a security threat. In such cases, we recommend that this property be set by the client to a lower value, such as ImpersonationLevel.Identify. Note that this may cause failure of the provider to perform the requested operations, for lack of sufficient permissions or inability to perform access checks.

Property Value

The COM impersonation level to be used for operations in this connection. The default value is ImpersonationLevel.Impersonate, which indicates that the WMI provider can impersonate the client when performing the requested operations in this connection.

.NET Framework Security

Full trust for the immediate caller. This member cannot be used by partially trusted code. For more information, see Using Libraries from Partially Trusted Code.

The following example connects to a remote computer and displays information about the operating system on the remote computer. A ConnectionOptions is created to connect to the remote computer with the desired connection options.

Imports System
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

.NET Framework

Supported in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Show:
© 2014 Microsoft