Bagikan melalui


ConnectionOptions.Impersonation Properti

Definisi

Mendapatkan atau mengatur tingkat peniruan COM yang akan digunakan untuk operasi dalam koneksi ini.

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

Nilai Properti

Mengembalikan nilai enumerasi yang ImpersonationLevel menunjukkan tingkat peniruan yang digunakan untuk menyambungkan ke WMI.

Contoh

Contoh berikut terhubung ke komputer jarak jauh dan menampilkan informasi tentang sistem operasi pada komputer jarak jauh. ConnectionOptions dibuat untuk menyambungkan ke komputer jarak jauh dengan opsi koneksi yang diinginkan.

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

Keterangan

Pengaturan ImpersonationLevel.Impersonate ini menguntungkan ketika penyedia adalah aplikasi atau layanan tepercaya. Ini menghilangkan kebutuhan penyedia untuk melakukan identitas klien dan pemeriksaan akses untuk operasi yang diminta. Namun, jika karena alasan tertentu penyedia tidak dapat dipercaya, memungkinkannya untuk meniru klien dapat merupakan ancaman keamanan. Dalam kasus seperti itu, kami menyarankan agar properti ini ditetapkan oleh klien ke nilai yang lebih rendah, seperti ImpersonationLevel.Identify. Perhatikan bahwa ini dapat menyebabkan kegagalan penyedia melakukan operasi yang diminta, karena kurangnya izin yang memadai atau ketidakmampuan untuk melakukan pemeriksaan akses.

Nilai Properti

Tingkat peniruan com yang akan digunakan untuk operasi dalam koneksi ini. Nilai defaultnya adalah ImpersonationLevel.Impersonate, yang menunjukkan bahwa penyedia WMI dapat meniru klien saat melakukan operasi yang diminta dalam koneksi ini.

.NET Framework Security

Kepercayaan penuh untuk penelepon segera. Anggota ini tidak dapat digunakan oleh kode tepercaya sebagian. Untuk informasi selengkapnya, lihat Menggunakan Pustaka dari Kode Tepercaya Sebagian.

Berlaku untuk